// Path: zerokit/src/main/java/com/tresorit/zerokit/util/JSONObject.java
// public class JSONObject {
// 
//     private org.json.JSONObject jsonObject;
// 
//     public JSONObject() {
//         jsonObject = new org.json.JSONObject();
//     }
// 
//     public JSONObject(String json) {
//         try {
//             jsonObject = new org.json.JSONObject(json);
//         } catch (JSONException e) {
//             //e.printStackTrace();
//             jsonObject = new org.json.JSONObject();
//         }
//     }
// 
//     public org.json.JSONObject getJSONObject(String name) {
//         if (jsonObject != null)
//             try {
//                 return jsonObject.getJSONObject(name);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return new org.json.JSONObject();
//     }
// 
// 
//     public String getString(String name) {
//         if (jsonObject != null)
//             try {
//                 return jsonObject.getString(name);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return "";
//     }
// 
//     public double getDouble(String name) {
//         if (jsonObject != null)
//             try {
//                 return jsonObject.getDouble(name);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return 0;
//     }
// 
//     public int getInt(String name) {
//         if (jsonObject != null)
//             try {
//                 return jsonObject.getInt(name);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return 0;
//     }
// 
//     public List<String> getStringArray(String name) {
//         if (jsonObject != null)
//             try {
//                 JSONArray jsonArray = jsonObject.getJSONArray(name);
//                 List<String> result = new ArrayList<>();
//                 for (int i = 0; i < jsonArray.length(); i++)
//                     result.add(jsonArray.getString(i));
//                 return result;
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return new ArrayList<>();
//     }
// 
//     public JSONObject put(String name, Object value)  {
//         if (jsonObject != null)
//             try {
//                 jsonObject.put(name, value);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return this;
//     }
// 
//     @Override
//     public String toString() {
//         return jsonObject != null ? jsonObject.toString() : "";
//     }
// }
// 
// Path: common/src/main/java/com/tresorit/zerokit/util/ZerokitJson.java
// public abstract class ZerokitJson {
// 
//     public abstract <T extends ZerokitJson> T parse(String json);
// 
// }


import com.tresorit.zerokit.util.JSONObject;
import com.tresorit.zerokit.util.ZerokitJson;
package com.tresorit.zerokit.response;


public class CrackTimesSeconds extends ZerokitJson {
    private double online_throttling_100_per_hour;
    private double online_no_throttling_10_per_second;
    private double offline_slow_hashing_1e4_per_second;
    private double offline_fast_hashing_1e10_per_second;

    public double getOffline_fast_hashing_1e10_per_second() {
        return offline_fast_hashing_1e10_per_second;
    }

    public double getOffline_slow_hashing_1e4_per_second() {
        return offline_slow_hashing_1e4_per_second;
    }

    public double getOnline_no_throttling_10_per_second() {
        return online_no_throttling_10_per_second;
    }

    public double getOnline_throttling_100_per_hour() {
        return online_throttling_100_per_hour;
    }

    @Override
    public String toString() {
        return String.format("offline_fast_hashing_1e10_per_second: %s, offline_slow_hashing_1e4_per_second: %s, online_no_throttling_10_per_second: %s, online_throttling_100_per_hour: %s", offline_fast_hashing_1e10_per_second, offline_slow_hashing_1e4_per_second, online_no_throttling_10_per_second, online_throttling_100_per_hour);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T extends ZerokitJson> T parse(String json) {
// Path: zerokit/src/main/java/com/tresorit/zerokit/util/JSONObject.java
// public class JSONObject {
// 
//     private org.json.JSONObject jsonObject;
// 
//     public JSONObject() {
//         jsonObject = new org.json.JSONObject();
//     }
// 
//     public JSONObject(String json) {
//         try {
//             jsonObject = new org.json.JSONObject(json);
//         } catch (JSONException e) {
//             //e.printStackTrace();
//             jsonObject = new org.json.JSONObject();
//         }
//     }
// 
//     public org.json.JSONObject getJSONObject(String name) {
//         if (jsonObject != null)
//             try {
//                 return jsonObject.getJSONObject(name);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return new org.json.JSONObject();
//     }
// 
// 
//     public String getString(String name) {
//         if (jsonObject != null)
//             try {
//                 return jsonObject.getString(name);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return "";
//     }
// 
//     public double getDouble(String name) {
//         if (jsonObject != null)
//             try {
//                 return jsonObject.getDouble(name);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return 0;
//     }
// 
//     public int getInt(String name) {
//         if (jsonObject != null)
//             try {
//                 return jsonObject.getInt(name);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return 0;
//     }
// 
//     public List<String> getStringArray(String name) {
//         if (jsonObject != null)
//             try {
//                 JSONArray jsonArray = jsonObject.getJSONArray(name);
//                 List<String> result = new ArrayList<>();
//                 for (int i = 0; i < jsonArray.length(); i++)
//                     result.add(jsonArray.getString(i));
//                 return result;
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return new ArrayList<>();
//     }
// 
//     public JSONObject put(String name, Object value)  {
//         if (jsonObject != null)
//             try {
//                 jsonObject.put(name, value);
//             } catch (JSONException e) {
//                 //e.printStackTrace();
//             }
//         return this;
//     }
// 
//     @Override
//     public String toString() {
//         return jsonObject != null ? jsonObject.toString() : "";
//     }
// }
// 
// Path: common/src/main/java/com/tresorit/zerokit/util/ZerokitJson.java
// public abstract class ZerokitJson {
// 
//     public abstract <T extends ZerokitJson> T parse(String json);
// 
// }


// Path: zerokit/src/main/java/com/tresorit/zerokit/response/CrackTimesSeconds.java
import com.tresorit.zerokit.util.JSONObject;
import com.tresorit.zerokit.util.ZerokitJson;

package com.tresorit.zerokit.response;


public class CrackTimesSeconds extends ZerokitJson {
    private double online_throttling_100_per_hour;
    private double online_no_throttling_10_per_second;
    private double offline_slow_hashing_1e4_per_second;
    private double offline_fast_hashing_1e10_per_second;

    public double getOffline_fast_hashing_1e10_per_second() {
        return offline_fast_hashing_1e10_per_second;
    }

    public double getOffline_slow_hashing_1e4_per_second() {
        return offline_slow_hashing_1e4_per_second;
    }

    public double getOnline_no_throttling_10_per_second() {
        return online_no_throttling_10_per_second;
    }

    public double getOnline_throttling_100_per_hour() {
        return online_throttling_100_per_hour;
    }

    @Override
    public String toString() {
        return String.format("offline_fast_hashing_1e10_per_second: %s, offline_slow_hashing_1e4_per_second: %s, online_no_throttling_10_per_second: %s, online_throttling_100_per_hour: %s", offline_fast_hashing_1e10_per_second, offline_slow_hashing_1e4_per_second, online_no_throttling_10_per_second, online_throttling_100_per_hour);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T extends ZerokitJson> T parse(String json) {
        JSONObject jsonObject = new JSONObject(json);