        ("RRWheelSpd", "EBCMWheelSpdRear", 0),
        ("PRNDL", "ECMPRDNL", 0),
        ("LKADriverAppldTrq", "PSCMStatus", 0),
        ("LKATorqueDeliveredStatus", "PSCMStatus", 0),
      ]
  
      if CP.carFingerprint == CAR.VOLT:
        signals += [
          ("RegenPaddle", "EBCMRegenPaddle", 0),
 
</s> remove     self.car_fingerprint = CP.carFingerprint
 </s> add  </s> remove     self.params = CarControllerParams(CP.carFingerprint)
 </s> add     self.params = CarControllerParams() </s> remove       if self.car_fingerprint in SUPERCRUISE_CARS:
        can_sends += gmcan.create_steering_control_ct6(self.packer_pt,
          CanBus, apply_steer, CS.out.vEgo, idx, lkas_enabled)
      else:
        can_sends.append(gmcan.create_steering_control(self.packer_pt,
          CanBus.POWERTRAIN, apply_steer, idx, lkas_enabled))
 </s> add       can_sends.append(gmcan.create_steering_control(self.packer_pt,
        CanBus.POWERTRAIN, apply_steer, idx, lkas_enabled)) </s> remove     supercruise = self.CS.car_fingerprint in SUPERCRUISE_CARS
    events = self.create_common_events(ret, pcm_enable=supercruise)

    if not supercruise:
      # TODO: why is this only not supercruise? ignore supercruise?
      if ret.vEgo < self.CP.minEnableSpeed:
        events.append(create_event('speedTooLow', [ET.NO_ENTRY]))
      if self.CS.park_brake:
        events.append(create_event('parkBrake', [ET.NO_ENTRY, ET.USER_DISABLE]))
      if ret.cruiseState.standstill:
        events.append(create_event('resumeRequired', [ET.WARNING]))
      if self.CS.pcm_acc_status == AccState.FAULTED:
        events.append(create_event('controlsFailed', [ET.NO_ENTRY, ET.IMMEDIATE_DISABLE]))

      # handle button presses
      for b in ret.buttonEvents:
        # do enable on both accel and decel buttons
        if b.type in [ButtonType.accelCruise, ButtonType.decelCruise] and not b.pressed:
          events.append(create_event('buttonEnable', [ET.ENABLE]))
        # do disable on button down
        if b.type == ButtonType.cancel and b.pressed:
          events.append(create_event('buttonCancel', [ET.USER_DISABLE]))
 </s> add     events = self.create_common_events(ret, pcm_enable=False)

    if ret.vEgo < self.CP.minEnableSpeed:
      events.append(create_event('speedTooLow', [ET.NO_ENTRY]))
    if self.CS.park_brake:
      events.append(create_event('parkBrake', [ET.NO_ENTRY, ET.USER_DISABLE]))
    if ret.cruiseState.standstill:
      events.append(create_event('resumeRequired', [ET.WARNING]))
    if self.CS.pcm_acc_status == AccState.FAULTED:
      events.append(create_event('controlsFailed', [ET.NO_ENTRY, ET.IMMEDIATE_DISABLE]))

    # handle button presses
    for b in ret.buttonEvents:
      # do enable on both accel and decel buttons
      if b.type in [ButtonType.accelCruise, ButtonType.decelCruise] and not b.pressed:
        events.append(create_event('buttonEnable', [ET.ENABLE]))
      # do disable on button down
      if b.type == ButtonType.cancel and b.pressed:
        events.append(create_event('buttonCancel', [ET.USER_DISABLE])) </s> remove     alert_out = process_hud_alert(hud_alert)
    steer = alert_out

 </s> add 
      ("TractionControlOn", "ESPStatus", 0),
      ("EPBClosed", "EPBStatus", 0),
      ("CruiseMainOn", "ECMEngineStatus", 0),
        ("RRWheelSpd", "EBCMWheelSpdRear", 0),
        ("PRNDL", "ECMPRDNL", 0),
        ("LKADriverAppldTrq", "PSCMStatus", 0),
        ("LKATorqueDeliveredStatus", "PSCMStatus", 0),
      ("TractionControlOn", "ESPStatus", 0),
      ("EPBClosed", "EPBStatus", 0),
      ("CruiseMainOn", "ECMEngineStatus", 0),
      ]
  
      if CP.carFingerprint == CAR.VOLT:
        signals += [
          ("RegenPaddle", "EBCMRegenPaddle", 0),
keep keep keep add keep keep keep keep keep
 Remove Cadillac CT6 port (#1359)

* remove CT6 port

* dont need this route

* extra char

* fix carcontroller params 
selfdrive/car/gm/carstate.py