code: public JSONObject getPostWithInstrumentationValues(ConcurrentHashMap<String, String> instrumentationData) {
          JSONObject extendedPost = new JSONObject();
          try {
              //Add original parameters
              if (params_ != null) {
                  JSONObject originalParams = new JSONObject(params_.toString());
                  Iterator<String> keys = originalParams.keys();
                  while (keys.hasNext()) {
                      String key = keys.next();
                      extendedPost.put(key, originalParams.get(key));
                  }
              }
              // Append instrumentation metadata
              if (instrumentationData.size() > 0) {
                  JSONObject instrObj = new JSONObject();
                  Set<String> keys = instrumentationData.keySet();
                  try {
                      for (String key : keys) {
                          instrObj.put(key, instrumentationData.get(key));
                          instrumentationData.remove(key);
                      }
                      extendedPost.put(Defines.Jsonkey.Branch_Instrumentation.getKey(), instrObj);
                  } catch (JSONException ignore) {
                  }
              }
          } catch (JSONException ignore) {
          } catch (ConcurrentModificationException ex) {
              extendedPost = params_;
          }
          return extendedPost;
      }
docs: <p>Gets a {@link JSONObject} containing the post data supplied with the current request as
  key-value pairs appended with the instrumentation data.</p>
  <p>
  * @param instrumentationData {@link ConcurrentHashMap} with instrumentation values
  
  @return A {@link JSONObject} containing the post data supplied with the current request
  as key-value pairs and the instrumentation meta data.