// Path: provider/src/main/java/com/raygun/raygun4android/logging/RaygunLogger.java
// public class RaygunLogger {
// 
//     public static void d(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).d(string);
//         }
//     }
// 
//     public static void i(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).i(string);
//         }
//     }
// 
//     public static void w(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).w(string);
//         }
//     }
// 
//     public static void e(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).e(string);
//         }
//     }
// 
//     public static void v(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).v(string);
//         }
//     }
// 
//     public static void responseCode(int responseCode) {
//         switch (responseCode) {
//             case RaygunSettings.RESPONSE_CODE_ACCEPTED:
//                 RaygunLogger.d("Request succeeded");
//                 break;
//             case RaygunSettings.RESPONSE_CODE_BAD_MESSAGE:
//                 RaygunLogger.e("Bad message - could not parse the provided JSON. Check all fields are present, especially both occurredOn (ISO 8601 DateTime) and details { } at the top level");
//                 break;
//             case RaygunSettings.RESPONSE_CODE_INVALID_API_KEY:
//                 RaygunLogger.e("Invalid API Key - The value specified in the header X-ApiKey did not match with an application in Raygun");
//                 break;
//             case RaygunSettings.RESPONSE_CODE_LARGE_PAYLOAD:
//                 RaygunLogger.e("Request entity too large - The maximum size of a JSON payload is 128KB");
//                 break;
//             case RaygunSettings.RESPONSE_CODE_RATE_LIMITED:
//                 RaygunLogger.e("Too Many Requests - Plan limit exceeded for month or plan expired");
//                 break;
//             default:
//                 RaygunLogger.d("Response status code: " + responseCode);
// 
//         }
//     }
// 
// }


import android.os.Build;
import com.raygun.raygun4android.logging.RaygunLogger;
import java.net.URLStreamHandler;
import java.net.URLStreamHandlerFactory;
import java.util.HashMap;
                    streamHandler = (URLStreamHandler) c.newInstance();
                    return streamHandler;
                } catch (IllegalAccessException ignore) {
                } catch (InstantiationException ignore) {
                } catch (ClassNotFoundException ignore) {
                }
            }
        }

        if (Build.VERSION.SDK_INT >= 19) {
            if (protocol.equals("http")) {
                streamHandler = createStreamHandler("com.android.okhttp.HttpHandler");
            } else if (protocol.equals("https")) {
                streamHandler = createStreamHandler("com.android.okhttp.HttpsHandler");
            }
        } else {
            if (protocol.equals("http")) {
                streamHandler = createStreamHandler("libcore.net.http.HttpHandler");
            } else if (protocol.equals("https")) {
                streamHandler = createStreamHandler("libcore.net.http.HttpsHandler");
            }
        }

        return streamHandler;
    }

    private URLStreamHandler createStreamHandler(String className) {
        try {
            return (URLStreamHandler) Class.forName(className).newInstance();
        } catch (Exception e) {
// Path: provider/src/main/java/com/raygun/raygun4android/logging/RaygunLogger.java
// public class RaygunLogger {
// 
//     public static void d(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).d(string);
//         }
//     }
// 
//     public static void i(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).i(string);
//         }
//     }
// 
//     public static void w(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).w(string);
//         }
//     }
// 
//     public static void e(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).e(string);
//         }
//     }
// 
//     public static void v(String string) {
//         if (string != null) {
//             Timber.tag(RaygunSettings.LOGGING_TAG).v(string);
//         }
//     }
// 
//     public static void responseCode(int responseCode) {
//         switch (responseCode) {
//             case RaygunSettings.RESPONSE_CODE_ACCEPTED:
//                 RaygunLogger.d("Request succeeded");
//                 break;
//             case RaygunSettings.RESPONSE_CODE_BAD_MESSAGE:
//                 RaygunLogger.e("Bad message - could not parse the provided JSON. Check all fields are present, especially both occurredOn (ISO 8601 DateTime) and details { } at the top level");
//                 break;
//             case RaygunSettings.RESPONSE_CODE_INVALID_API_KEY:
//                 RaygunLogger.e("Invalid API Key - The value specified in the header X-ApiKey did not match with an application in Raygun");
//                 break;
//             case RaygunSettings.RESPONSE_CODE_LARGE_PAYLOAD:
//                 RaygunLogger.e("Request entity too large - The maximum size of a JSON payload is 128KB");
//                 break;
//             case RaygunSettings.RESPONSE_CODE_RATE_LIMITED:
//                 RaygunLogger.e("Too Many Requests - Plan limit exceeded for month or plan expired");
//                 break;
//             default:
//                 RaygunLogger.d("Response status code: " + responseCode);
// 
//         }
//     }
// 
// }


// Path: provider/src/main/java/com/raygun/raygun4android/network/http/RaygunUrlStreamHandlerFactory.java
import android.os.Build;
import com.raygun.raygun4android.logging.RaygunLogger;
import java.net.URLStreamHandler;
import java.net.URLStreamHandlerFactory;
import java.util.HashMap;

                    streamHandler = (URLStreamHandler) c.newInstance();
                    return streamHandler;
                } catch (IllegalAccessException ignore) {
                } catch (InstantiationException ignore) {
                } catch (ClassNotFoundException ignore) {
                }
            }
        }

        if (Build.VERSION.SDK_INT >= 19) {
            if (protocol.equals("http")) {
                streamHandler = createStreamHandler("com.android.okhttp.HttpHandler");
            } else if (protocol.equals("https")) {
                streamHandler = createStreamHandler("com.android.okhttp.HttpsHandler");
            }
        } else {
            if (protocol.equals("http")) {
                streamHandler = createStreamHandler("libcore.net.http.HttpHandler");
            } else if (protocol.equals("https")) {
                streamHandler = createStreamHandler("libcore.net.http.HttpsHandler");
            }
        }

        return streamHandler;
    }

    private URLStreamHandler createStreamHandler(String className) {
        try {
            return (URLStreamHandler) Class.forName(className).newInstance();
        } catch (Exception e) {
            RaygunLogger.e("Exception occurred in createStreamHandler: " + e.getMessage());