    jwt += '.' + sig.toBase64(b64_opts);
    return jwt;
  }
  
  QString CommaApi::create_jwt() {
    return create_jwt(*(new QVector<QPair<QString, QJsonValue>>()));
  }
  
  RequestRepeater::RequestRepeater(QWidget* parent, QString requestURL, int period_seconds, const QString &cache_key, bool disableWithScreen)
    : disableWithScreen(disableWithScreen), cache_key(cache_key), QObject(parent)  {
    networkAccessManager = new QNetworkAccessManager(this);
  
    reply = NULL;
 
</s> remove   QVector<QPair<QString, QJsonValue>> payloads;
  payloads.push_back(qMakePair(QString("pair"), true));
  QString pairToken = CommaApi::create_jwt(payloads);
 </s> add   QString pairToken = CommaApi::create_jwt({{"pair", true}}); </s> remove   QString token = CommaApi::create_jwt({});
 </s> add   QString token = CommaApi::create_jwt(); </s> remove   static QString create_jwt(QVector<QPair<QString, QJsonValue>> payloads, int expiry=3600);
  static QString create_jwt();
 </s> add   static QString create_jwt(QVector<QPair<QString, QJsonValue>> payloads = {}, int expiry=3600);
    jwt += '.' + sig.toBase64(b64_opts);
    return jwt;
  }
  




  RequestRepeater::RequestRepeater(QWidget* parent, QString requestURL, int period_seconds, const QString &cache_key, bool disableWithScreen)
    : disableWithScreen(disableWithScreen), cache_key(cache_key), QObject(parent)  {
    networkAccessManager = new QNetworkAccessManager(this);
  
    reply = NULL;
keep keep keep keep replace replace replace replace keep keep keep keep keep
 remove memory leak in create_jwt() (#20547) 
selfdrive/ui/qt/api.cc