From 9e9e74f54836cb020903ed826ea14957adb72615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 10:42:07 +0100 Subject: [PATCH 001/982] CareLink ConnectData API messages (JSON) --- .../connectfollow/messages/ActiveInsulin.java | 9 +++ .../cgm/connectfollow/messages/Alarm.java | 12 ++++ .../connectfollow/messages/ConnectData.java | 52 ++++++++++++++++ .../messages/ConnectDataResult.java | 7 +++ .../cgm/connectfollow/messages/Marker.java | 11 ++++ .../cgm/connectfollow/messages/Result.java | 8 +++ .../connectfollow/messages/SensorGlucose.java | 59 +++++++++++++++++++ 7 files changed, 158 insertions(+) create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java new file mode 100644 index 0000000000..f4197ba228 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java @@ -0,0 +1,9 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; + +public class ActiveInsulin { + + public int code; + public String datetime; + public long version; + +} \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java new file mode 100644 index 0000000000..07fa8404ab --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java @@ -0,0 +1,12 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; + +public class Alarm { + + public int code; + public String datetime; + public String type; + public boolean flash; + public String kind; + public long version; + +} \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java new file mode 100644 index 0000000000..7bb422aa9d --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java @@ -0,0 +1,52 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; + +import java.util.List; + +public class ConnectData { + + public String lastSensorTSAsString; + public String medicalDeviceTimeAsString; + public String bgunits; + public long lastSensorTS; + public String kind; + public long version; + public long currentServerTime; + public long lastConduitTime; + public long lastConduitUpdateServerTime; + public long lastMedicalDeviceDataUpdateServerTime; + public String firstName; + public String lastName; + public String conduitSerialNumber; + public int conduitBatteryLevel; + public String conduitBatteryStatus; + public boolean conduitInRange; + public boolean conduitMedicalDeviceInRange; + public boolean conduitSensorInRange; + public String medicalDeviceFamily; + public String sensorState; + public String medicalDeviceSerialNumber; + public long medicalDeviceTime; + public String sMedicalDeviceTime; + public int reservoirLevelPercent; + public long reservoirAmount; + public int medicalDeviceBatteryLevelPercent; + public int sensorDurationHours; + public int timeToNextCalibHours; + public String calibStatus; + public String bgUnits; + public String timeFormat; + public int lastSensorTime; + public String sLastSensorTime; + public boolean medicalDeviceSuspended; + public String lastSGTrend; + public SensorGlucose lastSG; + public Alarm lastAlarm; + public ActiveInsulin activeInsulin; + public List sgs; + public List markers; + + public ConnectData() { + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java new file mode 100644 index 0000000000..3993247399 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java @@ -0,0 +1,7 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; + +public class ConnectDataResult extends Result { + + public ConnectData connectData; + +} \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java new file mode 100644 index 0000000000..06f26e701c --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java @@ -0,0 +1,11 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; + +public class Marker { + + public String type; + public int index; + public long value; + public String kind; + public long version; + +} \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java new file mode 100644 index 0000000000..ad22b4e615 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java @@ -0,0 +1,8 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; + +public class Result { + + public boolean success; + public int responseCode; + +} \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java new file mode 100644 index 0000000000..e6d906e732 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java @@ -0,0 +1,59 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class SensorGlucose { + + public long sg; + public String datetime; + public boolean timeChange; + public String kind; + public long version; + + public long timestamp = -1; + public Date date = null; + + public Long getTimestamp() { + getDate(); + return timestamp; + } + + public Date getDate(){ + //Set date + if (timestamp == -1) { + try { + Matcher matcher = null; + //timezone offset hours one digit to two digits + matcher = Pattern.compile("(.*)([\\+|-])(\\d:\\d\\d)").matcher(this.datetime); + if(matcher.matches()) { + this.datetime = matcher.group(1) + matcher.group(2) + "0" + matcher.group(3); + } + //remove millis + matcher = Pattern.compile("(.*:\\d{2})(\\.\\d*)(.*)").matcher(this.datetime); + if(matcher.matches()) { + this.datetime = matcher.group(1) + matcher.group(3); + } + date = (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX")).parse(this.datetime); + } catch (Exception e1) { + try { + date = (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX")).parse(this.datetime); + } catch (Exception e2) { + timestamp = 0L; + } + } + } + //Set timezone + if(date != null) timestamp = date.getTime(); + return date; + } + + public String toS() { + String dt; + if (datetime == null) { dt = ""; } else{ dt = datetime; } + return dt + " " + String.valueOf(sg); + } + +} \ No newline at end of file From 567db2e3dc76466e8756cae1fe3e56a833e6c004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 10:45:16 +0100 Subject: [PATCH 002/982] CareLink ConnectData HTTP communication client --- .../cgm/connectfollow/ConnectClient.java | 346 ++++++++++++++++++ .../dexdrip/cgm/connectfollow/Country.java | 152 ++++++++ .../connectfollow/SimpleOkHttpCookieJar.java | 80 ++++ 3 files changed, 578 insertions(+) create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/Country.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/SimpleOkHttpCookieJar.java diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java new file mode 100644 index 0000000000..79bf65671c --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java @@ -0,0 +1,346 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow; + +import android.util.Log; + +import java.io.IOException; +import java.util.Date; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import lombok.Getter; +import okhttp3.*; + +import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectData; +import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectDataResult; +import com.google.gson.*; + + + +// TODO list +// 1) automatic token handling +// - request token +// - refresh token +// - remove fetch data +// 2) add other CareLink APIs +// - get patient data +// - get device info (last update???) +// - generate report +// - others?! +// 3) optimize getLast24hours +// - use device info +// 4) HTML helper class for data extraction from responses +// 6) other events, markers, notes + +public class ConnectClient { + protected String carelinkUsername; + protected String carelinkPassword; + protected Country carelinkCountry; + protected static final String CARELINK_CONNECT_SERVER_EU = "carelink.minimed.eu"; + protected static final String CARELINK_CONNET_SERVER_US = "carelink.minimed.com"; + protected static final String CARELINK_LANGUAGE_EN = "en"; + protected static final String CARELINK_LOCALE_EN = "en"; + protected static final String CARELINK_AUTH_TOKEN_COOKIE_NAME = "auth_tmp_token"; + protected static final String CARELINK_TOKEN_VALIDTO_COOKIE_NAME = "c_token_valid_to"; + protected static final int AUTH_EXPIRE_DEADLINE_MINUTES = 1; + + protected OkHttpClient httpClient = null; + + private boolean lastLoginSuccess; + public boolean getLastLoginSuccess(){ + return lastLoginSuccess; + } + private boolean lastDataSuccess; + public boolean getLastDataSuccess(){ + return lastDataSuccess; + } + private String lastErrorMessage; + public String getLastErrorMessage(){ + return lastErrorMessage; + } + private String lastStackTraceString; + public String getLastStackTraceString(){ + return lastStackTraceString; + } + + + + protected enum RequestType{ + HtmlGet(), + HtmlPost(), + Json() + } + + public ConnectClient(String carelinkUsername, String carelinkPassword, Country carelinkCountry) { + + this.carelinkUsername = carelinkUsername; + this.carelinkPassword = carelinkPassword; + this.carelinkCountry = carelinkCountry; + + lastLoginSuccess = false; + lastDataSuccess = false; + + //Create main http client with CookieJar + this.httpClient = new OkHttpClient.Builder() + .cookieJar(new SimpleOkHttpCookieJar()) + .build(); + + } + + protected String careLinkServer() { + return(this.carelinkCountry == Country.UnitedStates ? CARELINK_CONNET_SERVER_US : CARELINK_CONNECT_SERVER_EU ); + } + + + //Authentication methods + protected boolean executeAuthenticationProcedure() { + + Response loginSessionResponse = null; + Response doLoginResponse = null; + Response consentResponse = null; + + + lastLoginSuccess = false; + + try { + //TODO handle login errors when occur, check results + + //Clear cookies + ((SimpleOkHttpCookieJar) this.httpClient.cookieJar()).deleteAllCookies(); + + //Open login (get SessionId and SessionData) + loginSessionResponse = this.getLoginSession(); + + //Login + doLoginResponse = this.doLogin(loginSessionResponse); + loginSessionResponse.close(); + + //Consent + consentResponse = this.doConsent(doLoginResponse); + doLoginResponse.close(); + consentResponse.close(); + + //Set login success + lastLoginSuccess = true; + + } catch (Exception e) { + lastErrorMessage = e.getMessage(); + Log.getStackTraceString(e); + return lastLoginSuccess; + } + + return lastLoginSuccess; + + } + + protected Response getLoginSession() throws IOException { + + HttpUrl url = null; + Request.Builder requestBuilder = null; + + + url = new HttpUrl.Builder() + .scheme("https") + .host(this.careLinkServer()) + .addPathSegments("patient/sso/login") + .addQueryParameter("country", this.carelinkCountry.getCountryCode()) + .addQueryParameter("lang", CARELINK_LANGUAGE_EN) + .build(); + + requestBuilder = new Request.Builder() + .url(url); + + this.addHttpHeaders(requestBuilder, RequestType.HtmlGet); + + return this.httpClient.newCall(requestBuilder.build()).execute(); + + } + + protected Response doLogin(Response loginSessionResponse) throws IOException { + + HttpUrl url = null; + Request.Builder requestBuilder = null; + RequestBody form = null; + + form = new FormBody.Builder() + .add("sessionID", loginSessionResponse.request().url().queryParameter("sessionID")) + .add("sessionData", loginSessionResponse.request().url().queryParameter("sessionData")) + .add("locale", CARELINK_LOCALE_EN) + .add("action", "login") + .add("username", this.carelinkUsername) + .add("password", this.carelinkPassword) + .add("actionButton", "Log in") + .build(); + + url = new HttpUrl.Builder() + .scheme("https") + .host("mdtlogin.medtronic.com") + .addPathSegments("mmcl/auth/oauth/v2/authorize/login") + .addQueryParameter("locale", CARELINK_LOCALE_EN) + .addQueryParameter("country", this.carelinkCountry.getCountryCode()) + .build(); + + requestBuilder = new Request.Builder() + .url(url) + .post(form); + + this.addHttpHeaders(requestBuilder, RequestType.HtmlGet); + + return this.httpClient.newCall(requestBuilder.build()).execute(); + + } + + protected Response doConsent(Response doLoginResponse) throws IOException { + + Request.Builder requestBuilder = null; + RequestBody form = null; + String doLoginRespBody = null; + + doLoginRespBody = doLoginResponse.body().string(); + + //Extract data for consent + String consentUrl = this.extractResponseData(doLoginRespBody, "(form action=\")(.*)(\" method=\"POST\")", 2); + String consentSessionData = this.extractResponseData(doLoginRespBody, "()", 2); + String consentSessionId = this.extractResponseData(doLoginRespBody, "()", 2); + + //Send consent + form = new FormBody.Builder() + .add("action", "consent") + .add("sessionID", consentSessionId) + .add("sessionData", consentSessionData) + .add("response_type", "code") + .add("response_mode", "query") + .build(); + + requestBuilder = new Request.Builder() + .url(consentUrl) + .post(form); + + this.addHttpHeaders(requestBuilder, RequestType.HtmlPost); + + return this.httpClient.newCall(requestBuilder.build()).execute(); + + } + + protected String extractResponseData(String respBody, String groupRegex, int groupIndex) { + + String responseData = null; + Matcher responseDataMatcher = null; + + responseDataMatcher = Pattern.compile(groupRegex).matcher(respBody); + if(responseDataMatcher.find()) { + responseData = responseDataMatcher.group(groupIndex); + } + + return responseData; + + } + + protected String getAuthorizationToken() { + + + //New token is needed: no token or about to expire => execute authentication +// if(!((SimpleOkHttpCookieJar) httpClient.cookieJar()).contains(CARELINK_AUTH_TOKEN_COOKIE_NAME) || +// !((SimpleOkHttpCookieJar) httpClient.cookieJar()).contains(CARELINK_TOKEN_VALIDTO_COOKIE_NAME) || +// !((new Date(Date.parse(((SimpleOkHttpCookieJar) httpClient.cookieJar()).getCookies(CARELINK_TOKEN_VALIDTO_COOKIE_NAME).get(0).value()))) +// .after(new Date(new Date(System.currentTimeMillis()).getTime() + AUTH_EXPIRE_DEADLINE_MINUTES * 60000)) +// )){ + if(!this.executeAuthenticationProcedure()){ + return null; + }; +// } + + + //there can be only one + return "Bearer" + " " + ((SimpleOkHttpCookieJar) httpClient.cookieJar()).getCookies(CARELINK_AUTH_TOKEN_COOKIE_NAME).get(0).value(); + + + } + + + //CareLink data APIs + public ConnectDataResult getLast24Hours() { + + HttpUrl url = null; + Request.Builder requestBuilder = null; + String authToken = null; + String currentTime = null; + String connectDataString = null; + ConnectDataResult connectDataResult = null; + Response response = null; + + + lastDataSuccess = false; + connectDataResult = new ConnectDataResult(); + + //Get auth token + authToken= this.getAuthorizationToken(); + if(authToken != null){ + + // TODO current time ? + currentTime = String.valueOf(System.currentTimeMillis()); + + //Get connect data of last 24 hours + url = new HttpUrl.Builder() + .scheme("https") + .host(this.careLinkServer()) + .addPathSegments("patient/connect/data") + .addQueryParameter("cpSerialNumber", "NONE") + .addQueryParameter("msgType", "last24hours") + .addQueryParameter("requestTime", currentTime) + .build(); + + requestBuilder = new Request.Builder() + .url(url) + .addHeader("Authorization", authToken); + + this.addHttpHeaders(requestBuilder, RequestType.Json); + + //Get and convert data + try { + response = this.httpClient.newCall(requestBuilder.build()).execute(); + connectDataResult.responseCode = response.code(); + if(response.isSuccessful()) { + connectDataString = response.body().string(); + connectDataResult.connectData = (new GsonBuilder().create()).fromJson(connectDataString, ConnectData.class); + //only if there is actual data + if (connectDataResult.connectData != null) lastDataSuccess = true; + } + response.close(); + } catch (Exception e) { + lastErrorMessage = e.getMessage(); + lastStackTraceString = Log.getStackTraceString(e); + } + + } + + //set data request success + connectDataResult.success = lastDataSuccess; + + return connectDataResult; + + } + + protected void addHttpHeaders(Request.Builder requestBuilder, RequestType type) { + + requestBuilder + .addHeader("Accept-Language", "en;q=0.9, *;q=0.8") + .addHeader("Connection", "keep-alive") + .addHeader("sec-ch-ua", "\"Google Chrome\";v=\"87\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"87\"") + .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"); + + switch(type) { + case Json: + requestBuilder.addHeader("Accept", "application/json, text/plain, */*"); + requestBuilder.addHeader("Content-Type", "application/json; charset=utf-8"); + break; + case HtmlGet: + requestBuilder.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"); + case HtmlPost: + requestBuilder.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"); + requestBuilder.addHeader("Content-Type", "application/x-www-form-urlencoded"); + break; + } + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/Country.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/Country.java new file mode 100644 index 0000000000..660b045f15 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/Country.java @@ -0,0 +1,152 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow; + +import java.util.HashMap; +import java.util.Map; + +public enum Country { + + Invalid("invalid"), + Algeria("dz"), + BosniaAndHerzegovina("ba"), + Egypt("eg"), + SouthAfrica("za"), + Canada("ca"), + CostaRica("cr"), + Mexico("mx"), + Morocco("ma"), + Panama("pa"), + PuertoRico("pr"), + UnitedStates("us"), + Argentina("ar"), + Brazil("br"), + Chile("cl"), + Colombia("co"), + Venezuela("ve"), + HongKong("hk"), + India("in"), + Indonesia("id"), + Israel("il"), + Japan("jp"), + Kuwait("kw"), + Lebanon("lb"), + Malaysia("my"), + Philippines("ph"), + Qatar("qa"), + SaudiArabia("sa"), + Singapore("sg"), + SouthKorea("kr"), + Taiwan("tw"), + Thailand("th"), + Tunisia("tn"), + Turkey("tr"), + UnitedArabEmirates("ae"), + Vietnam("vn"), + Austria("at"), + Belgium("be"), + Bulgaria("bg"), + Croatia("hr"), + CzechRepublic("cz"), + Denmark("dk"), + Estonia("ee"), + Finland("fi"), + France("fr"), + Germany("de"), + Greece("gr"), + Hungary("hu"), + Iceland("is"), + Ireland("ie"), + Italy("it"), + Latvia("lv"), + Lithuania("lt"), + Luxembourg("lu"), + Netherlands("nl"), + Norway("no"), + Poland("pl"), + Portugal("pt"), + Romania("ro"), + Russia("ru"), + Serbia("rs"), + Slovakia("sk"), + Slovenia("si"), + Spain("es"), + Sweden("se"), + Switzerland("ch"), + Ukraine("ua"), + UnitedKingdom("gb"), + Australia("au"), + NewZealand("nz"), + Bahrain("bh"), + Oman("om"), + China("cn"), + Cyprus("cy"), + Albania("al"), + Armenia("am"), + Azerbaijan("az"), + Bahamas("bs"), + Barbados("bb"), + Belarus("by"), + Bermuda("bm"), + Bolivia("bo"), + Cambodia("kh"), + DominicanRepublic("do"), + Ecuador("ec"), + ElSalvador("sv"), + Georgia("ge"), + Guatemala("gt"), + Honduras("hn"), + Iran("ir"), + Iraq("iq"), + Jordan("jo"), + Kosovo("xk"), + Libya("ly"), + Macau("mo"), + Macedonia("mk"), + Maldives("mv"), + Malta("mt"), + Mauritius("mu"), + Mayotte("yt"), + Moldova("md"), + Montenegro("me"), + Namibia("na"), + NewCaledonia("nc"), + Nicaragua("ni"), + Nigeria("ng"), + Pakistan("pk"), + Paraguay("py"), + StMartin("mf"), + Sudan("sd"), + Uruguay("uy"), + Aruba("aw"), + CaymanIslands("ky"), + Curacao("cw"), + Peru("pe"); + + private static final Map mapToCode; + + static { + mapToCode = new HashMap<>(); + + for(Country cntry : values()) { + mapToCode.put(cntry.countryCode, cntry); + } + } + + private String countryCode; + + private Country(String code){ + this.countryCode = code; + } + + public String getCountryCode() { + return this.countryCode; + } + + public static Country getCountry(String code) { + if(mapToCode.containsKey(code)) + return mapToCode.get(code); + else + return Invalid; + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/SimpleOkHttpCookieJar.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/SimpleOkHttpCookieJar.java new file mode 100644 index 0000000000..62996e7cbe --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/SimpleOkHttpCookieJar.java @@ -0,0 +1,80 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow; + +import okhttp3.Cookie; +import okhttp3.CookieJar; +import okhttp3.HttpUrl; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +public class SimpleOkHttpCookieJar implements CookieJar { + + private List storage = new ArrayList<>(); + + @Override + public void saveFromResponse(HttpUrl url, List cookies) { + storage.addAll(cookies); + } + + @Override + public List loadForRequest(HttpUrl url) { + + List cookies = new ArrayList<>(); + + // Remove expired Cookies + removeExpiredCookies(); + + // Only return matching Cookies + for (int i = 0; i < storage.size(); i++) { + if(storage.get(i).matches(url)) { + cookies.add(storage.get(i)); + } + } + + return cookies; + } + + public List getCookies(String name) { + + List cookies = new ArrayList<>(); + + // Remove expired Cookies + removeExpiredCookies(); + + // Only return matching Cookies + for (int i = 0; i < storage.size(); i++) { + if(storage.get(i).name().equals(name)) { + cookies.add(storage.get(i)); + } + } + + return cookies; + + } + + public boolean contains(String name) { + return (getCookies(name).size() > 0); + } + + public void deleteCookie(String name) { + for (int i = 0; i < storage.size(); i++) { + if(storage.get(i).name() == name) { + storage.remove(i); + } + } + } + + public void deleteAllCookies() { + storage.clear(); + } + + private void removeExpiredCookies(){ + for (int i = 0; i < storage.size(); i++) { + if(storage.get(i).expiresAt() < System.currentTimeMillis()) { + storage.remove(i); + } + } + } + +} \ No newline at end of file From 94e97adfd336a694df62f27dc36666cb5a68f0cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 10:58:19 +0100 Subject: [PATCH 003/982] CareLink Follower collector service class --- .../dexdrip/UtilityModels/Constants.java | 1 + .../connectfollow/ConnectFollowService.java | 252 ++++++++++++++++++ 2 files changed, 253 insertions(+) create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/Constants.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/Constants.java index 2998fcf19e..242a721e3c 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/Constants.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/Constants.java @@ -51,6 +51,7 @@ public class Constants { public static final int BLUEJAY_SERVICE_RETRY_ID = 1025; public static final int MIBAND_SERVICE_RETRY_ID = 1026; public static final int MIBAND_SERVICE_BG_RETRY_ID = 1027; + public static final int CONNECTFOLLOW_SERVICE_FAILOVER_ID = 1030; static final int NIGHTSCOUT_ERROR_NOTIFICATION_ID = 2001; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java new file mode 100644 index 0000000000..230b93a4d1 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java @@ -0,0 +1,252 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow; + +import android.content.Intent; +import android.os.IBinder; +import android.os.PowerManager; +import android.support.annotation.Nullable; +import android.text.SpannableString; + +import com.eveningoutpost.dexdrip.Models.BgReading; +import com.eveningoutpost.dexdrip.Models.JoH; +import com.eveningoutpost.dexdrip.Models.UserError; +import com.eveningoutpost.dexdrip.UtilityModels.Constants; +import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; +import com.eveningoutpost.dexdrip.UtilityModels.Pref; +import com.eveningoutpost.dexdrip.UtilityModels.StatusItem; +import com.eveningoutpost.dexdrip.cgm.nsfollow.utils.Anticipate; +import com.eveningoutpost.dexdrip.utils.framework.BuggySamsung; +import com.eveningoutpost.dexdrip.utils.framework.ForegroundService; +import com.eveningoutpost.dexdrip.utils.DexCollectionType; +import com.eveningoutpost.dexdrip.utils.framework.WakeLockTrampoline; +import com.eveningoutpost.dexdrip.xdrip; + +import java.util.ArrayList; +import java.util.List; + +import static com.eveningoutpost.dexdrip.Models.JoH.emptyString; +import static com.eveningoutpost.dexdrip.Models.JoH.msSince; +import static com.eveningoutpost.dexdrip.UtilityModels.BgGraphBuilder.DEXCOM_PERIOD; + +/** + * Medtronic CareLink Connect follow + */ + +public class ConnectFollowService extends ForegroundService { + + private static final String TAG = "ConnectFollow"; + private static final long SAMPLE_PERIOD = DEXCOM_PERIOD; + + protected static volatile String lastState = ""; + + private static BuggySamsung buggySamsung; + private static volatile long wakeup_time = 0; + private static volatile long last_wakeup = 0; + private static volatile long lastPoll = 0; + private static volatile BgReading lastBg; + private static volatile long bgReceiveDelay; + private static volatile long lastBgTime; + + private static ConnectFollowDownloader downloader; + + private static final long WAKE_UP_GRACE_SECOND = 20; + + + @Override + public void onCreate() { + super.onCreate(); + resetInstance(); // manage static reference life cycle + } + + + /** + * Update observedDelay if new bg reading is available + */ + static void updateBgReceiveDelay() { + lastBg = BgReading.lastNoSenssor(); + if (lastBg != null && lastBgTime != lastBg.timestamp) { + bgReceiveDelay = JoH.msSince(lastBg.timestamp); + lastBgTime = lastBg.timestamp; + } + } + + public synchronized static void resetInstanceAndInvalidateSession() { + try { + if (downloader != null) { + downloader.invalidateSession(); + } + } catch (Exception e) { + // concurrency related + } + resetInstance(); + } + + public static void resetInstance() { + downloader = null; + } + + private static boolean shouldServiceRun() { + return DexCollectionType.getDexCollectionType() == DexCollectionType.ConnectFollow; + } + + private static long getGraceMillis() { + return Constants.SECOND_IN_MS * WAKE_UP_GRACE_SECOND; + } + + static void scheduleWakeUp() { + final BgReading lastBg = BgReading.lastNoSenssor(); + final long last = lastBg != null ? lastBg.timestamp : 0; + + final long next = Anticipate.next(JoH.tsl(), last, SAMPLE_PERIOD, getGraceMillis()) + getGraceMillis(); + wakeup_time = next; + UserError.Log.d(TAG, "Anticipate next: " + JoH.dateTimeText(next) + " last BG timestamp: " + JoH.dateTimeText(last)); + + JoH.wakeUpIntent(xdrip.getAppContext(), JoH.msTill(next), WakeLockTrampoline.getPendingIntent(ConnectFollowService.class, Constants.CONNECTFOLLOW_SERVICE_FAILOVER_ID)); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + final PowerManager.WakeLock wl = JoH.getWakeLock("ConnectFollow-osc", 60000); + try { + + UserError.Log.d(TAG, "WAKE UP WAKE UP WAKE UP"); + + // Check service should be running + if (!shouldServiceRun()) { + UserError.Log.d(TAG, "Stopping service due to shouldServiceRun() result"); + msg("Stopping"); + stopSelf(); + return START_NOT_STICKY; + } + buggySamsungCheck(); + + last_wakeup = JoH.tsl(); + + // Check current + lastBg = BgReading.lastNoSenssor(); + if (lastBg != null) { + lastBgTime = lastBg.timestamp; + } + if (lastBg == null || msSince(lastBg.timestamp) > SAMPLE_PERIOD) { + // Get the data + if (downloader == null) { + downloader = new ConnectFollowDownloader( + Pref.getString("connectfollow_user", ""), + Pref.getString("connectfollow_pass", ""), + Country.getCountry(Pref.getString("connectfollow_country", "")) + ); + } + + if (JoH.ratelimit("last-connect-follow-poll", 5)) { + Inevitable.task("Connect-Follow-Work", 200, () -> { + try { + downloader.doEverything( ); + } catch (NullPointerException e) { + UserError.Log.e(TAG, "Caught concurrency exception when trying to run doeverything"); + } + }); + lastPoll = JoH.tsl(); + } + } else { + UserError.Log.d(TAG, "Already have recent reading: " + msSince(lastBg.timestamp)); + } + + + scheduleWakeUp(); + } finally { + JoH.releaseWakeLock(wl); + } + return START_STICKY; + } + + /** + * MegaStatus for Connect Follower + */ + public static List megaStatus() { + final BgReading lastBg = BgReading.lastNoSenssor(); + + long hightlightGrace = Constants.SECOND_IN_MS * 30; // 30 seconds + + // Status for BG receive delay (time from bg was recorded till received in xdrip) + String ageOfBgLastPoll = "n/a"; + StatusItem.Highlight ageOfLastBgPollHighlight = StatusItem.Highlight.NORMAL; + if (bgReceiveDelay > 0) { + ageOfBgLastPoll = JoH.niceTimeScalar(bgReceiveDelay); + if (bgReceiveDelay > SAMPLE_PERIOD / 2) { + ageOfLastBgPollHighlight = StatusItem.Highlight.BAD; + } + if (bgReceiveDelay > SAMPLE_PERIOD * 2) { + ageOfLastBgPollHighlight = StatusItem.Highlight.CRITICAL; + } + } + + // Status for time since latest BG + String ageLastBg = "n/a"; + StatusItem.Highlight bgAgeHighlight = StatusItem.Highlight.NORMAL; + if (lastBg != null) { + long age = JoH.msSince(lastBg.timestamp); + ageLastBg = JoH.niceTimeScalar(age); + if (age > SAMPLE_PERIOD + hightlightGrace) { + bgAgeHighlight = StatusItem.Highlight.BAD; + } + } + + List megaStatus = new ArrayList<>(); + + megaStatus.add(new StatusItem("Latest BG", ageLastBg + (lastBg != null ? " ago" : ""), bgAgeHighlight)); + megaStatus.add(new StatusItem("BG receive delay", ageOfBgLastPoll, ageOfLastBgPollHighlight)); + megaStatus.add(new StatusItem()); + megaStatus.add(new StatusItem("Last poll", lastPoll > 0 ? JoH.niceTimeScalar(JoH.msSince(lastPoll)) + " ago" : "n/a")); + megaStatus.add(new StatusItem("Last wakeup", last_wakeup > 0 ? JoH.niceTimeScalar(JoH.msSince(last_wakeup)) + " ago" : "n/a")); + megaStatus.add(new StatusItem("Next poll in", JoH.niceTimeScalar(wakeup_time - JoH.tsl()))); + if (lastBg != null) { + megaStatus.add(new StatusItem("Last BG time", JoH.dateTimeText(lastBg.timestamp))); + } + megaStatus.add(new StatusItem("Next poll time", JoH.dateTimeText(wakeup_time))); + megaStatus.add(new StatusItem()); + megaStatus.add(new StatusItem("Buggy Samsung", JoH.buggy_samsung ? "Yes" : "No")); + + return megaStatus; + } + + @Nullable + @Override + public IBinder onBind(Intent intent) { + return null; + } + + @Override + public void onDestroy() { + super.onDestroy(); + resetInstance(); // manage static reference life cycle + } + + private void buggySamsungCheck() { + if (buggySamsung == null) { + buggySamsung = new BuggySamsung(TAG); + } + buggySamsung.evaluate(wakeup_time); + wakeup_time = 0; + } + + private static void msg(final String msg) { + lastState = msg; + } + + private static String getBestStatusMessage() { + // service state overrides downloader state reply + if (emptyString(lastState)) { + if (downloader != null) { + return downloader.getStatus(); + } + } else { + return lastState; + } + return null; + } + + public static SpannableString nanoStatus() { + final String current_state = getBestStatusMessage(); + return emptyString(current_state) ? null : new SpannableString(current_state); + } + +} \ No newline at end of file From 0a07ea1db27e6cb46fad5b7d57924b1661c76991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 10:58:39 +0100 Subject: [PATCH 004/982] CareLink Data communication service for follower collector service --- .../ConnectFollowDownloader.java | 207 ++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java new file mode 100644 index 0000000000..6a52cc4a54 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java @@ -0,0 +1,207 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow; + +import android.os.PowerManager; + +import com.eveningoutpost.dexdrip.Models.JoH; +import com.eveningoutpost.dexdrip.Models.UserError; +import com.eveningoutpost.dexdrip.R; +import com.eveningoutpost.dexdrip.UtilityModels.CollectionServiceStarter; +import com.eveningoutpost.dexdrip.UtilityModels.Constants; +import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; +import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectData; +import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectDataResult; +import com.eveningoutpost.dexdrip.xdrip; + +import java.util.List; + +import lombok.Getter; + +import static com.eveningoutpost.dexdrip.Models.JoH.emptyString; + +/** + * Medtronic CareLink Connect follow + */ + + +public class ConnectFollowDownloader { + + private static final String TAG = "ConnectFollowDL"; + private static final boolean D = false; + + private String carelinkUsername; + private String carelinkPassword; + private Country carelinkCountry; + + private ConnectClient connectClient; + + private boolean loginDataLooksOkay; + + private static PowerManager.WakeLock wl; + + private String status; + + private long loginBlockedTill = 0; + private long loginBackoff = Constants.MINUTE_IN_MS; + + public String getStatus(){ + return status; + } + + ConnectFollowDownloader(String carelinkUsername, String carelinkPassword, Country carelinkCountry) { + this.carelinkUsername = carelinkUsername; + this.carelinkPassword = carelinkPassword; + this.carelinkCountry = carelinkCountry; + loginDataLooksOkay = !emptyString(carelinkUsername) && !emptyString(carelinkPassword) && carelinkCountry != null && carelinkCountry != Country.Invalid; + } + + public static void resetInstance() { + //retrofit = null; + //service = null; + UserError.Log.d(TAG, "Instance reset"); + CollectionServiceStarter.restartCollectionServiceBackground(); + } + + public boolean doEverything( ) { + msg("Start download"); + + if (D) UserError.Log.e(TAG, "doEverything called"); + if (loginDataLooksOkay) { + //TODO + //loginBackoff = 0; // reset backoff timer due to login success + if (JoH.tsl() > loginBlockedTill) { + try { + if (getConnectClient() != null) { + extendWakeLock(30_000); + backgroundProcessConnectData(); + } else { + UserError.Log.d(TAG, "Cannot get data as ConnectClient is null"); + return false; + } + return true; + } catch (Exception e) { + UserError.Log.e(TAG, "Got exception in getData() " + e); + releaseWakeLock(); + return false; + } + } else { + UserError.Log.e(TAG, "Not trying to login due to backoff timer for login failures until: " + JoH.dateTimeText(loginBlockedTill)); + return false; + } + } else { + final String invalid = "Connect login data isn't valid!"; + msg(invalid); + UserError.Log.e(TAG, invalid); + if(emptyString(carelinkUsername)){ + UserError.Log.e(TAG, "CareLink Username empty!"); + } + if(emptyString(carelinkPassword)){ + UserError.Log.e(TAG, "CareLink Password empty!"); + } + if(carelinkCountry == null){ + UserError.Log.e(TAG, "CareLink Country empty!"); + }else if(carelinkCountry == Country.Invalid){ + UserError.Log.e(TAG, "CareLink Country invalid!"); + } + return false; + } + + } + + private void msg(final String msg) { + status = msg != null ? JoH.hourMinuteString() + ": " + msg : null; + if (msg != null) UserError.Log.d(TAG, "Setting message: " + status); + } + + public void invalidateSession() { + this.connectClient = null; + } + + private void backgroundProcessConnectData() { + Inevitable.task("proc-connect-follow", 100, this::processConnectData); + releaseWakeLock(); // handover to inevitable + } + + // don't call this directly unless you are also handling the wakelock release + private void processConnectData() { + + ConnectDataResult connectDataResult = null; + ConnectClient connectClient = null; + + loginBackoff = 0; + + //Get client + connectClient = getConnectClient(); + //Get ConnectData from CareLink client + if (connectClient != null) { + connectDataResult = getConnectClient().getLast24Hours(); + + //Got data + if (connectDataResult.success) { + UserError.Log.d(TAG, "Success get data! Response code: " + connectDataResult.responseCode); + try { + if (connectDataResult.connectData == null) { + UserError.Log.d(TAG, "Connect data is null!"); + } else if (connectDataResult.connectData.sgs == null) { + UserError.Log.d(TAG, "SGs is null!"); + } + if (D) UserError.Log.d(TAG, "Start process data"); + DataProcessor.processData(connectDataResult.connectData, true); + if (D) UserError.Log.d(TAG, "ProcessData finished!"); + ConnectFollowService.updateBgReceiveDelay(); + if (D) UserError.Log.d(TAG, "UpdateBgReceiveDelay finished!"); + msg(null); + if (D) UserError.Log.d(TAG, "SetMessage finished!"); + } catch (Exception e) { + UserError.Log.e(TAG, "Got exception for data update" + e); + } + //Request error + } else { + if (!getConnectClient().getLastLoginSuccess()) { + UserError.Log.e(TAG, "CareLink login error!"); + loginBackoff += Constants.MINUTE_IN_MS; + loginBlockedTill = JoH.tsl() + loginBackoff; + } else if (!getConnectClient().getLastDataSuccess()) { + UserError.Log.e(TAG, "CareLink download error! Response code: " + connectDataResult.responseCode); + UserError.Log.e(TAG, "Error message: " + getConnectClient().getLastErrorMessage()); + UserError.Log.e(TAG, "Stack trace: " + getConnectClient().getLastStackTraceString()); + } + } + + if (connectDataResult.success) { + msg(null); + } + } + + } + + + private ConnectClient getConnectClient() { + if (connectClient== null) { + try { + UserError.Log.d(TAG, "Creating ConnectClient"); + connectClient = new ConnectClient(carelinkUsername, carelinkPassword, carelinkCountry); + } catch (NullPointerException e) { + UserError.Log.e(TAG, "Error creating ConnectClient"); + } + } + return connectClient; + } + + + private static synchronized void extendWakeLock(final long ms) { + if (wl == null) { + if (D) UserError.Log.d(TAG,"Creating wakelock"); + wl = JoH.getWakeLock("ConnectFollow-download", (int) ms); + } else { + JoH.releaseWakeLock(wl); // lets not get too messy + wl.acquire(ms); + if (D) UserError.Log.d(TAG,"Extending wakelock"); + } + } + + protected static synchronized void releaseWakeLock() { + if (D) UserError.Log.d(TAG, "Releasing wakelock"); + JoH.releaseWakeLock(wl); + } + +} \ No newline at end of file From 30c3b714bf4d3b1efccbdf1106bf5ed981394970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 10:58:58 +0100 Subject: [PATCH 005/982] Process ConnectData, generate BGReadings --- .../cgm/connectfollow/DataProcessor.java | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java new file mode 100644 index 0000000000..03ccdeb2ad --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java @@ -0,0 +1,126 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow; + +import com.eveningoutpost.dexdrip.Models.BgReading; +import com.eveningoutpost.dexdrip.Models.Sensor; +import com.eveningoutpost.dexdrip.Models.UserError; +import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; +import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectData; +import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.SensorGlucose; + +import java.util.Collections; + +import static com.eveningoutpost.dexdrip.Models.BgReading.SPECIAL_FOLLOWER_PLACEHOLDER; + +public class DataProcessor { + + + private static final String TAG = "ConnectFollowDP"; + private static final boolean D = false; + + private static final String UUID_CF_PREFIX = "1"; + private static final String UUID_BG_PREFIX = "1"; + private static final String EPOCH_0_YEAR = "1970"; + + + static synchronized void processData(final ConnectData connectData, final boolean live) { + + if (connectData == null) return; + + UserError.Log.d(TAG, "Create Sensor"); + final Sensor sensor = Sensor.createDefaultIfMissing(); + + //TODO not good for backfill! + //Sensor status + sensor.latest_battery_level = connectData.medicalDeviceBatteryLevelPercent; + sensor.save(); + + if (connectData.sgs == null) UserError.Log.d(TAG, "SGs is null!"); + + //1) SGs (if available) + if (connectData.sgs != null) { + // place in order of oldest first + UserError.Log.d(TAG, "Sort SGs"); + try { + Collections.sort(connectData.sgs, (o1, o2) -> o1.getTimestamp().compareTo(o2.getTimestamp())); + } catch (Exception e) { + UserError.Log.e(TAG, "Sort SGs error! Details: " + e); + return; + } + + UserError.Log.d(TAG, "For each SG"); + for (final SensorGlucose sg : connectData.sgs) { + + //Not NULL SG (shouldn't happen?!) + if (sg != null) { + + //Not NULL DATETIME (sensorchange?) + if (sg.datetime != null) { + + //Not EPOCH 0 (warmup?) + if (!sg.datetime.startsWith(EPOCH_0_YEAR)) { + + //Not 0 SG (not calibrated?) + if (sg.sg > 0) { + + final long recordTimestamp = sg.getTimestamp(); + if (recordTimestamp > 0) { + + final BgReading existing = BgReading.getForPreciseTimestamp(recordTimestamp, 10_000); + if (existing == null) { + UserError.Log.d(TAG, "NEW NEW NEW New entry: " + sg.toS()); + + if (live) { + final BgReading bg = new BgReading(); + bg.timestamp = recordTimestamp; + bg.calculated_value = (double) sg.sg; + bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; + bg.filtered_data = (double) sg.sg; + bg.noise = ""; + //TODO UUID should be longer? different logic for UUID generation? + //Needed for NS Uploader + bg.uuid = UUID_CF_PREFIX + UUID_BG_PREFIX + String.valueOf(bg.timestamp); + //TODO check: slope, hide_slope + //final Double slope = entry.slopePerMsFromDirection(); + //if (slope != null) { + // bg.calculated_value_slope = slope; // this is made up but should match arrow + //} else { + //bg.hide_slope = true; + //} + bg.calculated_value_slope = 0; + bg.sensor = sensor; + bg.sensor_uuid = sensor.uuid; + bg.source_info = "Connect Follow"; + bg.save(); + Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); + } + } else { + // break; // stop if we have this reading TODO are entries always in order? + } + } else { + UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); + } + + } else { + UserError.Log.d(TAG, "SG is 0 (calibration missed?)"); + } + + } else { + UserError.Log.d(TAG, "SG DateTime is 0 (warmup phase?)"); + } + + } else { + UserError.Log.d(TAG, "SG DateTime is null (sensor expired?)"); + } + + } else { + UserError.Log.d(TAG, "SG Entry is null!!!"); + } + } + } + + //2) Markers (if available) + if(connectData.markers != null){ + + } + } +} \ No newline at end of file From a8fb80010749a2d0fd2cbe87d02a91ce5bf75d36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 10:59:16 +0100 Subject: [PATCH 006/982] Handle Medtronic CareLink follower collector service in collectorservicestater --- .../dexdrip/UtilityModels/CollectionServiceStarter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/CollectionServiceStarter.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/CollectionServiceStarter.java index 462dbad716..a9c3ac25f9 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/CollectionServiceStarter.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/CollectionServiceStarter.java @@ -27,6 +27,7 @@ import static com.eveningoutpost.dexdrip.utils.DexCollectionType.Medtrum; import static com.eveningoutpost.dexdrip.utils.DexCollectionType.NSFollow; import static com.eveningoutpost.dexdrip.utils.DexCollectionType.SHFollow; +import static com.eveningoutpost.dexdrip.utils.DexCollectionType.ConnectFollow; import static com.eveningoutpost.dexdrip.utils.DexCollectionType.getCollectorServiceClass; /** @@ -229,6 +230,7 @@ private void stopAll() { JoH.stopService(getCollectorServiceClass(Medtrum)); JoH.stopService(getCollectorServiceClass(NSFollow)); JoH.stopService(getCollectorServiceClass(SHFollow)); + JoH.stopService(getCollectorServiceClass(ConnectFollow)); } private void start(Context context, String collection_method) { @@ -331,7 +333,7 @@ private void start(Context context, String collection_method) { startFollowerThread(); } else { // TODO newer item startups should be consolidated in to a DexCollectionType has set to avoid duplicating logic - if (DexCollectionType.hasBluetooth() || DexCollectionType.getDexCollectionType() == NSFollow || DexCollectionType.getDexCollectionType() == SHFollow) { + if (DexCollectionType.hasBluetooth() || DexCollectionType.getDexCollectionType() == NSFollow || DexCollectionType.getDexCollectionType() == SHFollow || DexCollectionType.getDexCollectionType() == ConnectFollow) { Log.d(TAG, "Starting service based on collector lookup"); startServiceCompat(new Intent(context, DexCollectionType.getCollectorServiceClass())); } From 941b7779dba252ee03db165bc6f8007fb396c299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 10:59:28 +0100 Subject: [PATCH 007/982] Connect follower collector service in AndroidManifest --- app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ed5907ec51..118746260e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -714,6 +714,7 @@ android:foregroundServiceType="connectedDevice|location" /> + Date: Sun, 14 Feb 2021 10:59:49 +0100 Subject: [PATCH 008/982] Show follower status info in (mega)status --- .../main/java/com/eveningoutpost/dexdrip/MegaStatus.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java index dfd23751da..c4246447a7 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java @@ -49,6 +49,7 @@ import com.eveningoutpost.dexdrip.cgm.medtrum.MedtrumCollectionService; import com.eveningoutpost.dexdrip.cgm.nsfollow.NightscoutFollowService; import com.eveningoutpost.dexdrip.cgm.sharefollow.ShareFollowService; +import com.eveningoutpost.dexdrip.cgm.connectfollow.ConnectFollowService; import com.eveningoutpost.dexdrip.insulin.inpen.InPenEntry; import com.eveningoutpost.dexdrip.insulin.inpen.InPenService; import com.eveningoutpost.dexdrip.utils.ActivityWithMenu; @@ -73,6 +74,7 @@ import static com.eveningoutpost.dexdrip.utils.DexCollectionType.Medtrum; import static com.eveningoutpost.dexdrip.utils.DexCollectionType.NSFollow; import static com.eveningoutpost.dexdrip.utils.DexCollectionType.SHFollow; +import static com.eveningoutpost.dexdrip.utils.DexCollectionType.ConnectFollow; public class MegaStatus extends ActivityWithMenu { @@ -123,6 +125,7 @@ private void addAsection(String section, String title) { private static final String INPEN_STATUS = "InPen"; private static final String NIGHTSCOUT_FOLLOW = "Nightscout Follow"; private static final String SHARE_FOLLOW = "Dex Share Follow"; + private static final String CONNECT_FOLLOW = "Medtronic Connect"; private static final String XDRIP_LIBRE2 = "Libre2"; static { @@ -199,6 +202,9 @@ private void populateSectionList() { if(dexCollectionType.equals(SHFollow)) { addAsection(SHARE_FOLLOW, "Dex Share Follow Status"); } + if(dexCollectionType.equals(ConnectFollow)) { + addAsection(CONNECT_FOLLOW, "Medtronic Connect Status"); + } //addAsection("Misc", "Currently Empty"); @@ -259,6 +265,9 @@ private static void populate(MegaStatusListAdapter la, String section) { case SHARE_FOLLOW: la.addRows(ShareFollowService.megaStatus()); break; + case CONNECT_FOLLOW: + la.addRows(ConnectFollowService.megaStatus()); + break; case XDRIP_LIBRE2: la.addRows(LibreReceiver.megaStatus()); break; From 94e9331b1aaf6ce2fe42dabc295470e4ab684759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 11:00:10 +0100 Subject: [PATCH 009/982] Add Medtronic CareLink follower collector as a new collector type --- .../eveningoutpost/dexdrip/utils/DexCollectionType.java | 7 ++++++- app/src/main/res/values/arrays.xml | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java index 4164737318..aa8de8be46 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java @@ -10,6 +10,7 @@ import com.eveningoutpost.dexdrip.cgm.medtrum.MedtrumCollectionService; import com.eveningoutpost.dexdrip.cgm.nsfollow.NightscoutFollowService; import com.eveningoutpost.dexdrip.cgm.sharefollow.ShareFollowService; +import com.eveningoutpost.dexdrip.cgm.connectfollow.ConnectFollowService; import java.lang.reflect.Method; import java.util.Collections; @@ -39,6 +40,7 @@ public enum DexCollectionType { NSEmulator("NSEmulator"), NSFollow("NSFollower"), SHFollow("SHFollower"), + ConnectFollow("ConnectFollower"), Medtrum("Medtrum"), Disabled("Disabled"), Mock("Mock"), @@ -192,6 +194,8 @@ public static Class getCollectorServiceClass(final DexCollectionType type) { return NightscoutFollowService.class; case SHFollow: return ShareFollowService.class; + case ConnectFollow: + return ConnectFollowService.class; default: return DexCollectionService.class; } @@ -267,7 +271,8 @@ public static String getBestCollectorHardwareName() { return "Nightscout"; case SHFollow: return "Share"; - + case ConnectFollow: + return "Medtronic Connect"; default: return dct.name(); } diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index f367afe353..e9d561c871 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -18,6 +18,7 @@ Medtrum A6 Nightscout Follower Dex Share Follower + Medtronic Connect Disable Collection @@ -39,6 +40,7 @@ Medtrum NSFollower SHFollower + ConnectFollower Disabled From 44d683d505903fd89d728e6a66bef45fe1ebd04a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 11:00:50 +0100 Subject: [PATCH 010/982] Handle Medtronic CareLink follower collector datasource in Home --- app/src/main/java/com/eveningoutpost/dexdrip/Home.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/Home.java b/app/src/main/java/com/eveningoutpost/dexdrip/Home.java index 80d2431a2c..a9ed39459e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/Home.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/Home.java @@ -2331,7 +2331,7 @@ private void updateCurrentBgInfo(String source) { } if (isWifiWixel || isWifiBluetoothWixel || isWifiandBTLibre || isWifiLibre || collector.equals(DexCollectionType.Mock)) { updateCurrentBgInfoForWifiWixel(collector, notificationText); - } else if (is_follower || collector.equals(DexCollectionType.NSEmulator) || collector.equals(DexCollectionType.NSFollow) || collector.equals(DexCollectionType.SHFollow) ||collector.equals(DexCollectionType.LibreReceiver)) { + } else if (is_follower || collector.equals(DexCollectionType.NSEmulator) || collector.equals(DexCollectionType.NSFollow) || collector.equals(DexCollectionType.SHFollow) ||collector.equals(DexCollectionType.LibreReceiver) || collector.equals(DexCollectionType.ConnectFollow)) { displayCurrentInfo(); Inevitable.task("home-notifications-start", 5000, Notifications::start); } else if (!alreadyDisplayedBgInfoCommon && (DexCollectionType.getDexCollectionType() == DexCollectionType.LibreAlarm || collector == DexCollectionType.Medtrum)) { From 08cce369e935adfcece505eee2c01c0f2cc93599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 11:01:13 +0100 Subject: [PATCH 011/982] CareLink follower collector preferences, preference title strings, country list --- app/src/main/res/values/arrays.xml | 234 ++++++++++++++++++++++ app/src/main/res/values/strings.xml | 8 + app/src/main/res/xml/pref_data_source.xml | 24 ++- 3 files changed, 265 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index e9d561c871..87576236cb 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -203,4 +203,238 @@ JamTrendArrow3Impl + + Albania + Algeria + Argentina + Armenia + Aruba + Australia + Austria + Azerbaijan + Bahamas + Bahrain + Barbados + Belarus + Belgium + Bermuda + Bolivia + Bosnia and Herzegovina + Brazil + Bulgaria + Cambodia + Canada + Cayman Islands + Chile + China + Colombia + Costa Rica + Croatia + Curacao + Cyprus + Czech Republic + Denmark + Dominican Republic + Ecuador + Egypt + El Salvador + Estonia + Finland + France + Georgia + Germany + Greece + Guatemala + Honduras + Hong Kong + Hungary + Iceland + India + Indonesia + Iran + Iraq + Ireland + Israel + Italy + Japan + Jordan + Kosovo + Kuwait + Latvia + Lebanon + Libya + Lithuania + Luxembourg + Macau + Macedonia + Malaysia + Maldives + Malta + Mauritius + Mayotte + Mexico + Moldova + Montenegro + Morocco + Namibia + Netherlands + New Caledonia + New Zealand + Nicaragua + Nigeria + Norway + Oman + Pakistan + Panama + Paraguay + Peru + Philippines + Poland + Portugal + Puerto Rico + Qatar + Romania + Russia + Saudi Arabia + Serbia + Singapore + Slovakia + Slovenia + South Africa + South Korea + Spain + St Martin + Sudan + Sweden + Switzerland + Taiwan + Thailand + Tunisia + Turkey + Ukraine + United Arab Emirates + United Kingdom + United States + Uruguay + Venezuela + Vietnam + + + + al + dz + ar + am + aw + au + at + az + bs + bh + bb + by + be + bm + bo + ba + br + bg + kh + ca + ky + cl + cn + co + cr + hr + cw + cy + cz + dk + do + ec + eg + sv + ee + fi + fr + ge + de + gr + gt + hn + hk + hu + is + in + id + ir + iq + ie + il + it + jp + jo + xk + kw + lv + lb + ly + lt + lu + mo + mk + my + mv + mt + mu + yt + mx + md + me + ma + na + nl + nc + nz + ni + ng + no + om + pk + pa + py + pe + ph + pl + pt + pr + qa + ro + ru + sa + rs + sg + sk + si + za + kr + es + mf + sd + se + ch + tw + th + tn + tr + ua + ae + gb + us + uy + ve + vn + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f0502f0423..438836adae 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1315,6 +1315,14 @@ Nightscout Follow URL Also download treatments from Nightscout as follower Download Treatments + CareLink Username + CareLink login username + CareLink Password + CareLink login password + CareLink Country + CareLink country code + CareLink Language + CareLink language code OB1 G5/G6 Collector Settings Complete re-write, should work on Android 4.4-9, supports native mode and more Use the OB1 Collector diff --git a/app/src/main/res/xml/pref_data_source.xml b/app/src/main/res/xml/pref_data_source.xml index d14fcede5a..f194183f93 100644 --- a/app/src/main/res/xml/pref_data_source.xml +++ b/app/src/main/res/xml/pref_data_source.xml @@ -140,7 +140,29 @@ android:summary="Login password for Dex Share Following" android:title="Share Password" /> - + + + Date: Sun, 14 Feb 2021 11:01:40 +0100 Subject: [PATCH 012/982] Turn on/off preferences of CareLink follower collector --- .../dexdrip/utils/Preferences.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java index ee1c56c2b7..07f08ea932 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java @@ -88,6 +88,7 @@ import com.eveningoutpost.dexdrip.calibrations.PluggableCalibration; import com.eveningoutpost.dexdrip.cgm.nsfollow.NightscoutFollow; import com.eveningoutpost.dexdrip.cgm.sharefollow.ShareFollowService; +import com.eveningoutpost.dexdrip.cgm.connectfollow.ConnectFollowService; import com.eveningoutpost.dexdrip.insulin.inpen.InPenEntry; import com.eveningoutpost.dexdrip.profileeditor.ProfileEditor; import com.eveningoutpost.dexdrip.tidepool.TidepoolUploader; @@ -1187,6 +1188,41 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { } } + //CareLink Follow preferences + final Preference connectFollowUser = findPreference("connectfollow_user"); + final Preference connectFollowPass = findPreference("connectfollow_pass"); + final Preference connectFollowCountry = findPreference("connectfollow_country"); + if (collectionType == DexCollectionType.ConnectFollow) { + //Add CL prefs + collectionCategory.addPreference(connectFollowUser); + collectionCategory.addPreference(connectFollowPass); + collectionCategory.addPreference(connectFollowCountry); + //Create prefChange handler + final Preference.OnPreferenceChangeListener connectFollowListener = new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + ConnectFollowService.resetInstanceAndInvalidateSession(); + CollectionServiceStarter.restartCollectionServiceBackground(); + return true; + } + }; + //Register prefChange handler + try { + connectFollowUser.setOnPreferenceChangeListener(connectFollowListener); + connectFollowPass.setOnPreferenceChangeListener(connectFollowListener); + connectFollowCountry.setOnPreferenceChangeListener(connectFollowListener); + } catch (Exception e) { + // + } + } else { + try { + collectionCategory.removePreference(connectFollowUser); + collectionCategory.removePreference(connectFollowPass); + collectionCategory.removePreference(connectFollowCountry); + } catch (Exception e) { + // + } + } final Preference inpen_enabled = findPreference("inpen_enabled"); try { @@ -1513,6 +1549,16 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { } } + if (collectionType != DexCollectionType.ConnectFollow) { + try { + collectionCategory.removePreference(connectFollowCountry); + collectionCategory.removePreference(connectFollowPass); + collectionCategory.removePreference(connectFollowUser); + } catch (Exception e) { + // + } + } + try { findPreference("nfc_scan_homescreen").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override From 3ee1d1280d96120f6dd89c018dedb5107579f7bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Sun, 14 Feb 2021 11:02:05 +0100 Subject: [PATCH 013/982] Datasource icon, wizard definition, wizard steps in helper for CareLink follower collector --- .../dexdrip/UtilityModels/SourceWizard.java | 1 + .../dexdrip/utils/DexCollectionHelper.java | 34 ++++++++++++++++++ .../main/res/drawable/connectfollow_icon.png | Bin 0 -> 13189 bytes 3 files changed, 35 insertions(+) create mode 100644 app/src/main/res/drawable/connectfollow_icon.png diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java index aa5f8d07b5..eede5999ee 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java @@ -73,6 +73,7 @@ public class SourceWizard { other.addChild(new Item("Dex Share Follower", DexCollectionType.SHFollow, R.drawable.nsfollow_icon)); // other.addChild(new Item("EverSense", DexCollectionType.NSEmulator, R.drawable.wikimedia_eversense_icon_pbroks13)); + other.addChild(new Item("Medtronic Connect", DexCollectionType.ConnectFollow, R.drawable.connectfollow_icon)); } } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java index 70fb20a260..e745a8ddfe 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java @@ -12,6 +12,7 @@ import com.eveningoutpost.dexdrip.UtilityModels.CollectionServiceStarter; import com.eveningoutpost.dexdrip.UtilityModels.Pref; import com.eveningoutpost.dexdrip.cgm.sharefollow.ShareFollowService; +import com.eveningoutpost.dexdrip.cgm.connectfollow.ConnectFollowService; import com.eveningoutpost.dexdrip.xdrip; import static com.eveningoutpost.dexdrip.ui.dialog.QuickSettingsDialogs.booleanSettingDialog; @@ -129,6 +130,39 @@ public void run() { bluetoothScanIfNeeded(); break; + case ConnectFollow: + textSettingDialog(activity, + "connectfollow_country", "CareLink Country", + "Enter CareLink Country Code", + InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, + new Runnable() { + @Override + public void run() { + textSettingDialog(activity, + "connectfollow_user", "CareLink Username", + "Enter CareLink Username", + InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, + new Runnable() { + @Override + public void run() { + textSettingDialog(activity, + "connectfollow_pass", "CareLink Password", + "Enter CareLink Password", + InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, + new Runnable() { + @Override + public void run() { + Home.staticRefreshBGCharts(); + ConnectFollowService.resetInstanceAndInvalidateSession(); + CollectionServiceStarter.restartCollectionServiceBackground(); + } + }); + } + }); + } + }); + break; + // TODO G4 Share Receiver // TODO Parakeet / Wifi ?? diff --git a/app/src/main/res/drawable/connectfollow_icon.png b/app/src/main/res/drawable/connectfollow_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2b0bb97794f65fe8ae58750303bfd3648b6c356d GIT binary patch literal 13189 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

$eU3IV9c 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 literal 0 HcmV?d00001 From 7d08daf9c90a5faef17342186da18bb0d35ccf84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Fri, 19 Feb 2021 21:04:31 +0100 Subject: [PATCH 014/982] Simplification of handling countries. --- .../cgm/connectfollow/ConnectClient.java | 10 +- .../ConnectFollowDownloader.java | 10 +- .../connectfollow/ConnectFollowService.java | 2 +- .../dexdrip/cgm/connectfollow/Country.java | 152 ------------------ .../cgm/connectfollow/CountryHelper.java | 128 +++++++++++++++ 5 files changed, 139 insertions(+), 163 deletions(-) delete mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/Country.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/CountryHelper.java diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java index 79bf65671c..645501d73e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java @@ -34,7 +34,7 @@ public class ConnectClient { protected String carelinkUsername; protected String carelinkPassword; - protected Country carelinkCountry; + protected String carelinkCountry; protected static final String CARELINK_CONNECT_SERVER_EU = "carelink.minimed.eu"; protected static final String CARELINK_CONNET_SERVER_US = "carelink.minimed.com"; protected static final String CARELINK_LANGUAGE_EN = "en"; @@ -70,7 +70,7 @@ protected enum RequestType{ Json() } - public ConnectClient(String carelinkUsername, String carelinkPassword, Country carelinkCountry) { + public ConnectClient(String carelinkUsername, String carelinkPassword, String carelinkCountry) { this.carelinkUsername = carelinkUsername; this.carelinkPassword = carelinkPassword; @@ -87,7 +87,7 @@ public ConnectClient(String carelinkUsername, String carelinkPassword, Country c } protected String careLinkServer() { - return(this.carelinkCountry == Country.UnitedStates ? CARELINK_CONNET_SERVER_US : CARELINK_CONNECT_SERVER_EU ); + return(this.carelinkCountry == "us" ? CARELINK_CONNET_SERVER_US : CARELINK_CONNECT_SERVER_EU ); } @@ -142,7 +142,7 @@ protected Response getLoginSession() throws IOException { .scheme("https") .host(this.careLinkServer()) .addPathSegments("patient/sso/login") - .addQueryParameter("country", this.carelinkCountry.getCountryCode()) + .addQueryParameter("country", this.carelinkCountry) .addQueryParameter("lang", CARELINK_LANGUAGE_EN) .build(); @@ -176,7 +176,7 @@ protected Response doLogin(Response loginSessionResponse) throws IOException { .host("mdtlogin.medtronic.com") .addPathSegments("mmcl/auth/oauth/v2/authorize/login") .addQueryParameter("locale", CARELINK_LOCALE_EN) - .addQueryParameter("country", this.carelinkCountry.getCountryCode()) + .addQueryParameter("country", this.carelinkCountry) .build(); requestBuilder = new Request.Builder() diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java index 6a52cc4a54..2a39c51aee 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java @@ -30,7 +30,7 @@ public class ConnectFollowDownloader { private String carelinkUsername; private String carelinkPassword; - private Country carelinkCountry; + private String carelinkCountry; private ConnectClient connectClient; @@ -47,11 +47,11 @@ public String getStatus(){ return status; } - ConnectFollowDownloader(String carelinkUsername, String carelinkPassword, Country carelinkCountry) { + ConnectFollowDownloader(String carelinkUsername, String carelinkPassword, String carelinkCountry) { this.carelinkUsername = carelinkUsername; this.carelinkPassword = carelinkPassword; this.carelinkCountry = carelinkCountry; - loginDataLooksOkay = !emptyString(carelinkUsername) && !emptyString(carelinkPassword) && carelinkCountry != null && carelinkCountry != Country.Invalid; + loginDataLooksOkay = !emptyString(carelinkUsername) && !emptyString(carelinkPassword) && carelinkCountry != null && !emptyString(carelinkCountry); } public static void resetInstance() { @@ -99,8 +99,8 @@ public boolean doEverything( ) { } if(carelinkCountry == null){ UserError.Log.e(TAG, "CareLink Country empty!"); - }else if(carelinkCountry == Country.Invalid){ - UserError.Log.e(TAG, "CareLink Country invalid!"); + }else if(!CountryHelper.isSupportedCountry(carelinkCountry)){ + UserError.Log.e(TAG, "CareLink Country not supported!"); } return false; } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java index 230b93a4d1..0e57ad5179 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java @@ -132,7 +132,7 @@ public int onStartCommand(Intent intent, int flags, int startId) { downloader = new ConnectFollowDownloader( Pref.getString("connectfollow_user", ""), Pref.getString("connectfollow_pass", ""), - Country.getCountry(Pref.getString("connectfollow_country", "")) + Pref.getString("connectfollow_country", "").toLowerCase() ); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/Country.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/Country.java deleted file mode 100644 index 660b045f15..0000000000 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/Country.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow; - -import java.util.HashMap; -import java.util.Map; - -public enum Country { - - Invalid("invalid"), - Algeria("dz"), - BosniaAndHerzegovina("ba"), - Egypt("eg"), - SouthAfrica("za"), - Canada("ca"), - CostaRica("cr"), - Mexico("mx"), - Morocco("ma"), - Panama("pa"), - PuertoRico("pr"), - UnitedStates("us"), - Argentina("ar"), - Brazil("br"), - Chile("cl"), - Colombia("co"), - Venezuela("ve"), - HongKong("hk"), - India("in"), - Indonesia("id"), - Israel("il"), - Japan("jp"), - Kuwait("kw"), - Lebanon("lb"), - Malaysia("my"), - Philippines("ph"), - Qatar("qa"), - SaudiArabia("sa"), - Singapore("sg"), - SouthKorea("kr"), - Taiwan("tw"), - Thailand("th"), - Tunisia("tn"), - Turkey("tr"), - UnitedArabEmirates("ae"), - Vietnam("vn"), - Austria("at"), - Belgium("be"), - Bulgaria("bg"), - Croatia("hr"), - CzechRepublic("cz"), - Denmark("dk"), - Estonia("ee"), - Finland("fi"), - France("fr"), - Germany("de"), - Greece("gr"), - Hungary("hu"), - Iceland("is"), - Ireland("ie"), - Italy("it"), - Latvia("lv"), - Lithuania("lt"), - Luxembourg("lu"), - Netherlands("nl"), - Norway("no"), - Poland("pl"), - Portugal("pt"), - Romania("ro"), - Russia("ru"), - Serbia("rs"), - Slovakia("sk"), - Slovenia("si"), - Spain("es"), - Sweden("se"), - Switzerland("ch"), - Ukraine("ua"), - UnitedKingdom("gb"), - Australia("au"), - NewZealand("nz"), - Bahrain("bh"), - Oman("om"), - China("cn"), - Cyprus("cy"), - Albania("al"), - Armenia("am"), - Azerbaijan("az"), - Bahamas("bs"), - Barbados("bb"), - Belarus("by"), - Bermuda("bm"), - Bolivia("bo"), - Cambodia("kh"), - DominicanRepublic("do"), - Ecuador("ec"), - ElSalvador("sv"), - Georgia("ge"), - Guatemala("gt"), - Honduras("hn"), - Iran("ir"), - Iraq("iq"), - Jordan("jo"), - Kosovo("xk"), - Libya("ly"), - Macau("mo"), - Macedonia("mk"), - Maldives("mv"), - Malta("mt"), - Mauritius("mu"), - Mayotte("yt"), - Moldova("md"), - Montenegro("me"), - Namibia("na"), - NewCaledonia("nc"), - Nicaragua("ni"), - Nigeria("ng"), - Pakistan("pk"), - Paraguay("py"), - StMartin("mf"), - Sudan("sd"), - Uruguay("uy"), - Aruba("aw"), - CaymanIslands("ky"), - Curacao("cw"), - Peru("pe"); - - private static final Map mapToCode; - - static { - mapToCode = new HashMap<>(); - - for(Country cntry : values()) { - mapToCode.put(cntry.countryCode, cntry); - } - } - - private String countryCode; - - private Country(String code){ - this.countryCode = code; - } - - public String getCountryCode() { - return this.countryCode; - } - - public static Country getCountry(String code) { - if(mapToCode.containsKey(code)) - return mapToCode.get(code); - else - return Invalid; - } - - -} \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/CountryHelper.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/CountryHelper.java new file mode 100644 index 0000000000..146d4cdbb2 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/CountryHelper.java @@ -0,0 +1,128 @@ +package com.eveningoutpost.dexdrip.cgm.connectfollow; + +import java.util.Arrays; + +public class CountryHelper { + + public static final String[] supportedCountryCodes = { + "dz", + "ba", + "eg", + "za", + "ca", + "cr", + "mx", + "ma", + "pa", + "pr", + "us", + "ar", + "br", + "cl", + "co", + "ve", + "hk", + "in", + "id", + "il", + "jp", + "kw", + "lb", + "my", + "ph", + "qa", + "sa", + "sg", + "kr", + "tw", + "th", + "tn", + "tr", + "ae", + "vn", + "at", + "be", + "bg", + "hr", + "cz", + "dk", + "ee", + "fi", + "fr", + "de", + "gr", + "hu", + "is", + "ie", + "it", + "lv", + "lt", + "lu", + "nl", + "no", + "pl", + "pt", + "ro", + "ru", + "rs", + "sk", + "si", + "es", + "se", + "ch", + "ua", + "gb", + "au", + "nz", + "bh", + "om", + "cn", + "cy", + "al", + "am", + "az", + "bs", + "bb", + "by", + "bm", + "bo", + "kh", + "do", + "ec", + "sv", + "ge", + "gt", + "hn", + "ir", + "iq", + "jo", + "xk", + "ly", + "mo", + "mk", + "mv", + "mt", + "mu", + "yt", + "md", + "me", + "na", + "nc", + "ni", + "ng", + "pk", + "py", + "mf", + "sd", + "uy", + "aw", + "ky", + "cw", + "pe" + }; + + public static boolean isSupportedCountry(String countryCode){ + return Arrays.asList(supportedCountryCodes).contains(countryCode); + } + +} From cdf89037dc30ef889302d581f329bc357e8f2f4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Fri, 19 Feb 2021 21:04:43 +0100 Subject: [PATCH 015/982] Add newline at EOF of ConnectClient --- .../eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java index 645501d73e..99581dc43d 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java @@ -343,4 +343,4 @@ protected void addHttpHeaders(Request.Builder requestBuilder, RequestType type) } -} \ No newline at end of file +} From 6e22fd8ee5c55f86f80d24d5c4a216046312bfff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Fri, 19 Feb 2021 21:04:54 +0100 Subject: [PATCH 016/982] Remove unused code from ConnectClient --- .../dexdrip/cgm/connectfollow/ConnectClient.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java index 99581dc43d..055a905634 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java @@ -3,11 +3,9 @@ import android.util.Log; import java.io.IOException; -import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; -import lombok.Getter; import okhttp3.*; import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectData; @@ -238,17 +236,10 @@ protected String extractResponseData(String respBody, String groupRegex, int gro protected String getAuthorizationToken() { - //New token is needed: no token or about to expire => execute authentication -// if(!((SimpleOkHttpCookieJar) httpClient.cookieJar()).contains(CARELINK_AUTH_TOKEN_COOKIE_NAME) || -// !((SimpleOkHttpCookieJar) httpClient.cookieJar()).contains(CARELINK_TOKEN_VALIDTO_COOKIE_NAME) || -// !((new Date(Date.parse(((SimpleOkHttpCookieJar) httpClient.cookieJar()).getCookies(CARELINK_TOKEN_VALIDTO_COOKIE_NAME).get(0).value()))) -// .after(new Date(new Date(System.currentTimeMillis()).getTime() + AUTH_EXPIRE_DEADLINE_MINUTES * 60000)) -// )){ + if(!this.executeAuthenticationProcedure()){ return null; }; -// } - //there can be only one return "Bearer" + " " + ((SimpleOkHttpCookieJar) httpClient.cookieJar()).getCookies(CARELINK_AUTH_TOKEN_COOKIE_NAME).get(0).value(); From 7c64a7a420239af30731138ecbfd5deb4251268d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Fri, 19 Feb 2021 21:05:10 +0100 Subject: [PATCH 017/982] Remove TODO label of future improvemet options --- .../cgm/connectfollow/ConnectFollowDownloader.java | 9 --------- .../dexdrip/cgm/connectfollow/DataProcessor.java | 11 +---------- .../dexdrip/utils/DexCollectionHelper.java | 2 +- 3 files changed, 2 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java index 2a39c51aee..8541fead87 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java @@ -4,17 +4,10 @@ import com.eveningoutpost.dexdrip.Models.JoH; import com.eveningoutpost.dexdrip.Models.UserError; -import com.eveningoutpost.dexdrip.R; import com.eveningoutpost.dexdrip.UtilityModels.CollectionServiceStarter; import com.eveningoutpost.dexdrip.UtilityModels.Constants; import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; -import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectData; import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectDataResult; -import com.eveningoutpost.dexdrip.xdrip; - -import java.util.List; - -import lombok.Getter; import static com.eveningoutpost.dexdrip.Models.JoH.emptyString; @@ -66,8 +59,6 @@ public boolean doEverything( ) { if (D) UserError.Log.e(TAG, "doEverything called"); if (loginDataLooksOkay) { - //TODO - //loginBackoff = 0; // reset backoff timer due to login success if (JoH.tsl() > loginBlockedTill) { try { if (getConnectClient() != null) { diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java index 03ccdeb2ad..cb8c36440f 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java @@ -76,16 +76,7 @@ static synchronized void processData(final ConnectData connectData, final boolea bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; bg.filtered_data = (double) sg.sg; bg.noise = ""; - //TODO UUID should be longer? different logic for UUID generation? - //Needed for NS Uploader bg.uuid = UUID_CF_PREFIX + UUID_BG_PREFIX + String.valueOf(bg.timestamp); - //TODO check: slope, hide_slope - //final Double slope = entry.slopePerMsFromDirection(); - //if (slope != null) { - // bg.calculated_value_slope = slope; // this is made up but should match arrow - //} else { - //bg.hide_slope = true; - //} bg.calculated_value_slope = 0; bg.sensor = sensor; bg.sensor_uuid = sensor.uuid; @@ -94,7 +85,7 @@ static synchronized void processData(final ConnectData connectData, final boolea Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); } } else { - // break; // stop if we have this reading TODO are entries always in order? + //existing entry, not needed } } else { UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java index e745a8ddfe..0cf877721a 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java @@ -133,7 +133,7 @@ public void run() { case ConnectFollow: textSettingDialog(activity, "connectfollow_country", "CareLink Country", - "Enter CareLink Country Code", + "Two letter country code", InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, new Runnable() { @Override From 8de478dbea4a703c61f654f8205a187378a82cbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Fri, 19 Feb 2021 21:05:19 +0100 Subject: [PATCH 018/982] Short infos about main classes --- .../cgm/connectfollow/ConnectClient.java | 20 ++++--------------- .../ConnectFollowDownloader.java | 13 +++++++----- .../connectfollow/ConnectFollowService.java | 5 ++++- .../cgm/connectfollow/DataProcessor.java | 6 ++++++ .../connectfollow/messages/ActiveInsulin.java | 3 +++ .../cgm/connectfollow/messages/Alarm.java | 3 +++ .../connectfollow/messages/ConnectData.java | 3 +++ .../messages/ConnectDataResult.java | 3 +++ .../cgm/connectfollow/messages/Marker.java | 3 +++ .../cgm/connectfollow/messages/Result.java | 3 +++ .../connectfollow/messages/SensorGlucose.java | 3 +++ 11 files changed, 43 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java index 055a905634..71a5b93729 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java @@ -13,22 +13,10 @@ import com.google.gson.*; - -// TODO list -// 1) automatic token handling -// - request token -// - refresh token -// - remove fetch data -// 2) add other CareLink APIs -// - get patient data -// - get device info (last update???) -// - generate report -// - others?! -// 3) optimize getLast24hours -// - use device info -// 4) HTML helper class for data extraction from responses -// 6) other events, markers, notes - +/** + * Medtronic CareLink Connect Client + * - API client for communication with CareLink Connect + */ public class ConnectClient { protected String carelinkUsername; protected String carelinkPassword; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java index 8541fead87..9558eb05ee 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowDownloader.java @@ -12,10 +12,10 @@ import static com.eveningoutpost.dexdrip.Models.JoH.emptyString; /** - * Medtronic CareLink Connect follow + * Medtronic CareLink Connect Downloader + * - download data from CareLink + * - execute data conversion and update xDrip data */ - - public class ConnectFollowDownloader { private static final String TAG = "ConnectFollowDL"; @@ -126,7 +126,7 @@ private void processConnectData() { if (connectClient != null) { connectDataResult = getConnectClient().getLast24Hours(); - //Got data + //Got CareLink data if (connectDataResult.success) { UserError.Log.d(TAG, "Success get data! Response code: " + connectDataResult.responseCode); try { @@ -136,8 +136,10 @@ private void processConnectData() { UserError.Log.d(TAG, "SGs is null!"); } if (D) UserError.Log.d(TAG, "Start process data"); + //Process CareLink data (conversion and update xDrip data) DataProcessor.processData(connectDataResult.connectData, true); if (D) UserError.Log.d(TAG, "ProcessData finished!"); + //Update Service status ConnectFollowService.updateBgReceiveDelay(); if (D) UserError.Log.d(TAG, "UpdateBgReceiveDelay finished!"); msg(null); @@ -145,7 +147,7 @@ private void processConnectData() { } catch (Exception e) { UserError.Log.e(TAG, "Got exception for data update" + e); } - //Request error + //Error during data download } else { if (!getConnectClient().getLastLoginSuccess()) { UserError.Log.e(TAG, "CareLink login error!"); @@ -158,6 +160,7 @@ private void processConnectData() { } } + //Update status message if (connectDataResult.success) { msg(null); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java index 0e57ad5179..27ae175b54 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java @@ -28,7 +28,10 @@ import static com.eveningoutpost.dexdrip.UtilityModels.BgGraphBuilder.DEXCOM_PERIOD; /** - * Medtronic CareLink Connect follow + * Medtronic CareLink Connect Follow Service + * - main service class for managing CareLink Connect data retrieval + * - start/stop data retrieval + * - provide status infos of follower service */ public class ConnectFollowService extends ForegroundService { diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java index cb8c36440f..1f0827a935 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/DataProcessor.java @@ -11,6 +11,12 @@ import static com.eveningoutpost.dexdrip.Models.BgReading.SPECIAL_FOLLOWER_PLACEHOLDER; + +/** + * Medtronic CareLink Connect Data Processor + * - process CareLink data and convert to xDrip internal data + * - update xDrip internal data + */ public class DataProcessor { diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java index f4197ba228..1e26798abc 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java @@ -1,5 +1,8 @@ package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +/** + * CareLink ActiveInsulin data + */ public class ActiveInsulin { public int code; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java index 07fa8404ab..5a10eae823 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java @@ -1,5 +1,8 @@ package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +/** + * CareLink Alarm data + */ public class Alarm { public int code; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java index 7bb422aa9d..8f11d502b8 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java @@ -2,6 +2,9 @@ import java.util.List; +/** + * CareLink ConnectData message + */ public class ConnectData { public String lastSensorTSAsString; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java index 3993247399..327ab631c5 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java @@ -1,5 +1,8 @@ package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +/** + * CareLink ConnectData result + */ public class ConnectDataResult extends Result { public ConnectData connectData; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java index 06f26e701c..c776d5dd10 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java @@ -1,5 +1,8 @@ package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +/** + * CareLink Marker data + */ public class Marker { public String type; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java index ad22b4e615..bb5a2f7c9d 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java @@ -1,5 +1,8 @@ package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +/** + * CareLink communication result base + */ public class Result { public boolean success; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java index e6d906e732..970584af17 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java @@ -5,6 +5,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +/** + * CareLink SensorGlucose message with helper methods for processing + */ public class SensorGlucose { public long sg; From 564be51a7d58795b60b8bd8195afe5b6bd4bdcbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Wed, 24 Feb 2021 09:16:36 +0100 Subject: [PATCH 019/982] More precise description for country code parameter --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 438836adae..e68a2db61b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1320,7 +1320,7 @@ CareLink Password CareLink login password CareLink Country - CareLink country code + Two letter country ISO code CareLink Language CareLink language code OB1 G5/G6 Collector Settings From 6cdff3306c1e156c6cf1eb3cde6ab4fe9904c4f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Mon, 8 Mar 2021 22:07:04 +0100 Subject: [PATCH 020/982] Correction of handling US server --- .../dexdrip/cgm/connectfollow/ConnectClient.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java index 71a5b93729..2deb398b3e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java @@ -22,7 +22,7 @@ public class ConnectClient { protected String carelinkPassword; protected String carelinkCountry; protected static final String CARELINK_CONNECT_SERVER_EU = "carelink.minimed.eu"; - protected static final String CARELINK_CONNET_SERVER_US = "carelink.minimed.com"; + protected static final String CARELINK_CONNECT_SERVER_US = "carelink.minimed.com"; protected static final String CARELINK_LANGUAGE_EN = "en"; protected static final String CARELINK_LOCALE_EN = "en"; protected static final String CARELINK_AUTH_TOKEN_COOKIE_NAME = "auth_tmp_token"; @@ -73,7 +73,10 @@ public ConnectClient(String carelinkUsername, String carelinkPassword, String ca } protected String careLinkServer() { - return(this.carelinkCountry == "us" ? CARELINK_CONNET_SERVER_US : CARELINK_CONNECT_SERVER_EU ); + if(this.carelinkCountry.equals("us")) + return CARELINK_CONNECT_SERVER_US; + else + return CARELINK_CONNECT_SERVER_EU;; } From f97f1debaa27e59a780052a690146f8411c587dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Mon, 8 Mar 2021 22:18:46 +0100 Subject: [PATCH 021/982] Correction of return statement in careLinkServer --- .../eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java index 2deb398b3e..f7f168729e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java @@ -76,7 +76,7 @@ protected String careLinkServer() { if(this.carelinkCountry.equals("us")) return CARELINK_CONNECT_SERVER_US; else - return CARELINK_CONNECT_SERVER_EU;; + return CARELINK_CONNECT_SERVER_EU; } From 720d411342585ee9bdbf2ae425d20f8c5ed2cb20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A1sz?= <32592661+benceszasz@users.noreply.github.com> Date: Thu, 11 Mar 2021 10:23:50 +0100 Subject: [PATCH 022/982] Correct description for country code parameter --- .../com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java | 2 +- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java index 0cf877721a..c3337b6436 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java @@ -133,7 +133,7 @@ public void run() { case ConnectFollow: textSettingDialog(activity, "connectfollow_country", "CareLink Country", - "Two letter country code", + "Two letter country ISO code", InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, new Runnable() { @Override diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e68a2db61b..b6312b9571 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1320,7 +1320,7 @@ CareLink Password CareLink login password CareLink Country - Two letter country ISO code + Select your CareLink country. CareLink Language CareLink language code OB1 G5/G6 Collector Settings From f6c08cf8e5e4d09c0132325977105eaff7e42f06 Mon Sep 17 00:00:00 2001 From: bigdigital <4833779+bigdigital@users.noreply.github.com> Date: Thu, 28 Jul 2022 15:18:49 +0300 Subject: [PATCH 023/982] allow to send predicted data (IOB, BWP) --- .../broadcastservice/BroadcastService.java | 40 ++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/Services/broadcastservice/BroadcastService.java b/app/src/main/java/com/eveningoutpost/dexdrip/Services/broadcastservice/BroadcastService.java index abe69b9b73..72566d9b51 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/Services/broadcastservice/BroadcastService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/Services/broadcastservice/BroadcastService.java @@ -12,6 +12,8 @@ import android.os.Parcelable; import android.os.PowerManager; import android.preference.PreferenceManager; +import android.support.v4.content.LocalBroadcastManager; +import android.util.Log; import com.eveningoutpost.dexdrip.BestGlucose; import com.eveningoutpost.dexdrip.Models.Accuracy; @@ -29,6 +31,7 @@ import com.eveningoutpost.dexdrip.UtilityModels.AlertPlayer; import com.eveningoutpost.dexdrip.UtilityModels.BgGraphBuilder; import com.eveningoutpost.dexdrip.UtilityModels.Constants; +import com.eveningoutpost.dexdrip.UtilityModels.Intents; import com.eveningoutpost.dexdrip.UtilityModels.Pref; import com.eveningoutpost.dexdrip.UtilityModels.PumpStatus; import com.eveningoutpost.dexdrip.stats.StatsResult; @@ -76,6 +79,11 @@ public class BroadcastService extends Service { protected String TAG = this.getClass().getSimpleName(); protected Map broadcastEntities; + private BroadcastReceiver statusReceiver; + + private String predictedBWP; + private String predictedIOB; + /** * The receiver listening {@link ACTION_WATCH_COMMUNICATION_RECEIVER} action. * Every Receiver command requires {@link Const.INTENT_PACKAGE_KEY} @@ -209,7 +217,6 @@ public void onReceive(Context context, Intent intent) { } }; - @Override public IBinder onBind(Intent intent) { return null; @@ -227,6 +234,25 @@ public void onCreate() { registerReceiver(broadcastReceiver, new IntentFilter(ACTION_WATCH_COMMUNICATION_RECEIVER)); JoH.startService(BroadcastService.class, Const.INTENT_FUNCTION_KEY, Const.CMD_START); + + statusReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + final String bwp = intent.getStringExtra("bwp"); + if (bwp != null) { + predictedBWP = bwp; + } else { + final String iob = intent.getStringExtra("iob"); + if (iob != null) { + predictedIOB = iob; + } + } + } + }; + + LocalBroadcastManager.getInstance(this).registerReceiver(statusReceiver, + new IntentFilter(Intents.HOME_STATUS_ACTION)); + super.onCreate(); } @@ -235,6 +261,12 @@ public void onDestroy() { UserError.Log.e(TAG, "killing service"); broadcastEntities.clear(); unregisterReceiver(broadcastReceiver); + + try { + LocalBroadcastManager.getInstance(this).unregisterReceiver(statusReceiver); + } catch (Exception e) { + Log.e(TAG, "Exception unregistering broadcast receiver: " + e); + } super.onDestroy(); } @@ -513,7 +545,7 @@ protected Bundle prepareBgBundle(BroadcastModel broadcastModel) { bundle.putDouble("lowMark", JoH.tolerantParseDouble(prefs.getString("lowValue", "70"), 70)); BgGraphBuilder bgGraphBuilder = new BgGraphBuilder(xdrip.getAppContext(), start, end); - bgGraphBuilder.defaultLines(true); // simple mode + bgGraphBuilder.defaultLines(false); // not simple mode in order to receive simulated data bundle.putParcelable("graph.lowLine", new GraphLine(bgGraphBuilder.lowLine())); bundle.putParcelable("graph.highLine", new GraphLine(bgGraphBuilder.highLine())); @@ -530,7 +562,11 @@ protected Bundle prepareBgBundle(BroadcastModel broadcastModel) { bundle.putParcelable("graph.cob", new GraphLine(treatments[6])); //cobValues bundle.putParcelable("graph.polyBg", new GraphLine(treatments[7])); //poly predict ; } + + bundle.putString("predict.IOB", predictedIOB); + bundle.putString("predict.BWP", predictedBWP); } return bundle; } + } From deb66bb30e7cd1a98b11429fe3ca0adb259fdcf1 Mon Sep 17 00:00:00 2001 From: bigdigital <4833779+bigdigital@users.noreply.github.com> Date: Fri, 29 Jul 2022 12:14:52 +0300 Subject: [PATCH 024/982] reset predicted iob before data refresh --- .../dexdrip/Services/broadcastservice/BroadcastService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/Services/broadcastservice/BroadcastService.java b/app/src/main/java/com/eveningoutpost/dexdrip/Services/broadcastservice/BroadcastService.java index 72566d9b51..f61e4fd1ea 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/Services/broadcastservice/BroadcastService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/Services/broadcastservice/BroadcastService.java @@ -527,6 +527,9 @@ protected Bundle prepareBgBundle(BroadcastModel broadcastModel) { bundle.putLong("treatment.timeStamp", treatment.timestamp); } + predictedIOB = ""; + predictedBWP = ""; + if (settings.isDisplayGraph()) { long graphStartOffset = settings.getGraphStart(); long graphEndOffset = settings.getGraphEnd(); From 7e3fb5b37c88e55b53079d1c22950ea91dc7af0e Mon Sep 17 00:00:00 2001 From: benceszasz Date: Fri, 12 Aug 2022 17:59:49 +0200 Subject: [PATCH 025/982] Correct merge conflicts --- app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java | 1 + .../dexdrip/UtilityModels/CollectionServiceStarter.java | 3 ++- .../com/eveningoutpost/dexdrip/utils/DexCollectionType.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java index 487c92681c..f4ea7cf56c 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java @@ -12,6 +12,7 @@ import static com.eveningoutpost.dexdrip.utils.DexCollectionType.NSFollow; import static com.eveningoutpost.dexdrip.utils.DexCollectionType.SHFollow; import static com.eveningoutpost.dexdrip.utils.DexCollectionType.WebFollow; +import static com.eveningoutpost.dexdrip.utils.DexCollectionType.ConnectFollow; import android.app.Activity; import android.app.Fragment; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/CollectionServiceStarter.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/CollectionServiceStarter.java index 974b94c7c7..8e39e71546 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/CollectionServiceStarter.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/CollectionServiceStarter.java @@ -337,7 +337,8 @@ private void start(Context context, String collection_method) { // TODO newer item startups should be consolidated in to a DexCollectionType has set to avoid duplicating logic if (DexCollectionType.hasBluetooth() || DexCollectionType.getDexCollectionType() == NSFollow || DexCollectionType.getDexCollectionType() == SHFollow - || DexCollectionType.getDexCollectionType() == WebFollow) { // TODO make this a set lookup + || DexCollectionType.getDexCollectionType() == WebFollow + || DexCollectionType.getDexCollectionType() == ConnectFollow) { // TODO make this a set lookup Log.d(TAG, "Starting service based on collector lookup"); startServiceCompat(new Intent(context, DexCollectionType.getCollectorServiceClass())); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java index dcd3cba49d..a6d48cc043 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java @@ -82,7 +82,7 @@ public enum DexCollectionType { Collections.addAll(usesXbridge, DexbridgeWixel, WifiDexBridgeWixel); Collections.addAll(usesFiltered, DexbridgeWixel, WifiDexBridgeWixel, DexcomG5, WifiWixel, Follower, Mock); // Bluetooth and Wifi+Bluetooth need dynamic mode Collections.addAll(usesLibre, LimiTTer, LibreAlarm, LimiTTerWifi, LibreWifi, LibreReceiver); - Collections.addAll(isPassive, NSEmulator, NSFollow, SHFollow, WebFollow, LibreReceiver, UiBased); + Collections.addAll(isPassive, NSEmulator, NSFollow, SHFollow, WebFollow, LibreReceiver, UiBased, ConnectFollow); Collections.addAll(usesBattery, BluetoothWixel, DexbridgeWixel, WifiBlueToothWixel, WifiDexBridgeWixel, Follower, LimiTTer, LibreAlarm, LimiTTerWifi, LibreWifi); // parakeet separate Collections.addAll(usesDexcomRaw, BluetoothWixel, DexbridgeWixel, WifiWixel, WifiBlueToothWixel, DexcomG5, WifiDexBridgeWixel, Mock); Collections.addAll(usesTransmitterBattery, WifiWixel, BluetoothWixel, DexbridgeWixel, WifiBlueToothWixel, WifiDexBridgeWixel); // G4 transmitter battery From f9b783af0a062162681f48836a1c104e165e2df8 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Fri, 12 Aug 2022 18:44:44 +0200 Subject: [PATCH 026/982] Remove Medtronic logo and use NS icon instead --- .../dexdrip/UtilityModels/SourceWizard.java | 2 +- .../main/res/drawable/connectfollow_icon.png | Bin 13189 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 app/src/main/res/drawable/connectfollow_icon.png diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java index eede5999ee..8e690edea3 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java @@ -73,7 +73,7 @@ public class SourceWizard { other.addChild(new Item("Dex Share Follower", DexCollectionType.SHFollow, R.drawable.nsfollow_icon)); // other.addChild(new Item("EverSense", DexCollectionType.NSEmulator, R.drawable.wikimedia_eversense_icon_pbroks13)); - other.addChild(new Item("Medtronic Connect", DexCollectionType.ConnectFollow, R.drawable.connectfollow_icon)); + other.addChild(new Item("Medtronic Connect", DexCollectionType.ConnectFollow, R.drawable.nsfollow_icon)); } } diff --git a/app/src/main/res/drawable/connectfollow_icon.png b/app/src/main/res/drawable/connectfollow_icon.png deleted file mode 100644 index 2b0bb97794f65fe8ae58750303bfd3648b6c356d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13189 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

$eU3IV9c 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 From aa81e968b1390006cf90f1396e82ed937aa19792 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sat, 13 Aug 2022 12:07:07 +0200 Subject: [PATCH 027/982] Rename to carelinkfollow fom connectfollow --- app/src/main/AndroidManifest.xml | 2 +- .../eveningoutpost/dexdrip/MegaStatus.java | 14 +++--- .../CollectionServiceStarter.java | 6 +-- .../dexdrip/UtilityModels/SourceWizard.java | 2 +- .../CareLinkDataProcessor.java} | 8 ++-- .../CareLinkFollowDownloader.java} | 48 ++++++++++--------- .../CareLinkFollowService.java} | 16 +++---- .../client/CareLinkClient.java} | 14 +++--- .../client/CountryUtils.java} | 4 +- .../client}/SimpleOkHttpCookieJar.java | 3 +- .../message}/ActiveInsulin.java | 2 +- .../message}/Alarm.java | 2 +- .../message}/ConnectData.java | 2 +- .../message}/ConnectDataResult.java | 2 +- .../message}/Marker.java | 2 +- .../message}/Result.java | 2 +- .../message}/SensorGlucose.java | 2 +- .../dexdrip/utils/DexCollectionHelper.java | 6 +-- .../dexdrip/utils/DexCollectionType.java | 14 +++--- .../dexdrip/utils/Preferences.java | 40 ++++++++-------- app/src/main/res/values/arrays.xml | 8 ++-- app/src/main/res/xml/pref_data_source.xml | 10 ++-- 22 files changed, 105 insertions(+), 104 deletions(-) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/DataProcessor.java => carelinkfollow/CareLinkDataProcessor.java} (95%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/ConnectFollowDownloader.java => carelinkfollow/CareLinkFollowDownloader.java} (80%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/ConnectFollowService.java => carelinkfollow/CareLinkFollowService.java} (94%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/ConnectClient.java => carelinkfollow/client/CareLinkClient.java} (96%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/CountryHelper.java => carelinkfollow/client/CountryUtils.java} (96%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow => carelinkfollow/client}/SimpleOkHttpCookieJar.java (95%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/messages => carelinkfollow/message}/ActiveInsulin.java (69%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/messages => carelinkfollow/message}/Alarm.java (76%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/messages => carelinkfollow/message}/ConnectData.java (96%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/messages => carelinkfollow/message}/ConnectDataResult.java (66%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/messages => carelinkfollow/message}/Marker.java (73%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/messages => carelinkfollow/message}/Result.java (67%) rename app/src/main/java/com/eveningoutpost/dexdrip/cgm/{connectfollow/messages => carelinkfollow/message}/SensorGlucose.java (96%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 723b3d87ae..3ff3df178b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -733,7 +733,7 @@ - + loginBlockedTill) { try { - if (getConnectClient() != null) { + if (getCareLinkClient() != null) { extendWakeLock(30_000); backgroundProcessConnectData(); } else { @@ -90,7 +92,7 @@ public boolean doEverything( ) { } if(carelinkCountry == null){ UserError.Log.e(TAG, "CareLink Country empty!"); - }else if(!CountryHelper.isSupportedCountry(carelinkCountry)){ + }else if(!CountryUtils.isSupportedCountry(carelinkCountry)){ UserError.Log.e(TAG, "CareLink Country not supported!"); } return false; @@ -104,7 +106,7 @@ private void msg(final String msg) { } public void invalidateSession() { - this.connectClient = null; + this.careLinkClient = null; } private void backgroundProcessConnectData() { @@ -116,15 +118,15 @@ private void backgroundProcessConnectData() { private void processConnectData() { ConnectDataResult connectDataResult = null; - ConnectClient connectClient = null; + CareLinkClient careLinkClient = null; loginBackoff = 0; //Get client - connectClient = getConnectClient(); + careLinkClient = getCareLinkClient(); //Get ConnectData from CareLink client - if (connectClient != null) { - connectDataResult = getConnectClient().getLast24Hours(); + if (careLinkClient != null) { + connectDataResult = getCareLinkClient().getLast24Hours(); //Got CareLink data if (connectDataResult.success) { @@ -137,10 +139,10 @@ private void processConnectData() { } if (D) UserError.Log.d(TAG, "Start process data"); //Process CareLink data (conversion and update xDrip data) - DataProcessor.processData(connectDataResult.connectData, true); + CareLinkDataProcessor.processData(connectDataResult.connectData, true); if (D) UserError.Log.d(TAG, "ProcessData finished!"); //Update Service status - ConnectFollowService.updateBgReceiveDelay(); + CareLinkFollowService.updateBgReceiveDelay(); if (D) UserError.Log.d(TAG, "UpdateBgReceiveDelay finished!"); msg(null); if (D) UserError.Log.d(TAG, "SetMessage finished!"); @@ -149,14 +151,14 @@ private void processConnectData() { } //Error during data download } else { - if (!getConnectClient().getLastLoginSuccess()) { + if (!getCareLinkClient().getLastLoginSuccess()) { UserError.Log.e(TAG, "CareLink login error!"); loginBackoff += Constants.MINUTE_IN_MS; loginBlockedTill = JoH.tsl() + loginBackoff; - } else if (!getConnectClient().getLastDataSuccess()) { + } else if (!getCareLinkClient().getLastDataSuccess()) { UserError.Log.e(TAG, "CareLink download error! Response code: " + connectDataResult.responseCode); - UserError.Log.e(TAG, "Error message: " + getConnectClient().getLastErrorMessage()); - UserError.Log.e(TAG, "Stack trace: " + getConnectClient().getLastStackTraceString()); + UserError.Log.e(TAG, "Error message: " + getCareLinkClient().getLastErrorMessage()); + UserError.Log.e(TAG, "Stack trace: " + getCareLinkClient().getLastStackTraceString()); } } @@ -169,23 +171,23 @@ private void processConnectData() { } - private ConnectClient getConnectClient() { - if (connectClient== null) { + private CareLinkClient getCareLinkClient() { + if (careLinkClient == null) { try { UserError.Log.d(TAG, "Creating ConnectClient"); - connectClient = new ConnectClient(carelinkUsername, carelinkPassword, carelinkCountry); + careLinkClient = new CareLinkClient(carelinkUsername, carelinkPassword, carelinkCountry); } catch (NullPointerException e) { UserError.Log.e(TAG, "Error creating ConnectClient"); } } - return connectClient; + return careLinkClient; } private static synchronized void extendWakeLock(final long ms) { if (wl == null) { if (D) UserError.Log.d(TAG,"Creating wakelock"); - wl = JoH.getWakeLock("ConnectFollow-download", (int) ms); + wl = JoH.getWakeLock("CLFollow-download", (int) ms); } else { JoH.releaseWakeLock(wl); // lets not get too messy wl.acquire(ms); diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java similarity index 94% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java index 27ae175b54..f1d524854a 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectFollowService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow; import android.content.Intent; import android.os.IBinder; @@ -34,9 +34,9 @@ * - provide status infos of follower service */ -public class ConnectFollowService extends ForegroundService { +public class CareLinkFollowService extends ForegroundService { - private static final String TAG = "ConnectFollow"; + private static final String TAG = "CLFollow"; private static final long SAMPLE_PERIOD = DEXCOM_PERIOD; protected static volatile String lastState = ""; @@ -49,7 +49,7 @@ public class ConnectFollowService extends ForegroundService { private static volatile long bgReceiveDelay; private static volatile long lastBgTime; - private static ConnectFollowDownloader downloader; + private static CareLinkFollowDownloader downloader; private static final long WAKE_UP_GRACE_SECOND = 20; @@ -88,7 +88,7 @@ public static void resetInstance() { } private static boolean shouldServiceRun() { - return DexCollectionType.getDexCollectionType() == DexCollectionType.ConnectFollow; + return DexCollectionType.getDexCollectionType() == DexCollectionType.CLFollow; } private static long getGraceMillis() { @@ -103,12 +103,12 @@ static void scheduleWakeUp() { wakeup_time = next; UserError.Log.d(TAG, "Anticipate next: " + JoH.dateTimeText(next) + " last BG timestamp: " + JoH.dateTimeText(last)); - JoH.wakeUpIntent(xdrip.getAppContext(), JoH.msTill(next), WakeLockTrampoline.getPendingIntent(ConnectFollowService.class, Constants.CONNECTFOLLOW_SERVICE_FAILOVER_ID)); + JoH.wakeUpIntent(xdrip.getAppContext(), JoH.msTill(next), WakeLockTrampoline.getPendingIntent(CareLinkFollowService.class, Constants.CONNECTFOLLOW_SERVICE_FAILOVER_ID)); } @Override public int onStartCommand(Intent intent, int flags, int startId) { - final PowerManager.WakeLock wl = JoH.getWakeLock("ConnectFollow-osc", 60000); + final PowerManager.WakeLock wl = JoH.getWakeLock("CLFollow-osc", 60000); try { UserError.Log.d(TAG, "WAKE UP WAKE UP WAKE UP"); @@ -132,7 +132,7 @@ public int onStartCommand(Intent intent, int flags, int startId) { if (lastBg == null || msSince(lastBg.timestamp) > SAMPLE_PERIOD) { // Get the data if (downloader == null) { - downloader = new ConnectFollowDownloader( + downloader = new CareLinkFollowDownloader( Pref.getString("connectfollow_user", ""), Pref.getString("connectfollow_pass", ""), Pref.getString("connectfollow_country", "").toLowerCase() diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java similarity index 96% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java index f7f168729e..d6a9011891 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/ConnectClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.client; import android.util.Log; @@ -8,16 +8,16 @@ import okhttp3.*; -import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectData; -import com.eveningoutpost.dexdrip.cgm.connectfollow.messages.ConnectDataResult; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectData; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectDataResult; import com.google.gson.*; /** - * Medtronic CareLink Connect Client - * - API client for communication with CareLink Connect + * Medtronic CareLink Follower Client + * - API client for communication with CareLink */ -public class ConnectClient { +public class CareLinkClient { protected String carelinkUsername; protected String carelinkPassword; protected String carelinkCountry; @@ -56,7 +56,7 @@ protected enum RequestType{ Json() } - public ConnectClient(String carelinkUsername, String carelinkPassword, String carelinkCountry) { + public CareLinkClient(String carelinkUsername, String carelinkPassword, String carelinkCountry) { this.carelinkUsername = carelinkUsername; this.carelinkPassword = carelinkPassword; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/CountryHelper.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java similarity index 96% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/CountryHelper.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java index 146d4cdbb2..db5d6a8bf0 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/CountryHelper.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java @@ -1,8 +1,8 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.client; import java.util.Arrays; -public class CountryHelper { +public class CountryUtils { public static final String[] supportedCountryCodes = { "dz", diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/SimpleOkHttpCookieJar.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java similarity index 95% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/SimpleOkHttpCookieJar.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java index 62996e7cbe..6f9c08d369 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/SimpleOkHttpCookieJar.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.client; import okhttp3.Cookie; import okhttp3.CookieJar; @@ -6,7 +6,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; public class SimpleOkHttpCookieJar implements CookieJar { diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveInsulin.java similarity index 69% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveInsulin.java index 1e26798abc..b11e901c2f 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ActiveInsulin.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveInsulin.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; /** * CareLink ActiveInsulin data diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java similarity index 76% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java index 5a10eae823..981e79f096 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Alarm.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; /** * CareLink Alarm data diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ConnectData.java similarity index 96% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ConnectData.java index 8f11d502b8..0c7d6b6c38 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectData.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ConnectData.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; import java.util.List; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ConnectDataResult.java similarity index 66% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ConnectDataResult.java index 327ab631c5..c55628885b 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/ConnectDataResult.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ConnectDataResult.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; /** * CareLink ConnectData result diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java similarity index 73% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java index c776d5dd10..6cdd370683 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Marker.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; /** * CareLink Marker data diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Result.java similarity index 67% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Result.java index bb5a2f7c9d..1bbbf98666 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/Result.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Result.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; /** * CareLink communication result base diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java similarity index 96% rename from app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java rename to app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java index 970584af17..163a61894b 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/connectfollow/messages/SensorGlucose.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java @@ -1,4 +1,4 @@ -package com.eveningoutpost.dexdrip.cgm.connectfollow.messages; +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; import java.text.SimpleDateFormat; import java.util.Date; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java index 36c5c5e950..3b7443f430 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java @@ -12,7 +12,7 @@ import com.eveningoutpost.dexdrip.UtilityModels.CollectionServiceStarter; import com.eveningoutpost.dexdrip.UtilityModels.Pref; import com.eveningoutpost.dexdrip.cgm.sharefollow.ShareFollowService; -import com.eveningoutpost.dexdrip.cgm.connectfollow.ConnectFollowService; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.CareLinkFollowService; import com.eveningoutpost.dexdrip.xdrip; import static com.eveningoutpost.dexdrip.ui.dialog.QuickSettingsDialogs.booleanSettingDialog; @@ -130,7 +130,7 @@ public void run() { bluetoothScanIfNeeded(); break; - case ConnectFollow: + case CLFollow: textSettingDialog(activity, "connectfollow_country", "CareLink Country", "Two letter country ISO code", @@ -153,7 +153,7 @@ public void run() { @Override public void run() { Home.staticRefreshBGCharts(); - ConnectFollowService.resetInstanceAndInvalidateSession(); + CareLinkFollowService.resetInstanceAndInvalidateSession(); CollectionServiceStarter.restartCollectionServiceBackground(); } }); diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java index a6d48cc043..36f8dc2bd5 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java @@ -12,7 +12,7 @@ import com.eveningoutpost.dexdrip.cgm.nsfollow.NightscoutFollowService; import com.eveningoutpost.dexdrip.cgm.sharefollow.ShareFollowService; import com.eveningoutpost.dexdrip.cgm.webfollow.WebFollowService; -import com.eveningoutpost.dexdrip.cgm.connectfollow.ConnectFollowService; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.CareLinkFollowService; import java.lang.reflect.Method; import java.util.Collections; @@ -43,7 +43,7 @@ public enum DexCollectionType { NSFollow("NSFollower"), SHFollow("SHFollower"), WebFollow("WebFollower"), - ConnectFollow("ConnectFollower"), + CLFollow("CLFollower"), Medtrum("Medtrum"), UiBased("UiBased"), Disabled("Disabled"), @@ -82,7 +82,7 @@ public enum DexCollectionType { Collections.addAll(usesXbridge, DexbridgeWixel, WifiDexBridgeWixel); Collections.addAll(usesFiltered, DexbridgeWixel, WifiDexBridgeWixel, DexcomG5, WifiWixel, Follower, Mock); // Bluetooth and Wifi+Bluetooth need dynamic mode Collections.addAll(usesLibre, LimiTTer, LibreAlarm, LimiTTerWifi, LibreWifi, LibreReceiver); - Collections.addAll(isPassive, NSEmulator, NSFollow, SHFollow, WebFollow, LibreReceiver, UiBased, ConnectFollow); + Collections.addAll(isPassive, NSEmulator, NSFollow, SHFollow, WebFollow, LibreReceiver, UiBased, CLFollow); Collections.addAll(usesBattery, BluetoothWixel, DexbridgeWixel, WifiBlueToothWixel, WifiDexBridgeWixel, Follower, LimiTTer, LibreAlarm, LimiTTerWifi, LibreWifi); // parakeet separate Collections.addAll(usesDexcomRaw, BluetoothWixel, DexbridgeWixel, WifiWixel, WifiBlueToothWixel, DexcomG5, WifiDexBridgeWixel, Mock); Collections.addAll(usesTransmitterBattery, WifiWixel, BluetoothWixel, DexbridgeWixel, WifiBlueToothWixel, WifiDexBridgeWixel); // G4 transmitter battery @@ -206,8 +206,8 @@ public static Class getCollectorServiceClass(final DexCollectionType type) { return WebFollowService.class; case UiBased: return UiBasedCollector.class; - case ConnectFollow: - return ConnectFollowService.class; + case CLFollow: + return CareLinkFollowService.class; default: return DexCollectionService.class; } @@ -286,8 +286,8 @@ public static String getBestCollectorHardwareName() { case UiBased: return "UI Based"; - case ConnectFollow: - return "Medtronic Connect"; + case CLFollow: + return "CareLink"; default: return dct.name(); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java index ed737a7f19..df5b9b503f 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java @@ -90,7 +90,7 @@ import com.eveningoutpost.dexdrip.cgm.nsfollow.NightscoutFollow; import com.eveningoutpost.dexdrip.cgm.sharefollow.ShareFollowService; import com.eveningoutpost.dexdrip.cgm.webfollow.Cpref; -import com.eveningoutpost.dexdrip.cgm.connectfollow.ConnectFollowService; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.CareLinkFollowService; import com.eveningoutpost.dexdrip.insulin.inpen.InPenEntry; import com.eveningoutpost.dexdrip.profileeditor.ProfileEditor; import com.eveningoutpost.dexdrip.tidepool.TidepoolUploader; @@ -1260,36 +1260,36 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { } //CareLink Follow preferences - final Preference connectFollowUser = findPreference("connectfollow_user"); - final Preference connectFollowPass = findPreference("connectfollow_pass"); - final Preference connectFollowCountry = findPreference("connectfollow_country"); - if (collectionType == DexCollectionType.ConnectFollow) { + final Preference carelinkFollowUser = findPreference("clfollow_user"); + final Preference carelinkFollowPass = findPreference("clfollow_pass"); + final Preference carelinkFollowCountry = findPreference("clfollow_country"); + if (collectionType == DexCollectionType.CLFollow) { //Add CL prefs - collectionCategory.addPreference(connectFollowUser); - collectionCategory.addPreference(connectFollowPass); - collectionCategory.addPreference(connectFollowCountry); + collectionCategory.addPreference(carelinkFollowUser); + collectionCategory.addPreference(carelinkFollowPass); + collectionCategory.addPreference(carelinkFollowCountry); //Create prefChange handler - final Preference.OnPreferenceChangeListener connectFollowListener = new Preference.OnPreferenceChangeListener() { + final Preference.OnPreferenceChangeListener carelinkFollowListener = new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - ConnectFollowService.resetInstanceAndInvalidateSession(); + CareLinkFollowService.resetInstanceAndInvalidateSession(); CollectionServiceStarter.restartCollectionServiceBackground(); return true; } }; //Register prefChange handler try { - connectFollowUser.setOnPreferenceChangeListener(connectFollowListener); - connectFollowPass.setOnPreferenceChangeListener(connectFollowListener); - connectFollowCountry.setOnPreferenceChangeListener(connectFollowListener); + carelinkFollowUser.setOnPreferenceChangeListener(carelinkFollowListener); + carelinkFollowPass.setOnPreferenceChangeListener(carelinkFollowListener); + carelinkFollowCountry.setOnPreferenceChangeListener(carelinkFollowListener); } catch (Exception e) { // } } else { try { - collectionCategory.removePreference(connectFollowUser); - collectionCategory.removePreference(connectFollowPass); - collectionCategory.removePreference(connectFollowCountry); + collectionCategory.removePreference(carelinkFollowUser); + collectionCategory.removePreference(carelinkFollowPass); + collectionCategory.removePreference(carelinkFollowCountry); } catch (Exception e) { // } @@ -1620,11 +1620,11 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { } } - if (collectionType != DexCollectionType.ConnectFollow) { + if (collectionType != DexCollectionType.CLFollow) { try { - collectionCategory.removePreference(connectFollowCountry); - collectionCategory.removePreference(connectFollowPass); - collectionCategory.removePreference(connectFollowUser); + collectionCategory.removePreference(carelinkFollowCountry); + collectionCategory.removePreference(carelinkFollowPass); + collectionCategory.removePreference(carelinkFollowUser); } catch (Exception e) { // } diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 3dde207985..df1f9e332f 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -20,7 +20,7 @@ Dex Share Follower Web Follower Companion (Testing) - Medtronic Connect + CareLink Follower Disable Collection @@ -44,7 +44,7 @@ SHFollower WebFollower UiBased - ConnectFollower + CLFollower Disabled @@ -234,7 +234,7 @@ AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE - + Albania Algeria Argentina @@ -351,7 +351,7 @@ Vietnam - + al dz ar diff --git a/app/src/main/res/xml/pref_data_source.xml b/app/src/main/res/xml/pref_data_source.xml index bc44654b5a..71d094e8fd 100644 --- a/app/src/main/res/xml/pref_data_source.xml +++ b/app/src/main/res/xml/pref_data_source.xml @@ -210,7 +210,7 @@ From fadbb93334b4ffc829f08a2bd168695556ade85d Mon Sep 17 00:00:00 2001 From: Sam LaChance Date: Thu, 25 Aug 2022 03:56:48 -0400 Subject: [PATCH 028/982] Moving the rest of the menu event handlers to individual "onclick" methods for consistency. https://github.com/NightscoutFoundation/xDrip/pull/2159#issuecomment-1141179360 --- .../java/com/eveningoutpost/dexdrip/Home.java | 235 +++++++++--------- app/src/main/res/menu/menu_home.xml | 61 +++-- 2 files changed, 147 insertions(+), 149 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/Home.java b/app/src/main/java/com/eveningoutpost/dexdrip/Home.java index fbbd88104f..6c6f242c8c 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/Home.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/Home.java @@ -3300,6 +3300,95 @@ public void shareMyConfig(MenuItem myitem) { startActivity(new Intent(getApplicationContext(), DisplayQRCode.class)); } + public void exportDatabase(MenuItem myitem) { + new AsyncTask() { + @Override + protected String doInBackground(Void... params) { + int permissionCheck = ContextCompat.checkSelfPermission(Home.this, + Manifest.permission.READ_EXTERNAL_STORAGE); + if (permissionCheck != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(Home.this, + new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, + 0); + return null; + } else { + return DatabaseUtil.saveSql(getBaseContext()); + } + + } + + @Override + protected void onPostExecute(String filename) { + super.onPostExecute(filename); + if (filename != null) { + + snackBar(R.string.share, getString(R.string.exported_to) + filename, makeSnackBarUriLauncher(Uri.fromFile(new File(filename)), getString(R.string.share_database)), Home.this); + startActivity(new Intent(xdrip.getAppContext(), SdcardImportExport.class).putExtra("backup", "now").setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); + /* SnackbarManager.show( + Snackbar.with(Home.this) + .type(SnackbarType.MULTI_LINE) + .duration(4000) + .text(getString(R.string.exported_to) + filename) // text to display + .actionLabel("Share") // action button label + .actionListener(new SnackbarUriListener(Uri.fromFile(new File(filename)))), + Home.this);*/ + } else { + Toast.makeText(Home.this, R.string.could_not_export_database, Toast.LENGTH_LONG).show(); + } + } + }.execute(); + } + + public void restoreDatabase(MenuItem myitem) { + startActivity(new Intent(this, ImportDatabaseActivity.class)); + } + + public void exportCSVasSiDiary(MenuItem myitem) { + long from = Pref.getLong("sidiary_last_exportdate", 0); + final GregorianCalendar date = new GregorianCalendar(); + final DatePickerFragment datePickerFragment = new DatePickerFragment(); + if (from > 0) datePickerFragment.setInitiallySelectedDate(from); + datePickerFragment.setAllowFuture(false); + datePickerFragment.setTitle(getString(R.string.sidiary_date_title)); + datePickerFragment.setDateCallback(new ProfileAdapter.DatePickerCallbacks() { + @Override + public void onDateSet(int year, int month, int day) { + date.set(year, month, day); + date.set(Calendar.HOUR_OF_DAY, 0); + date.set(Calendar.MINUTE, 0); + date.set(Calendar.SECOND, 0); + date.set(Calendar.MILLISECOND, 0); + new AsyncTask() { + @Override + protected String doInBackground(Void... params) { + int permissionCheck = ContextCompat.checkSelfPermission(Home.this, + Manifest.permission.READ_EXTERNAL_STORAGE); + if (permissionCheck != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(Home.this, + new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, + 0); + return null; + } else { + return DatabaseUtil.saveCSV(getBaseContext(), date.getTimeInMillis()); + } + } + + @Override + protected void onPostExecute(String filename) { + super.onPostExecute(filename); + if (filename != null) { + Pref.setLong("sidiary_last_exportdate", System.currentTimeMillis()); + snackBar(R.string.share, getString(R.string.exported_to) + filename, makeSnackBarUriLauncher(Uri.fromFile(new File(filename)), getString(R.string.share_database)), Home.this); + } else { + Toast.makeText(Home.this, gs(R.string.could_not_export_csv_), Toast.LENGTH_LONG).show(); + } + } + }.execute(); + } + }); + datePickerFragment.show(getFragmentManager(), "DatePicker"); + } + public void settingsSDcardExport(MenuItem myitem) { startActivity(new Intent(getApplicationContext(), SdcardImportExport.class)); } @@ -3336,6 +3425,21 @@ public void parakeetSetupMode(MenuItem myitem) { alertDialog.show(); } + public void resendGlucoseToWatch(MenuItem myitem) { + WatchUpdaterService.startServiceAndResendData(0); + if (Pref.getBooleanDefaultFalse("pref_amazfit_enable_key")) { + Amazfitservice.start("xDrip_synced_SGV_data"); + } + } + + public void openSettingsOnWatch(MenuItem myitem) { + startService(new Intent(this, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_OPEN_SETTINGS)); + } + + public void resetWearDb(MenuItem myitem) { + startService(new Intent(this, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_RESET_DB)); + } + public void undoButtonClick(View myitem) { if (UndoRedo.undoNextItem()) staticRefreshBGCharts(); } @@ -3436,6 +3540,14 @@ public void checkForUpdate(MenuItem myitem) { } } + public void toggleSpeakReadings(MenuItem myitem) { + Pref.toggleBoolean("bg_to_speech"); + invalidateOptionsMenu(); + if (Pref.getBooleanDefaultFalse("bg_to_speech")) { + BgToSpeech.testSpeech(); + } + } + public void sendFeedback(MenuItem myitem) { startActivity(new Intent(getApplicationContext(), SendFeedBack.class)); } @@ -3468,133 +3580,12 @@ public boolean onKeyDown(int keyCode, KeyEvent event) { @Override public boolean onOptionsItemSelected(MenuItem item) { - - switch (item.getItemId()) { - case R.id.action_resend_last_bg: - WatchUpdaterService.startServiceAndResendData(0); - if (Pref.getBooleanDefaultFalse("pref_amazfit_enable_key")) { - Amazfitservice.start("xDrip_synced_SGV_data"); - } - break; - case R.id.action_open_watch_settings: - startService(new Intent(this, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_OPEN_SETTINGS)); - break; - case R.id.action_sync_watch_db: - startService(new Intent(this, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_RESET_DB)); - break; - } - - if (item.getItemId() == R.id.action_export_database) { - new AsyncTask() { - @Override - protected String doInBackground(Void... params) { - int permissionCheck = ContextCompat.checkSelfPermission(Home.this, - Manifest.permission.READ_EXTERNAL_STORAGE); - if (permissionCheck != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(Home.this, - new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, - 0); - return null; - } else { - return DatabaseUtil.saveSql(getBaseContext()); - } - - } - - @Override - protected void onPostExecute(String filename) { - super.onPostExecute(filename); - if (filename != null) { - - snackBar(R.string.share, getString(R.string.exported_to) + filename, makeSnackBarUriLauncher(Uri.fromFile(new File(filename)), getString(R.string.share_database)), Home.this); - startActivity(new Intent(xdrip.getAppContext(), SdcardImportExport.class).putExtra("backup", "now").setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); - /* SnackbarManager.show( - Snackbar.with(Home.this) - .type(SnackbarType.MULTI_LINE) - .duration(4000) - .text(getString(R.string.exported_to) + filename) // text to display - .actionLabel("Share") // action button label - .actionListener(new SnackbarUriListener(Uri.fromFile(new File(filename)))), - Home.this);*/ - } else { - Toast.makeText(Home.this, R.string.could_not_export_database, Toast.LENGTH_LONG).show(); - } - } - }.execute(); - - return true; - } - - if (item.getItemId() == R.id.action_import_db) { - startActivity(new Intent(this, ImportDatabaseActivity.class)); - return true; - } - - /* // jamorham additions + /*// jamorham additions if (item.getItemId() == R.id.synctreatments) { startActivity(new Intent(this, GoogleDriveInterface.class)); return true; }*/ - /// - - if (item.getItemId() == R.id.action_export_csv_sidiary) { - - long from = Pref.getLong("sidiary_last_exportdate", 0); - final GregorianCalendar date = new GregorianCalendar(); - final DatePickerFragment datePickerFragment = new DatePickerFragment(); - if (from > 0) datePickerFragment.setInitiallySelectedDate(from); - datePickerFragment.setAllowFuture(false); - datePickerFragment.setTitle(getString(R.string.sidiary_date_title)); - datePickerFragment.setDateCallback(new ProfileAdapter.DatePickerCallbacks() { - @Override - public void onDateSet(int year, int month, int day) { - date.set(year, month, day); - date.set(Calendar.HOUR_OF_DAY, 0); - date.set(Calendar.MINUTE, 0); - date.set(Calendar.SECOND, 0); - date.set(Calendar.MILLISECOND, 0); - new AsyncTask() { - @Override - protected String doInBackground(Void... params) { - int permissionCheck = ContextCompat.checkSelfPermission(Home.this, - Manifest.permission.READ_EXTERNAL_STORAGE); - if (permissionCheck != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(Home.this, - new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, - 0); - return null; - } else { - return DatabaseUtil.saveCSV(getBaseContext(), date.getTimeInMillis()); - } - } - - @Override - protected void onPostExecute(String filename) { - super.onPostExecute(filename); - if (filename != null) { - Pref.setLong("sidiary_last_exportdate", System.currentTimeMillis()); - snackBar(R.string.share, getString(R.string.exported_to) + filename, makeSnackBarUriLauncher(Uri.fromFile(new File(filename)), getString(R.string.share_database)), Home.this); - } else { - Toast.makeText(Home.this, gs(R.string.could_not_export_csv_), Toast.LENGTH_LONG).show(); - } - } - }.execute(); - } - }); - datePickerFragment.show(getFragmentManager(), "DatePicker"); - return true; - } - - if (item.getItemId() == R.id.action_toggle_speakreadings) { - Pref.toggleBoolean("bg_to_speech"); - invalidateOptionsMenu(); - if (Pref.getBooleanDefaultFalse("bg_to_speech")) { - BgToSpeech.testSpeech(); - } - return true; - } - return super.onOptionsItemSelected(item); } diff --git a/app/src/main/res/menu/menu_home.xml b/app/src/main/res/menu/menu_home.xml index 47ac497a70..a4f5fc4e70 100644 --- a/app/src/main/res/menu/menu_home.xml +++ b/app/src/main/res/menu/menu_home.xml @@ -29,33 +29,37 @@ android:orderInCategory="1">

- - - - - - - - + + + + + + + + + - \ No newline at end of file From d92215db57a249b8e1ec658e9a876cd8d70f2291 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 4 Sep 2022 00:25:53 +0200 Subject: [PATCH 029/982] Correction of carelink renames --- .../dexdrip/UtilityModels/Constants.java | 2 +- .../dexdrip/UtilityModels/SourceWizard.java | 2 +- .../carelinkfollow/CareLinkFollowDownloader.java | 10 +++++----- .../carelinkfollow/CareLinkFollowService.java | 16 ++++++++-------- .../dexdrip/utils/DexCollectionHelper.java | 6 +++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/Constants.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/Constants.java index 9164c29858..e150ae2e7f 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/Constants.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/Constants.java @@ -52,7 +52,7 @@ public class Constants { public static final int MIBAND_SERVICE_RETRY_ID = 1026; public static final int MIBAND_SERVICE_BG_RETRY_ID = 1027; public static final int WEBFOLLOW_SERVICE_FAILOVER_ID = 1028; - public static final int CONNECTFOLLOW_SERVICE_FAILOVER_ID = 1030; + public static final int CARELINK_SERVICE_FAILOVER_ID = 1030; static final int NIGHTSCOUT_ERROR_NOTIFICATION_ID = 2001; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java index 764f4ef2f4..1c90565ae7 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java @@ -73,7 +73,7 @@ public class SourceWizard { other.addChild(new Item("Dex Share Follower", DexCollectionType.SHFollow, R.drawable.nsfollow_icon)); // other.addChild(new Item("EverSense", DexCollectionType.NSEmulator, R.drawable.wikimedia_eversense_icon_pbroks13)); - other.addChild(new Item("Medtronic Connect", DexCollectionType.CLFollow, R.drawable.nsfollow_icon)); + other.addChild(new Item("CareLink Follower", DexCollectionType.CLFollow, R.drawable.nsfollow_icon)); } } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java index eb063c0270..3ef2f17a28 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java @@ -20,7 +20,7 @@ */ public class CareLinkFollowDownloader { - private static final String TAG = "ConnectFollowDL"; + private static final String TAG = "CareLinkFollowDL"; private static final boolean D = false; private String carelinkUsername; @@ -81,7 +81,7 @@ public boolean doEverything( ) { return false; } } else { - final String invalid = "Connect login data isn't valid!"; + final String invalid = "CareLink login data isn't valid!"; msg(invalid); UserError.Log.e(TAG, invalid); if(emptyString(carelinkUsername)){ @@ -110,7 +110,7 @@ public void invalidateSession() { } private void backgroundProcessConnectData() { - Inevitable.task("proc-connect-follow", 100, this::processConnectData); + Inevitable.task("proc-carelink-follow", 100, this::processConnectData); releaseWakeLock(); // handover to inevitable } @@ -174,10 +174,10 @@ private void processConnectData() { private CareLinkClient getCareLinkClient() { if (careLinkClient == null) { try { - UserError.Log.d(TAG, "Creating ConnectClient"); + UserError.Log.d(TAG, "Creating CareLinkClient"); careLinkClient = new CareLinkClient(carelinkUsername, carelinkPassword, carelinkCountry); } catch (NullPointerException e) { - UserError.Log.e(TAG, "Error creating ConnectClient"); + UserError.Log.e(TAG, "Error creating CareLinkClient"); } } return careLinkClient; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java index f1d524854a..34847456cc 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java @@ -36,7 +36,7 @@ public class CareLinkFollowService extends ForegroundService { - private static final String TAG = "CLFollow"; + private static final String TAG = "CareLinkFollow"; private static final long SAMPLE_PERIOD = DEXCOM_PERIOD; protected static volatile String lastState = ""; @@ -103,12 +103,12 @@ static void scheduleWakeUp() { wakeup_time = next; UserError.Log.d(TAG, "Anticipate next: " + JoH.dateTimeText(next) + " last BG timestamp: " + JoH.dateTimeText(last)); - JoH.wakeUpIntent(xdrip.getAppContext(), JoH.msTill(next), WakeLockTrampoline.getPendingIntent(CareLinkFollowService.class, Constants.CONNECTFOLLOW_SERVICE_FAILOVER_ID)); + JoH.wakeUpIntent(xdrip.getAppContext(), JoH.msTill(next), WakeLockTrampoline.getPendingIntent(CareLinkFollowService.class, Constants.CARELINK_SERVICE_FAILOVER_ID)); } @Override public int onStartCommand(Intent intent, int flags, int startId) { - final PowerManager.WakeLock wl = JoH.getWakeLock("CLFollow-osc", 60000); + final PowerManager.WakeLock wl = JoH.getWakeLock("CareLinkFollow-osc", 60000); try { UserError.Log.d(TAG, "WAKE UP WAKE UP WAKE UP"); @@ -133,14 +133,14 @@ public int onStartCommand(Intent intent, int flags, int startId) { // Get the data if (downloader == null) { downloader = new CareLinkFollowDownloader( - Pref.getString("connectfollow_user", ""), - Pref.getString("connectfollow_pass", ""), - Pref.getString("connectfollow_country", "").toLowerCase() + Pref.getString("clfollow_user", ""), + Pref.getString("clfollow_pass", ""), + Pref.getString("clfollow_country", "").toLowerCase() ); } - if (JoH.ratelimit("last-connect-follow-poll", 5)) { - Inevitable.task("Connect-Follow-Work", 200, () -> { + if (JoH.ratelimit("last-carelink-follow-poll", 5)) { + Inevitable.task("CareLink-Follow-Work", 200, () -> { try { downloader.doEverything( ); } catch (NullPointerException e) { diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java index 3b7443f430..ff99d0aaa7 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionHelper.java @@ -132,21 +132,21 @@ public void run() { case CLFollow: textSettingDialog(activity, - "connectfollow_country", "CareLink Country", + "clfollow_country", "CareLink Country", "Two letter country ISO code", InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, new Runnable() { @Override public void run() { textSettingDialog(activity, - "connectfollow_user", "CareLink Username", + "clfollow_user", "CareLink Username", "Enter CareLink Username", InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, new Runnable() { @Override public void run() { textSettingDialog(activity, - "connectfollow_pass", "CareLink Password", + "clfollow_pass", "CareLink Password", "Enter CareLink Password", InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, new Runnable() { From 20a8c3fa5cd66ad301399236fcd8cfce8be2d884 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 4 Sep 2022 00:26:35 +0200 Subject: [PATCH 030/982] Add additional CareLink API data --- .../carelinkfollow/message/ActiveInsulin.java | 9 +- .../message/ActiveNotification.java | 18 + .../cgm/carelinkfollow/message/Alarm.java | 13 +- .../cgm/carelinkfollow/message/Basal.java | 8 + .../message/ClearedNotification.java | 18 + .../cgm/carelinkfollow/message/Countries.java | 9 + .../cgm/carelinkfollow/message/Country.java | 10 + .../message/CountrySettings.java | 40 ++ .../carelinkfollow/message/DataUpload.java | 10 + .../cgm/carelinkfollow/message/Language.java | 8 + .../cgm/carelinkfollow/message/Languages.java | 9 + .../cgm/carelinkfollow/message/Limit.java | 11 + .../cgm/carelinkfollow/message/Marker.java | 36 +- .../cgm/carelinkfollow/message/MfaRules.java | 12 + .../carelinkfollow/message/MonitorData.java | 11 + .../message/NotificationHistory.java | 10 + .../carelinkfollow/message/NumberFormat.java | 8 + .../carelinkfollow/message/PostalInfo.java | 8 + .../cgm/carelinkfollow/message/Profile.java | 31 ++ .../message/PumpBannerState.java | 22 ++ .../carelinkfollow/message/RecentData.java | 125 +++++++ .../carelinkfollow/message/RecentUploads.java | 9 + .../message/ReportDataProvider.java | 10 + .../message/ReportDateFormat.java | 13 + .../ReportSnapshotTimelinesForCalendar.java | 9 + .../message/ReportTimelinesRange.java | 8 + .../carelinkfollow/message/SensorGlucose.java | 46 +-- .../message/SupportedReport.java | 9 + .../cgm/carelinkfollow/message/TextMap.java | 345 ++++++++++++++++++ .../message/TherapyAlgorithmState.java | 11 + .../cgm/carelinkfollow/message/User.java | 39 ++ 31 files changed, 880 insertions(+), 45 deletions(-) create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveNotification.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Basal.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ClearedNotification.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Countries.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Country.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/CountrySettings.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/DataUpload.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Language.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Languages.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Limit.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/MfaRules.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/MonitorData.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/NotificationHistory.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/NumberFormat.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/PostalInfo.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Profile.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/PumpBannerState.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentData.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentUploads.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportDataProvider.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportDateFormat.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportSnapshotTimelinesForCalendar.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportTimelinesRange.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SupportedReport.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TextMap.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TherapyAlgorithmState.java create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/User.java diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveInsulin.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveInsulin.java index b11e901c2f..731998a1b3 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveInsulin.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveInsulin.java @@ -1,12 +1,17 @@ package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; +import java.util.Date; + /** * CareLink ActiveInsulin data */ public class ActiveInsulin { - public int code; - public String datetime; + public Integer code; + public Date datetime; public long version; + public Double amount; + public String precision; + public String kind; } \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveNotification.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveNotification.java new file mode 100644 index 0000000000..5f9810fec9 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ActiveNotification.java @@ -0,0 +1,18 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.Date; + +public class ActiveNotification { + + public String GUID; + public Date dateTime; + public String type; + public int faultId; + public int instanceId; + public String messageId; + public String pumpDeliverySuspendState; + public String pnpId; + public int relativeOffset; + public Boolean alertSilenced; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java index 981e79f096..abc2f98324 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java @@ -1,15 +1,26 @@ package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; +import java.util.Date; + /** * CareLink Alarm data */ public class Alarm { + public String getMessageAlarmCode(){ + return null; + } + public int code; - public String datetime; + public Date datetime; public String type; public boolean flash; public String kind; public long version; + public Integer instanceId; + public String messageId; + public Integer sg; + public Boolean pumpDeliverySuspendState; + public String referenceGUID; } \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Basal.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Basal.java new file mode 100644 index 0000000000..3fb91c9794 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Basal.java @@ -0,0 +1,8 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class Basal { + + public String activeBasalPattern; + public Double basalRate; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ClearedNotification.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ClearedNotification.java new file mode 100644 index 0000000000..53228a83ad --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ClearedNotification.java @@ -0,0 +1,18 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.Date; + +public class ClearedNotification { + + public String referenceGUID; + public Date dateTime; + public String type; + public int faultId; + public int instanceId; + public String messageId; + public String pumpDeliverySuspendState; + public String pnpId; + public int relativeOffset; + public Date triggeredDateTime; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Countries.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Countries.java new file mode 100644 index 0000000000..6818bbae4d --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Countries.java @@ -0,0 +1,9 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.List; + +public class Countries { + + public List countries; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Country.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Country.java new file mode 100644 index 0000000000..74ff44126e --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Country.java @@ -0,0 +1,10 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class Country { + + public String countryCode; + public String countryName; + public String dialCode; + public String defaultCountryName; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/CountrySettings.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/CountrySettings.java new file mode 100644 index 0000000000..91ff0cbce6 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/CountrySettings.java @@ -0,0 +1,40 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.List; + +public class CountrySettings { + + public String name; + public List languages; + public String defaultLanguage; + public String defaultCountryName; + public String defaultDevice; + public String dialCode; + public boolean cpMobileAppAvailable; + public boolean uploaderAllowed; + public String techSupport; + public String techDays; + public String firstDayOfWeek; + public String techHours; + public Integer legalAge; + public String shortDateFormat; + public String shortTimeFormat; + public String mediaHost; + public String blePereodicDataEndpoint; + public String region; + public String carbDefaultUnit; + public String bgUnits; + public String timeFormat; + public String timeUnitsDefault; + public String recordSeparator; + public String glucoseUnitsDefault; + public String carbohydrateUnitsDefault; + public Long carbExchangeRatioDefault; + public ReportDateFormat reportDateFormat; + public MfaRules mfa; + public List supportedReports; + public boolean smsSendingAllowed; + public PostalInfo postal; + public NumberFormat numberFormat; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/DataUpload.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/DataUpload.java new file mode 100644 index 0000000000..4787681c57 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/DataUpload.java @@ -0,0 +1,10 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class DataUpload { + + public long date; + public boolean mobileUploaded; + public String device; + public String serialNumber; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Language.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Language.java new file mode 100644 index 0000000000..6134b34129 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Language.java @@ -0,0 +1,8 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class Language { + + public String name; + public String code; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Languages.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Languages.java new file mode 100644 index 0000000000..01660d6e4a --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Languages.java @@ -0,0 +1,9 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.List; + +public class Languages { + + public List languages; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Limit.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Limit.java new file mode 100644 index 0000000000..f4410c50c2 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Limit.java @@ -0,0 +1,11 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class Limit { + + public int index; + public int highLimit; + public int lowLimit; + public String kind; + public int version; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java index 6cdd370683..0c979b9002 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java @@ -1,14 +1,46 @@ package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; +import java.util.Date; + /** * CareLink Marker data */ public class Marker { + public static final String MARKER_TYPE_MEAL = "MEAL"; + public static final String MARKER_TYPE_CALIBRATION = "CALIBRATION"; + public static final String MARKER_TYPE_BG_READING = "BG_READING"; + public static final String MARKER_TYPE_BG = "BG"; + public static final String MARKER_TYPE_INSULIN = "INSULIN"; + public static final String MARKER_TYPE_AUTO_BASAL = "AUTO_BASAL_DELIVERY"; + public static final String MARKER_TYPE_AUTO_MODE_STATUS = "AUTO_MODE_STATUS"; + + public boolean isBloodGlucose(){ + if(type == null) + return false; + else + return (type.equals(MARKER_TYPE_BG_READING) || type.equals(MARKER_TYPE_CALIBRATION) || type.equals(MARKER_TYPE_BG)); + } + public String type; public int index; - public long value; + public Double value; public String kind; - public long version; + public int version; + public Date dateTime; + public Integer relativeOffset; + public Boolean calibrationSuccess; + public Double amount; + public Float programmedExtendedAmount; + public String activationType; + public Float deliveredExtendedAmount; + public Float programmedFastAmount; + public Integer programmedDuration; + public Float deliveredFastAmount; + public Integer effectiveDuration; + public Boolean completed; + public String bolusType; + public Boolean autoModeOn; + public Float bolusAmount; } \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/MfaRules.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/MfaRules.java new file mode 100644 index 0000000000..bc3cc442c7 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/MfaRules.java @@ -0,0 +1,12 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class MfaRules { + + public String status; + public String fromDate; + public int gracePeriod; + public int codeValidityDuration; + public int maxAttempts; + public int rememberPeriod; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/MonitorData.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/MonitorData.java new file mode 100644 index 0000000000..6f4d73f3f4 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/MonitorData.java @@ -0,0 +1,11 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class MonitorData { + + public String deviceFamily; + + public boolean isBle() { + return deviceFamily.contains("BLE"); + } + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/NotificationHistory.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/NotificationHistory.java new file mode 100644 index 0000000000..dc2dd34cea --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/NotificationHistory.java @@ -0,0 +1,10 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.List; + +public class NotificationHistory { + + public List activeNotifications; + public List clearedNotifications; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/NumberFormat.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/NumberFormat.java new file mode 100644 index 0000000000..2f19f9847a --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/NumberFormat.java @@ -0,0 +1,8 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class NumberFormat { + + public String decimalSeparator; + public String groupsSeparator; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/PostalInfo.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/PostalInfo.java new file mode 100644 index 0000000000..f9ab20468b --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/PostalInfo.java @@ -0,0 +1,8 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class PostalInfo { + + public String[] postalFormat; + public String regExpStr; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Profile.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Profile.java new file mode 100644 index 0000000000..83796575dd --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Profile.java @@ -0,0 +1,31 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class Profile { + + public String username; + public String firstName; + public String middleName; + public String lastName; + public boolean guardianParent; + public String parentFirstName; + public String parentMiddleName; + public String parentLastName; + public String address; + public String city; + public String stateProvince; + public String postalCode; + public String country; + public String dateOfBirth; + public String phone; + public String phoneLegacy; + public String email; + public String gender; + public String diabetesType; + public String therapyType; + public String ageRange; + public String insulinType; + public String patientNickname; + public String textNotification; + public String a1C; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/PumpBannerState.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/PumpBannerState.java new file mode 100644 index 0000000000..117cc5b446 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/PumpBannerState.java @@ -0,0 +1,22 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class PumpBannerState { + + public static final String STATE_DUAL_BOLUS = "DUAL_BOLUS"; + public static final String STATE_SQUARE_BOLUS = "SQUARE_BOLUS"; + public static final String STATE_LOAD_RESERVOIR = "LOAD_RESERVOIR"; + public static final String STATE_SUSPENDED_ON_LOW = "SUSPENDED_ON_LOW"; + public static final String STATE_SUSPENDED_BEFORE_LOW = "SUSPENDED_BEFORE_LOW"; + public static final String STATE_DELIVERY_SUSPEND = "DELIVERY_SUSPEND"; + public static final String STATE_BG_REQUIRED = "BG_REQUIRED"; + public static final String STATE_PROCESSING_BG = "PROCESSING_BG"; + public static final String STATE_WAIT_TO_ENTER_BG = "WAIT_TO_ENTER_BG"; + public static final String STATE_TEMP_TARGET = "TEMP_TARGET"; + public static final String STATE_TEMP_BASAL = "TEMP_BASAL"; + public static final String STATE_NO_DELIVERY = "NO_DELIVERY"; + public static final String STATE_CALIBRATION_REQUIRED = "CALIBRATION_REQUIRED"; + + public String type; + public int timeRemaining; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentData.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentData.java new file mode 100644 index 0000000000..4ae4afe658 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentData.java @@ -0,0 +1,125 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.Date; +import java.util.List; + +public class RecentData { + + public static final String DEVICE_FAMILY_GUARDIAN = "GUARDIAN"; + public static final String DEVICE_FAMILY_NGP = "NGP"; + + //sensorState + public static final String SENSOR_STATE_CALIBRATION_REQUIRED = "CALIBRATION_REQUIRED"; + public static final String SENSOR_STATE_NO_DATA_FROM_PUMP = "NO_DATA_FROM_PUMP"; + public static final String SENSOR_STATE_WAIT_TO_CALIBRATE = "WAIT_TO_CALIBRATE"; + public static final String SENSOR_STATE_DO_NOT_CALIBRATE = "DO_NOT_CALIBRATE"; + public static final String SENSOR_STATE_CALIBRATING = "CALIBRATING"; + public static final String SENSOR_STATE_NO_ERROR_MESSAGE = "NO_ERROR_MESSAGE"; + public static final String SENSOR_STATE_WARM_UP = "WARM_UP"; + public static final String SENSOR_STATE_CHANGE_SENSOR = "CHANGE_SENSOR"; + public static final String SENSOR_STATE_NORMAL = "NORMAL"; + public static final String SENSOR_STATE_UNKNOWN = "UNKNOWN"; + + //systemStatusMessage + public static final String SYSTEM_STATUS_BLUETOOTH_OFF = "BLUETOOTH_OFF"; + public static final String SYSTEM_STATUS_UPDATING = "UPDATING"; + public static final String SYSTEM_STATUS_RECONNECTING_TO_PUMP = "RECONNECTING_TO_PUMP"; + public static final String SYSTEM_STATUS_PUMP_PAIRING_LOST = "PUMP_PAIRING_LOST"; + public static final String SYSTEM_STATUS_LOST_PUMP_SIGNAL = "LOST_PUMP_SIGNAL"; + public static final String SYSTEM_STATUS_PUMP_NOT_PAIRED = "PUMP_NOT_PAIRED"; + public static final String SYSTEM_STATUS_SENSOR_OFF = "SENSOR_OFF"; + public static final String SYSTEM_STATUS_NO_ERROR_MESSAGE = "NO_ERROR_MESSAGE"; + public static final String SYSTEM_STATUS_CALIBRATION_REQUIRED = "CALIBRATION_REQUIRED"; + + //autoModeShieldState + public static final String AUTOMODE_SHIELD_AUTO_BASAL = "AUTO_BASAL"; + public static final String AUTOMODE_SHIELD_FEATURE_OFF= "FEATURE_OFF"; + + //autoModeReadinessState + public static final String AUTOMODE_READINESS_NO_ACTION_REQUIRED = "NO_ACTION_REQUIRED"; + + //plgmLgsState + public static final String LGS_STATE_FEATURE_OFF = "FEATURE_OFF"; + public static final String LGS_STATE_MONITORING = "MONITORING"; + + + public String getDeviceFamily(){ + return medicalDeviceFamily; + } + public boolean isGM(){ + return getDeviceFamily().equals(DEVICE_FAMILY_GUARDIAN); + } + public boolean isNGP(){ + return getDeviceFamily().equals(DEVICE_FAMILY_NGP); + } + + public long lastSensorTS; + public String medicalDeviceTimeAsString; + public Date medicalDeviceTimeAsDate; + public String lastSensorTSAsString; + public Date lastSensorTSAsDate; + public String kind; + public int version; + public String pumpModelNumber; + public long currentServerTime; + public long lastConduitTime; + public long lastConduitUpdateServerTime; + public long lastMedicalDeviceDataUpdateServerTime; + public String firstName; + public String lastName; + public String conduitSerialNumber; + public int conduitBatteryLevel; + public String conduitBatteryStatus; + public Boolean conduitInRange; + public Boolean conduitMedicalDeviceInRange; + public Boolean conduitSensorInRange; + public String medicalDeviceFamily; + public String sensorState; + public String medicalDeviceSerialNumber; + public long medicalDeviceTime; + public String sMedicalDeviceTime; + public Date dMedicalDeviceTime; + public int reservoirLevelPercent; + public int reservoirAmount; + public float reservoirRemainingUnits; + public int medicalDeviceBatteryLevelPercent; + public int sensorDurationHours; + public int timeToNextCalibHours; + public String calibStatus; + public String bgUnits; + public String timeFormat; + public long lastSensorTime; + public String sLastSensorTime; + public Date dLastSensorTime; + public boolean medicalDeviceSuspended; + public String lastSGTrend; + public SensorGlucose lastSG; + public Alarm lastAlarm; + public ActiveInsulin activeInsulin; + public List sgs; + public List limits; + public List markers; + public NotificationHistory notificationHistory; + public TherapyAlgorithmState therapyAlgorithmState; + public List pumpBannerState; + public Basal basal; + public String systemStatusMessage; + public int averageSG; + public int belowHypoLimit; + public int aboveHyperLimit; + public int timeInRange; + public Boolean pumpCommunicationState; + public Boolean gstCommunicationState; + public int gstBatteryLevel; + public Date lastConduitDateTime; + public float maxAutoBasalRate; + public float maxBolusAmount; + public int sensorDurationMinutes; + public int timeToNextCalibrationMinutes; + public String clientTimeZoneName; + public int sgBelowLimit; + public float averageSGFloat; + public Boolean calFreeSensor; + public Boolean finalCalibration; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentUploads.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentUploads.java new file mode 100644 index 0000000000..6c79d8ae6c --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentUploads.java @@ -0,0 +1,9 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.List; + +public class RecentUploads { + + public List recentUploads; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportDataProvider.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportDataProvider.java new file mode 100644 index 0000000000..f97fa6e689 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportDataProvider.java @@ -0,0 +1,10 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.List; + +public class ReportDataProvider { + + public String category; + public List segments; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportDateFormat.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportDateFormat.java new file mode 100644 index 0000000000..fdd0760fde --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportDateFormat.java @@ -0,0 +1,13 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class ReportDateFormat { + + public String longTimePattern12; + public String longTimePattern24; + public String shortTimePattern12; + public String shortTimePattern24; + public String shortDatePattern; + public String dateSeparator; + public String timeSeparator; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportSnapshotTimelinesForCalendar.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportSnapshotTimelinesForCalendar.java new file mode 100644 index 0000000000..f14a6b4f17 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportSnapshotTimelinesForCalendar.java @@ -0,0 +1,9 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.List; + +public class ReportSnapshotTimelinesForCalendar { + + public List dataProvider; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportTimelinesRange.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportTimelinesRange.java new file mode 100644 index 0000000000..4914e4e823 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/ReportTimelinesRange.java @@ -0,0 +1,8 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class ReportTimelinesRange { + + public String start; + public String end; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java index 163a61894b..791059e815 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java @@ -1,62 +1,28 @@ package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; -import java.text.SimpleDateFormat; import java.util.Date; -import java.util.regex.Matcher; -import java.util.regex.Pattern; /** * CareLink SensorGlucose message with helper methods for processing */ public class SensorGlucose { - public long sg; + public Integer sg; public String datetime; + public Date datetimeAsDate; public boolean timeChange; public String kind; - public long version; + public int version; + public String sensorState; + public int relativeOffset; public long timestamp = -1; public Date date = null; - public Long getTimestamp() { - getDate(); - return timestamp; - } - - public Date getDate(){ - //Set date - if (timestamp == -1) { - try { - Matcher matcher = null; - //timezone offset hours one digit to two digits - matcher = Pattern.compile("(.*)([\\+|-])(\\d:\\d\\d)").matcher(this.datetime); - if(matcher.matches()) { - this.datetime = matcher.group(1) + matcher.group(2) + "0" + matcher.group(3); - } - //remove millis - matcher = Pattern.compile("(.*:\\d{2})(\\.\\d*)(.*)").matcher(this.datetime); - if(matcher.matches()) { - this.datetime = matcher.group(1) + matcher.group(3); - } - date = (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX")).parse(this.datetime); - } catch (Exception e1) { - try { - date = (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX")).parse(this.datetime); - } catch (Exception e2) { - timestamp = 0L; - } - } - } - //Set timezone - if(date != null) timestamp = date.getTime(); - return date; - } - public String toS() { String dt; if (datetime == null) { dt = ""; } else{ dt = datetime; } - return dt + " " + String.valueOf(sg); + return dt + " " + sg; } } \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SupportedReport.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SupportedReport.java new file mode 100644 index 0000000000..ce9cde5f9d --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SupportedReport.java @@ -0,0 +1,9 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class SupportedReport { + + public String report; + public String[] onlyFor; + public String[] notFor; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TextMap.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TextMap.java new file mode 100644 index 0000000000..3b39bc1dc3 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TextMap.java @@ -0,0 +1,345 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.HashMap; + +public class TextMap { + + + public static final String ERROR_TEXT_PREFIX_GUARDIAN = "GM_"; + public static final String ERROR_TEXT_PREFIX_NGP = "N"; + + private static HashMap errorTextMap; + private static HashMap errorCodeMap; + + static { + + errorTextMap = new HashMap<>(); + errorTextMap.put("", ""); + errorTextMap.put("3", "Battery out limit"); + errorTextMap.put("4", "Delivery stopped. Check BG"); + errorTextMap.put("5", "Pump battery depleted. Insulin delivery stopped"); + errorTextMap.put("6", "Auto Off. Insulin delivery stopped"); + errorTextMap.put("16", "Pump reset. Insulin delivery stopped"); + errorTextMap.put("43", "Pump motor error. Insulin delivery stopped"); + errorTextMap.put("50", "Bolus stopped"); + errorTextMap.put("51", "Delivery limit exceeded. Check BG"); + errorTextMap.put("55", "Pump battery failed. Replace battery"); + errorTextMap.put("59", "Button error"); + errorTextMap.put("61", "Check settings. Insulin delivery stopped"); + errorTextMap.put("62", "Empty reservoir"); + errorTextMap.put("66", "No reservoir"); + errorTextMap.put("74", "Finish loading"); + errorTextMap.put("81", "Replace pump battery now"); + errorTextMap.put("82", "Low Reservoir"); + errorTextMap.put("83", "Check BG"); + errorTextMap.put("84", "Alarm clock"); + errorTextMap.put("85", "Max fill reached"); + errorTextMap.put("86", "Weak battery detected"); + errorTextMap.put("87", "Missed bolus"); + errorTextMap.put("88", "Silenced sensor alert. Check alarm history"); + errorTextMap.put("101", "High SG. CHECK BG"); + errorTextMap.put("102", "Low SG"); + errorTextMap.put("103", "Threshold Suspend"); + errorTextMap.put("104", "Meter BG now"); + errorTextMap.put("105", "Calibration Reminder"); + errorTextMap.put("106", "Calibration error"); + errorTextMap.put("107", "Sensor expired"); + errorTextMap.put("108", "Change sensor"); + errorTextMap.put("109", "Sensor error"); + errorTextMap.put("110", "Recharge transmitter"); + errorTextMap.put("111", "Transmitter battery low"); + errorTextMap.put("112", "Weak signal"); + errorTextMap.put("113", "Lost sensor"); + errorTextMap.put("114", "Sensor glucose approaching high limit"); + errorTextMap.put("115", "Sensor glucose approaching low limit"); + errorTextMap.put("116", "Sensor glucose rising rapidly"); + errorTextMap.put("117", "Sensor glucose falling rapidly"); + errorTextMap.put("Axx", "Pump error Anull"); + errorTextMap.put("Exx", "Pump error Enull"); + errorTextMap.put("N002", "Pump Error. Delivery Stopped"); + errorTextMap.put("N006", "Pump Battery Out Limit"); + errorTextMap.put("N007", "Delivery Stopped. Check BG"); + errorTextMap.put("N011", "Replace Pump Battery Now"); + errorTextMap.put("N012", "Auto Suspend Limit Reached. Delivery Stopped"); + errorTextMap.put("N024", "Critical Pump Error. Stop Pump Use. Use Other Treatment"); + errorTextMap.put("N025", "Pump Power Error. Record Settings"); + errorTextMap.put("N029", "Pump Restarted. Delivery Stopped"); + errorTextMap.put("N037", "Pump Motor Error. Delivery Stopped"); + errorTextMap.put("N051", "Bolus Stopped"); + errorTextMap.put("N052", "Delivery Limit Exceeded. Check BG"); + errorTextMap.put("N057", "Pump Battery Not Compatible"); + errorTextMap.put("N058", "Insert A New AA Battery"); + errorTextMap.put("N061", "Pump Button Error. Delivery Stopped"); + errorTextMap.put("N062", "New Notification Received From Pump"); + errorTextMap.put("N066", "No Reservoir Detected During Infusion Set Change"); + errorTextMap.put("N069", "Loading Incomplete During Infusion Set Change"); + errorTextMap.put("N073", "Replace Pump Battery Now"); + errorTextMap.put("N077", "Pump Settings Error. Delivery Stopped"); + errorTextMap.put("N084", "Pump Battery Removed. Replace Battery"); + errorTextMap.put("N100", "Bolus Entry Timed Out Before Delivery"); + errorTextMap.put("N103", "BG Check Reminder"); + errorTextMap.put("N104", "Replace Pump Battery Soon"); + errorTextMap.put("N105", "Reservoir Low. Change Reservoir Soon"); + errorTextMap.put("N107", "Missed Meal Bolus Reminder"); + errorTextMap.put("N109", "Set Change Reminder"); + errorTextMap.put("N110", "Silenced Sensor Alert. Check Alarm History"); + errorTextMap.put("N113", "Reservoir Empty. Change Reservoir Now"); + errorTextMap.put("N117", "Active Insulin Cleared"); + errorTextMap.put("N130", "Rewind Required. Delivery Stopped"); + errorTextMap.put("N140", "Delivery Suspended. Connect Infusion Set"); + errorTextMap.put("N775", "Calibrate Now"); + errorTextMap.put("N776", "Calibration Error"); + errorTextMap.put("N777", "Change Sensor"); + errorTextMap.put("N779", "Recharge Transmitter Now"); + errorTextMap.put("N780", "Lost Sensor Signal"); + errorTextMap.put("N784", "SG Rising Rapidly"); + errorTextMap.put("N794", "Sensor Expired. Change Sensor"); + errorTextMap.put("N795", "Lost Sensor Signal. Check Transmitter"); + errorTextMap.put("N796", "No Sensor Signal"); + errorTextMap.put("N797", "Sensor Connected"); + errorTextMap.put("N801", "Do Not Calibrate. Wait Up To 3 Hours"); + errorTextMap.put("N802", "Low Sensor Glucose"); + errorTextMap.put("N803", "Low Sensor Glucose. Check BG"); + errorTextMap.put("N805", "Alert Before Low. Check BG"); + errorTextMap.put("N807", "Basal Delivery Resumed. Check BG"); + errorTextMap.put("N809", "Suspend On Low. Delivery Stopped. Check BG"); + errorTextMap.put("N810", "Suspend Before Low. Delivery Stopped. Check BG"); + errorTextMap.put("N812", "Call Emergency Assistance"); + errorTextMap.put("N814", "Basal Resumed. SG Still Under Low Limit. Check BG"); + errorTextMap.put("N815", "Low Limit Changed. Basal Manually Resumed. Check BG"); + errorTextMap.put("N816", "High Sensor Glucose"); + errorTextMap.put("N817", "Alert Before High. Check BG"); + errorTextMap.put("N819", "Auto Mode Exit. Basal Delivery Started. BG Required"); + errorTextMap.put("N821", "Minimum Delivery Timeout. BG Required"); + errorTextMap.put("N822", "Maximum Delivery Timeout. BG Required"); + errorTextMap.put("N823", "High Sensor Glucose For Over 1 Hour"); + errorTextMap.put("N827", "Urgent Low Sensor Glucose. Check BG"); + errorTextMap.put("N829", "BG Required"); + errorTextMap.put("N832", "Calibration Required"); + errorTextMap.put("N833", "Correction Bolus Recommended"); + errorTextMap.put("N869", "Calibration Reminder"); + errorTextMap.put("N870", "Recharge Transmitter Soon"); + errorTextMap.put("Nnodata1", "Reconnecting To Pump"); + errorTextMap.put("Nnodata2", "Lost Signal. Check Mobile Application"); + errorTextMap.put("GM_alert.sg.threshold.low.urgent", "Urgent Low Sensor Glucose"); + errorTextMap.put("GM_alert.sg.threshold.low", "Low Sensor Glucose"); + errorTextMap.put("GM_alert.sg.predictive.low", "Low Predicted"); + errorTextMap.put("GM_alert.sg.rate.falling", "Fall Alert"); + errorTextMap.put("GM_alert.sg.threshold.high", "High Sensor Glucose"); + errorTextMap.put("GM_alert.sg.predictive.high", "High Predicted"); + errorTextMap.put("GM_alert.sg.rate.rising", "Rise Alert"); + errorTextMap.put("GM_alert.transmitter.battery", "Transmitter Battery Empty"); + errorTextMap.put("GM_alert.sensor.replace.calibrationError", "Change Sensor"); + errorTextMap.put("GM_alert.sensor.replace.sensorError", "Change Sensor"); + errorTextMap.put("GM_alert.sensor.replace.lifetime", "Sensor End of Life"); + errorTextMap.put("GM_alert.transmitter.signal", "Lost Sensor Communication"); + errorTextMap.put("GM_alert.sensor.connection", "Sensor Connected"); + errorTextMap.put("GM_alert.sensor.calibration.rejected", "Calibration Not Accepted"); + errorTextMap.put("GM_alert.sensor.calibration.calibrate_now", "Calibrate Now"); + errorTextMap.put("GM_alert.sensor.error", "Sensor Glucose Not Available"); + errorTextMap.put("GM_alert.calibration.reminder", "Calibration Reminder"); + errorTextMap.put("GM_alert.transmitter.error", "Transmitter Error"); + errorTextMap.put("GM_alert.receiver.battery.low", "Mobile Device Battery Low"); + errorTextMap.put("Nalert.sg.threshold.low.urgent", "Urgent Low Sensor Glucose"); + errorTextMap.put("Nalert.sg.threshold.low", "Low Sensor Glucose"); + errorTextMap.put("Nalert.sg.predictive.low", "Low Predicted"); + errorTextMap.put("Nalert.sg.rate.falling", "Fall Alert"); + errorTextMap.put("Nalert.sg.threshold.high", "High Sensor Glucose"); + errorTextMap.put("Nalert.sg.predictive.high", "High Predicted"); + errorTextMap.put("Nalert.sg.rate.rising", "Rise Alert"); + errorTextMap.put("Nalert.transmitter.battery", "Transmitter Battery Empty"); + errorTextMap.put("Nalert.sensor.replace.calibrationError", "Change Sensor"); + errorTextMap.put("Nalert.sensor.replace.sensorError", "Change Sensor"); + errorTextMap.put("Nalert.sensor.replace.lifetime", "Sensor End of Life"); + errorTextMap.put("Nalert.transmitter.signal", "Lost Sensor Communication"); + errorTextMap.put("Nalert.sensor.connection", "Sensor Connected"); + errorTextMap.put("Nalert.sensor.calibration.rejected", "Calibration Not Accepted"); + errorTextMap.put("Nalert.sensor.calibration.calibrate_now", "Calibrate Now"); + errorTextMap.put("Nalert.sensor.error", "Sensor Glucose Not Available"); + errorTextMap.put("Nalert.calibration.reminder", "Calibration Reminder"); + errorTextMap.put("Nalert.transmitter.error", "Transmitter Error"); + errorTextMap.put("Nalert.receiver.battery.low", "Mobile Device Battery Low"); + + errorCodeMap = new HashMap<>(); + errorCodeMap.put("002", "002"); + errorCodeMap.put("003", "002"); + errorCodeMap.put("004", "002"); + errorCodeMap.put("013", "002"); + errorCodeMap.put("014", "002"); + errorCodeMap.put("015", "002"); + errorCodeMap.put("016", "002"); + errorCodeMap.put("017", "002"); + errorCodeMap.put("018", "002"); + errorCodeMap.put("019", "002"); + errorCodeMap.put("020", "002"); + errorCodeMap.put("022", "002"); + errorCodeMap.put("023", "002"); + errorCodeMap.put("026", "002"); + errorCodeMap.put("027", "002"); + errorCodeMap.put("028", "002"); + errorCodeMap.put("030", "002"); + errorCodeMap.put("031", "002"); + errorCodeMap.put("033", "002"); + errorCodeMap.put("034", "002"); + errorCodeMap.put("044", "002"); + errorCodeMap.put("045", "002"); + errorCodeMap.put("046", "002"); + errorCodeMap.put("049", "002"); + errorCodeMap.put("053", "002"); + errorCodeMap.put("054", "002"); + errorCodeMap.put("060", "002"); + errorCodeMap.put("063", "002"); + errorCodeMap.put("064", "002"); + errorCodeMap.put("065", "002"); + errorCodeMap.put("067", "002"); + errorCodeMap.put("068", "002"); + errorCodeMap.put("074", "002"); + errorCodeMap.put("075", "002"); + errorCodeMap.put("076", "002"); + errorCodeMap.put("079", "002"); + errorCodeMap.put("080", "002"); + errorCodeMap.put("081", "002"); + errorCodeMap.put("082", "002"); + errorCodeMap.put("117", "117"); + errorCodeMap.put("817", "817"); + errorCodeMap.put("805", "805"); + errorCodeMap.put("819", "819"); + errorCodeMap.put("820", "819"); + errorCodeMap.put("012", "012"); + errorCodeMap.put("807", "807"); + errorCodeMap.put("808", "807"); + errorCodeMap.put("814", "814"); + errorCodeMap.put("103", "103"); + errorCodeMap.put("829", "829"); + errorCodeMap.put("830", "829"); + errorCodeMap.put("831", "829"); + errorCodeMap.put("100", "100"); + errorCodeMap.put("051", "051"); + errorCodeMap.put("775", "775"); + errorCodeMap.put("776", "776"); + errorCodeMap.put("869", "869"); + errorCodeMap.put("832", "832"); + errorCodeMap.put("812", "812"); + errorCodeMap.put("777", "777"); + errorCodeMap.put("778", "777"); + errorCodeMap.put("789", "777"); + errorCodeMap.put("833", "833"); + errorCodeMap.put("024", "024"); + errorCodeMap.put("035", "024"); + errorCodeMap.put("040", "024"); + errorCodeMap.put("047", "024"); + errorCodeMap.put("048", "024"); + errorCodeMap.put("050", "024"); + errorCodeMap.put("055", "024"); + errorCodeMap.put("131", "024"); + errorCodeMap.put("052", "052"); + errorCodeMap.put("007", "007"); + errorCodeMap.put("008", "007"); + errorCodeMap.put("140", "140"); + errorCodeMap.put("801", "801"); + errorCodeMap.put("816", "816"); + errorCodeMap.put("823", "823"); + errorCodeMap.put("824", "823"); + errorCodeMap.put("058", "058"); + errorCodeMap.put("069", "069"); + errorCodeMap.put("780", "780"); + errorCodeMap.put("781", "780"); + errorCodeMap.put("795", "795"); + errorCodeMap.put("815", "815"); + errorCodeMap.put("802", "802"); + errorCodeMap.put("803", "803"); + errorCodeMap.put("822", "822"); + errorCodeMap.put("821", "821"); + errorCodeMap.put("107", "107"); + errorCodeMap.put("066", "066"); + errorCodeMap.put("796", "796"); + errorCodeMap.put("057", "057"); + errorCodeMap.put("006", "006"); + errorCodeMap.put("084", "084"); + errorCodeMap.put("061", "061"); + errorCodeMap.put("037", "037"); + errorCodeMap.put("038", "037"); + errorCodeMap.put("039", "037"); + errorCodeMap.put("041", "037"); + errorCodeMap.put("042", "037"); + errorCodeMap.put("043", "037"); + errorCodeMap.put("025", "025"); + errorCodeMap.put("029", "029"); + errorCodeMap.put("077", "077"); + errorCodeMap.put("779", "779"); + errorCodeMap.put("870", "870"); + errorCodeMap.put("011", "011"); + errorCodeMap.put("073", "011"); + errorCodeMap.put("104", "104"); + errorCodeMap.put("113", "113"); + errorCodeMap.put("105", "105"); + errorCodeMap.put("106", "105"); + errorCodeMap.put("130", "130"); + errorCodeMap.put("797", "797"); + errorCodeMap.put("798", "797"); + errorCodeMap.put("794", "794"); + errorCodeMap.put("109", "109"); + errorCodeMap.put("784", "784"); + errorCodeMap.put("110", "110"); + errorCodeMap.put("810", "810"); + errorCodeMap.put("811", "810"); + errorCodeMap.put("809", "809"); + errorCodeMap.put("062", "062"); + errorCodeMap.put("070", "062"); + errorCodeMap.put("071", "062"); + errorCodeMap.put("072", "062"); + errorCodeMap.put("108", "062"); + errorCodeMap.put("114", "062"); + errorCodeMap.put("786", "062"); + errorCodeMap.put("787", "062"); + errorCodeMap.put("788", "062"); + errorCodeMap.put("799", "062"); + errorCodeMap.put("806", "062"); + errorCodeMap.put("825", "062"); + errorCodeMap.put("828", "062"); + errorCodeMap.put("827", "827"); + + } + + public static String getAlarmMessage(String deviceFamily, Alarm alarm){ + + return getErrorMessage(deviceFamily, alarm.kind, alarm.code); + + } + + public static String getNotificationMessage(String deviceFamily, ClearedNotification notification){ + return getErrorMessage(deviceFamily, notification.messageId, notification.faultId); + } + + public static String getNotificationMessage(String deviceFamily, String messageId, int faultId){ + return getErrorMessage(deviceFamily, messageId, faultId); + } + + public static String getErrorMessage(String deviceFamily, String guardianErrorCode, int ngpErrorCode) + { + String errorTextId; + String internalEC; + + if(deviceFamily.equals(RecentData.DEVICE_FAMILY_GUARDIAN)){ + if(guardianErrorCode != null) + errorTextId = ERROR_TEXT_PREFIX_GUARDIAN + guardianErrorCode; + else + errorTextId = null; + } else if (deviceFamily.equals(RecentData.DEVICE_FAMILY_NGP)){ + String formattedEC = String.format("%03d", ngpErrorCode); + if(errorCodeMap.containsKey(formattedEC)) + internalEC = errorCodeMap.get(formattedEC); + else + internalEC = formattedEC; + errorTextId = ERROR_TEXT_PREFIX_NGP + internalEC; + } else { + errorTextId = null; + } + + if(errorTextId != null && errorTextMap.containsKey(errorTextId)) + return errorTextMap.get(errorTextId); + else + return null; + } + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TherapyAlgorithmState.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TherapyAlgorithmState.java new file mode 100644 index 0000000000..d63b5571d6 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TherapyAlgorithmState.java @@ -0,0 +1,11 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +public class TherapyAlgorithmState { + + public String autoModeShieldState; + public String autoModeReadinessState; + public String plgmLgsState; + public int safeBasalDuration; + public int waitToCalibrateDuration; + +} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/User.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/User.java new file mode 100644 index 0000000000..35cee61a62 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/User.java @@ -0,0 +1,39 @@ +package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; + +import java.util.Date; + +public class User { + + public static final String ROLE_CARE_PARTNER_US = "CARE_PARTNER"; + public static final String ROLE_CARE_PARTNER_OUS = "CARE_PARTNER_OUS"; + public static final String ROLE_CARE_PATIENT_US = "CARE_PARTNER"; + public static final String ROLE_CARE_PATIENT_OUS = "CARE_PARTNER_OUS"; + public static final String USER_ROLE_CARE_PARTNER = "carepartner"; + public static final String USER_ROLE_PATIENT = "patient"; + + public Date loginDateUTC; + public String id; + public String country; + public String language; + public String lastName; + public String firstName; + public Integer accountId; + public String role; + public String cpRegistrationStatus; + public String accountSuspended; + public boolean needToReconsent; + public boolean mfaRequired; + public boolean mfaEnabled; + + public boolean isCarePartner() { + return(this.role.equals(ROLE_CARE_PARTNER_US) || this.role.equals(ROLE_CARE_PARTNER_OUS)); + } + + public String getUserRole() { + if(isCarePartner()) + return USER_ROLE_CARE_PARTNER; + else + return USER_ROLE_PATIENT; + } + +} From 78227eac8eaac49c6a36900398930631906fd9f6 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 4 Sep 2022 00:26:48 +0200 Subject: [PATCH 031/982] Handle CareLink Cloud to support 7XXG pumps. --- .../carelinkfollow/CareLinkDataProcessor.java | 31 ++- .../CareLinkFollowDownloader.java | 67 ++--- .../carelinkfollow/client/CareLinkClient.java | 237 ++++++++++++++---- .../carelinkfollow/client/CountryUtils.java | 4 + 4 files changed, 255 insertions(+), 84 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 6d9a442ae1..4fcab10a98 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -5,6 +5,7 @@ import com.eveningoutpost.dexdrip.Models.UserError; import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectData; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.SensorGlucose; import java.util.Collections; @@ -28,33 +29,45 @@ public class CareLinkDataProcessor { private static final String EPOCH_0_YEAR = "1970"; - static synchronized void processData(final ConnectData connectData, final boolean live) { + static synchronized void processData(final RecentData recentData, final boolean live) { - if (connectData == null) return; + UserError.Log.d(TAG, "Start processsing data..."); + + //SKIP ALL IF EMPTY!!! + if (recentData == null) { + UserError.Log.e(TAG, "Recent data is null, processing stopped!"); + return; + } UserError.Log.d(TAG, "Create Sensor"); final Sensor sensor = Sensor.createDefaultIfMissing(); //TODO not good for backfill! //Sensor status - sensor.latest_battery_level = connectData.medicalDeviceBatteryLevelPercent; + sensor.latest_battery_level = recentData.medicalDeviceBatteryLevelPercent; sensor.save(); - if (connectData.sgs == null) UserError.Log.d(TAG, "SGs is null!"); + if (recentData.sgs == null) UserError.Log.d(TAG, "SGs is null!"); + + //SKIP DATA processing if NO PUMP CONNECTION (time shift seems to be different in this case, needs further analysis) + if (recentData.isNGP() && !recentData.pumpCommunicationState) { + UserError.Log.d(TAG, "Not connected to pump => time can be wrong, leave processing!"); + return; + } //1) SGs (if available) - if (connectData.sgs != null) { + if (recentData.sgs != null) { // place in order of oldest first UserError.Log.d(TAG, "Sort SGs"); try { - Collections.sort(connectData.sgs, (o1, o2) -> o1.getTimestamp().compareTo(o2.getTimestamp())); + Collections.sort(recentData.sgs, (o1, o2) -> o1.datetimeAsDate.compareTo(o2.datetimeAsDate)); } catch (Exception e) { UserError.Log.e(TAG, "Sort SGs error! Details: " + e); return; } UserError.Log.d(TAG, "For each SG"); - for (final SensorGlucose sg : connectData.sgs) { + for (final SensorGlucose sg : recentData.sgs) { //Not NULL SG (shouldn't happen?!) if (sg != null) { @@ -68,7 +81,7 @@ static synchronized void processData(final ConnectData connectData, final boolea //Not 0 SG (not calibrated?) if (sg.sg > 0) { - final long recordTimestamp = sg.getTimestamp(); + final long recordTimestamp = sg.datetimeAsDate.getTime(); if (recordTimestamp > 0) { final BgReading existing = BgReading.getForPreciseTimestamp(recordTimestamp, 10_000); @@ -116,7 +129,7 @@ static synchronized void processData(final ConnectData connectData, final boolea } //2) Markers (if available) - if(connectData.markers != null){ + if(recentData.markers != null){ } } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java index 3ef2f17a28..6a897f6204 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java @@ -10,6 +10,7 @@ import com.eveningoutpost.dexdrip.cgm.carelinkfollow.client.CareLinkClient; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.client.CountryUtils; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectDataResult; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; import static com.eveningoutpost.dexdrip.Models.JoH.emptyString; @@ -37,6 +38,7 @@ public class CareLinkFollowDownloader { private long loginBlockedTill = 0; private long loginBackoff = Constants.MINUTE_IN_MS; + private int lastResponseCode = 0; public String getStatus(){ return status; @@ -117,55 +119,62 @@ private void backgroundProcessConnectData() { // don't call this directly unless you are also handling the wakelock release private void processConnectData() { - ConnectDataResult connectDataResult = null; - CareLinkClient careLinkClient = null; + RecentData recentData = null; + CareLinkClient carelinkClient = null; loginBackoff = 0; //Get client - careLinkClient = getCareLinkClient(); - //Get ConnectData from CareLink client - if (careLinkClient != null) { - connectDataResult = getCareLinkClient().getLast24Hours(); - - //Got CareLink data - if (connectDataResult.success) { - UserError.Log.d(TAG, "Success get data! Response code: " + connectDataResult.responseCode); + carelinkClient = getCareLinkClient(); + //Get RecentData from CareLink client + if (carelinkClient != null) { + + //Try twice in case of 401 error + for(int i = 0; i < 2; i++) { + recentData = getCareLinkClient().getRecentData(); + lastResponseCode = carelinkClient.getLastResponseCode(); + + //Got recent data + if (carelinkClient.getLastDataSuccess()) { + UserError.Log.d(TAG, "Success get data! Response code: " + carelinkClient.getLastResponseCode()); try { - if (connectDataResult.connectData == null) { - UserError.Log.d(TAG, "Connect data is null!"); - } else if (connectDataResult.connectData.sgs == null) { - UserError.Log.d(TAG, "SGs is null!"); + if (recentData == null) { + UserError.Log.e(TAG, "Received recent data is empty, nothing to process!"); + msg("Received data is empty!"); + } else { + if (D) UserError.Log.d(TAG, "Start process data"); + //Process CareLink data (conversion and update xDrip data) + CareLinkDataProcessor.processData(recentData, true); + if (D) UserError.Log.d(TAG, "ProcessData finished!"); + //Update Service status + CareLinkFollowService.updateBgReceiveDelay(); + if (D) UserError.Log.d(TAG, "UpdateBgReceiveDelay finished!"); + msg(null); } - if (D) UserError.Log.d(TAG, "Start process data"); - //Process CareLink data (conversion and update xDrip data) - CareLinkDataProcessor.processData(connectDataResult.connectData, true); - if (D) UserError.Log.d(TAG, "ProcessData finished!"); - //Update Service status - CareLinkFollowService.updateBgReceiveDelay(); - if (D) UserError.Log.d(TAG, "UpdateBgReceiveDelay finished!"); - msg(null); - if (D) UserError.Log.d(TAG, "SetMessage finished!"); } catch (Exception e) { UserError.Log.e(TAG, "Got exception for data update" + e); } //Error during data download } else { if (!getCareLinkClient().getLastLoginSuccess()) { - UserError.Log.e(TAG, "CareLink login error!"); + UserError.Log.e(TAG, "CareLink login error! Response code: " + carelinkClient.getLastResponseCode()); loginBackoff += Constants.MINUTE_IN_MS; loginBlockedTill = JoH.tsl() + loginBackoff; + msg("Login error!"); } else if (!getCareLinkClient().getLastDataSuccess()) { - UserError.Log.e(TAG, "CareLink download error! Response code: " + connectDataResult.responseCode); + UserError.Log.e(TAG, "CareLink download error! Response code: " + carelinkClient.getLastResponseCode()); UserError.Log.e(TAG, "Error message: " + getCareLinkClient().getLastErrorMessage()); - UserError.Log.e(TAG, "Stack trace: " + getCareLinkClient().getLastStackTraceString()); + msg("Data request error!"); } } - //Update status message - if (connectDataResult.success) { - msg(null); + if(carelinkClient.getLastResponseCode() != 401) + break; + else + UserError.Log.e(TAG, "Try get data again due to 401 response code." + getCareLinkClient().getLastErrorMessage()); + } + } } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java index d6a9011891..ddae3d959b 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java @@ -3,6 +3,11 @@ import android.util.Log; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -48,7 +53,23 @@ public String getLastStackTraceString(){ return lastStackTraceString; } - + //Session info + protected User sessionUser; + public User getSessionUser() { + return sessionUser; + } + protected Profile sessionProfile; + public Profile getSessionProfile() { + return sessionProfile; + } + protected CountrySettings sessionCountrySettings; + public CountrySettings getSessionCountrySettings() { + return sessionCountrySettings; + } + protected MonitorData sessionMonitorData; + public MonitorData getSessionMonitorData() { + return sessionMonitorData; + } protected enum RequestType{ HtmlGet(), @@ -80,6 +101,24 @@ protected String careLinkServer() { } + //Wrapper for common request of recent data (last 24 hours) + public RecentData getRecentData() { + + // Force login to get basic info + if(getAuthorizationToken() != null) { + //New BLE Endpoint (for all US calls and all BLE devices) + if (CountryUtils.isUS(carelinkCountry) || sessionMonitorData.isBle()) + return this.getConnectDisplayMessage(this.sessionProfile.username, this.sessionUser.getUserRole(), + sessionCountrySettings.blePereodicDataEndpoint); + //Old CareLink data source + else + return this.getLast24Hours(); + } + else { + return null; + } + } + //Authentication methods protected boolean executeAuthenticationProcedure() { @@ -108,15 +147,23 @@ protected boolean executeAuthenticationProcedure() { doLoginResponse.close(); consentResponse.close(); - //Set login success - lastLoginSuccess = true; + // Get basic infos + this.sessionUser = this.getMyUser(); + this.sessionProfile = this.getMyProfile(); + this.sessionCountrySettings = this.getMyCountrySettings(); + this.sessionMonitorData = this.getMonitorData(); } catch (Exception e) { - lastErrorMessage = e.getMessage(); - Log.getStackTraceString(e); - return lastLoginSuccess; + lastErrorMessage = e.getClass().getSimpleName() + ":" + e.getMessage(); + // lastStackTraceString = Log.getStackTraceString(e); + } finally { + loginInProcess = false; } + // Set login success if everything was ok: + if(this.sessionUser != null && this.sessionProfile != null && this.sessionCountrySettings != null && this.sessionMonitorData != null) + lastLoginSuccess = true; + return lastLoginSuccess; } @@ -210,6 +257,7 @@ protected Response doConsent(Response doLoginResponse) throws IOException { } + // Response parsing protected String extractResponseData(String respBody, String groupRegex, int groupIndex) { String responseData = null; @@ -240,76 +288,173 @@ protected String getAuthorizationToken() { //CareLink data APIs - public ConnectDataResult getLast24Hours() { - HttpUrl url = null; + // My user + public User getMyUser() { + return this.getData(this.careLinkServer(), "patient/users/me", null, null, User.class); + } + + // My profile + public Profile getMyProfile() { + return this.getData(this.careLinkServer(), "patient/users/me/profile", null, null, Profile.class); + } + + // Monitoring data + public MonitorData getMonitorData() { + return this.getData(this.careLinkServer(), "patient/monitor/data", null, null, MonitorData.class); + } + + // Country settings + public CountrySettings getMyCountrySettings() { + + Map queryParams = null; + + queryParams = new HashMap(); + queryParams.put("countryCode", this.carelinkCountry); + queryParams.put("language", CARELINK_LANGUAGE_EN); + + return this.getData(this.careLinkServer(), "patient/countries/settings", queryParams, null, + CountrySettings.class); + + } + + public RecentData getLast24Hours() { + + Map queryParams = null; + RecentData recentData = null; + + queryParams = new HashMap(); + queryParams.put("cpSerialNumber", "NONE"); + queryParams.put("msgType", "last24hours"); + queryParams.put("requestTime", String.valueOf(System.currentTimeMillis())); + + try { + recentData = this.getData(this.careLinkServer(), "patient/connect/data", queryParams, null, RecentData.class); + if (recentData != null) + correctTimeInRecentData(recentData); + }catch (Exception e){ + lastErrorMessage = e.getClass().getSimpleName() + ":" + e.getMessage(); + } + + return recentData; + + } + + // Periodic data from CareLink Cloud + public RecentData getConnectDisplayMessage(String username, String role, String endpointUrl) { + + RequestBody requestBody = null; + Gson gson = null; + JsonObject userJson = null; + RecentData recentData = null; + + // Build user json for request + userJson = new JsonObject(); + userJson.addProperty("username", username); + userJson.addProperty("role", role); + + gson = new GsonBuilder().create(); + + requestBody = RequestBody.create(MediaType.get("application/json; charset=utf-8"), gson.toJson(userJson)); + + try { + recentData = this.getData(HttpUrl.parse(endpointUrl), requestBody, RecentData.class); + if (recentData != null) + correctTimeInRecentData(recentData); + }catch (Exception e){ + lastErrorMessage = e.getClass().getSimpleName() + ":" + e.getMessage(); + } + return recentData; + + } + + // General data request for API calls + protected T getData(HttpUrl url, RequestBody requestBody, Class dataClass) { + Request.Builder requestBuilder = null; + HttpUrl.Builder urlBuilder = null; String authToken = null; - String currentTime = null; - String connectDataString = null; - ConnectDataResult connectDataResult = null; + String responseString = null; Response response = null; + Object data = null; + this.lastDataSuccess = false; + this.lastErrorMessage = ""; - lastDataSuccess = false; - connectDataResult = new ConnectDataResult(); - - //Get auth token - authToken= this.getAuthorizationToken(); - if(authToken != null){ + // Get auth token + authToken = this.getAuthorizationToken(); - // TODO current time ? - currentTime = String.valueOf(System.currentTimeMillis()); + if (authToken != null) { - //Get connect data of last 24 hours - url = new HttpUrl.Builder() - .scheme("https") - .host(this.careLinkServer()) - .addPathSegments("patient/connect/data") - .addQueryParameter("cpSerialNumber", "NONE") - .addQueryParameter("msgType", "last24hours") - .addQueryParameter("requestTime", currentTime) - .build(); + // Create request for URL with authToken + requestBuilder = new Request.Builder().url(url).addHeader("Authorization", authToken); - requestBuilder = new Request.Builder() - .url(url) - .addHeader("Authorization", authToken); - - this.addHttpHeaders(requestBuilder, RequestType.Json); + // Add header + if (requestBody == null) { + this.addHttpHeaders(requestBuilder, RequestType.Json); + } else { + requestBuilder.post(requestBody); + this.addHttpHeaders(requestBuilder, RequestType.HtmlPost); + } - //Get and convert data + // Send request try { response = this.httpClient.newCall(requestBuilder.build()).execute(); - connectDataResult.responseCode = response.code(); - if(response.isSuccessful()) { - connectDataString = response.body().string(); - connectDataResult.connectData = (new GsonBuilder().create()).fromJson(connectDataString, ConnectData.class); - //only if there is actual data - if (connectDataResult.connectData != null) lastDataSuccess = true; + this.lastResponseCode = response.code(); + if (response.isSuccessful()) { + try { + responseString = response.body().string(); + data = new GsonBuilder().create().fromJson(responseString, dataClass); + this.lastDataSuccess = true; + } catch (Exception e){ + lastErrorMessage = e.getClass().getSimpleName() + ":" + e.getMessage(); + } } response.close(); } catch (Exception e) { - lastErrorMessage = e.getMessage(); - lastStackTraceString = Log.getStackTraceString(e); + lastErrorMessage = e.getClass().getSimpleName() + ":" + e.getMessage(); } } - //set data request success - connectDataResult.success = lastDataSuccess; + //Return result + if(data != null) + return dataClass.cast(data); + else + return null; + + } + + protected T getData(String host, String path, Map queryParams, RequestBody requestBody, + Class dataClass) { + + HttpUrl.Builder urlBuilder = null; + HttpUrl url = null; + + // Build url + urlBuilder = new HttpUrl.Builder().scheme("https").host(host).addPathSegments(path); + if (queryParams != null) { + for (Map.Entry param : queryParams.entrySet()) { + urlBuilder.addQueryParameter(param.getKey(), param.getValue()); + } + } + + url = urlBuilder.build(); - return connectDataResult; + return this.getData(url, requestBody, dataClass); } + // Http header builder for requests protected void addHttpHeaders(Request.Builder requestBuilder, RequestType type) { + //Add common browser headers requestBuilder .addHeader("Accept-Language", "en;q=0.9, *;q=0.8") - .addHeader("Connection", "keep-alive") .addHeader("sec-ch-ua", "\"Google Chrome\";v=\"87\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"87\"") .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"); + //Set media type based on request type switch(type) { case Json: requestBuilder.addHeader("Accept", "application/json, text/plain, */*"); diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java index db5d6a8bf0..84bb50dd47 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java @@ -125,4 +125,8 @@ public static boolean isSupportedCountry(String countryCode){ return Arrays.asList(supportedCountryCodes).contains(countryCode); } + public static boolean isUS(String countryCode){ + return countryCode.equals("us"); + } + } From 1e3e05d5ec42ebea5d8f2896f51906609cd6b269 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 4 Sep 2022 00:27:05 +0200 Subject: [PATCH 032/982] Track communication status and errors --- .../dexdrip/cgm/carelinkfollow/client/CareLinkClient.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java index ddae3d959b..467418e8df 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java @@ -35,7 +35,11 @@ public class CareLinkClient { protected static final int AUTH_EXPIRE_DEADLINE_MINUTES = 1; protected OkHttpClient httpClient = null; - + protected boolean loginInProcess = false; + protected int lastResponseCode; + public int getLastResponseCode() { + return lastResponseCode; + } private boolean lastLoginSuccess; public boolean getLastLoginSuccess(){ return lastLoginSuccess; From 650a1c32ac32bd63382a48c6593311bf917fe75c Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 4 Sep 2022 00:27:15 +0200 Subject: [PATCH 033/982] Decision when new token is required --- .../carelinkfollow/client/CareLinkClient.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java index 467418e8df..1b9e7dd6fc 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java @@ -124,7 +124,7 @@ public RecentData getRecentData() { } //Authentication methods - protected boolean executeAuthenticationProcedure() { + protected boolean executeLoginProcedure() { Response loginSessionResponse = null; Response doLoginResponse = null; @@ -278,11 +278,21 @@ protected String extractResponseData(String respBody, String groupRegex, int gro protected String getAuthorizationToken() { - - - if(!this.executeAuthenticationProcedure()){ - return null; - }; + // New token is needed: + // a) no token or about to expire => execute authentication + // b) last response 401 + if (!((SimpleOkHttpCookieJar) httpClient.cookieJar()).contains(CARELINK_AUTH_TOKEN_COOKIE_NAME) + || !((SimpleOkHttpCookieJar) httpClient.cookieJar()).contains(CARELINK_TOKEN_VALIDTO_COOKIE_NAME) + || !((new Date(Date.parse(((SimpleOkHttpCookieJar) httpClient.cookieJar()) + .getCookies(CARELINK_TOKEN_VALIDTO_COOKIE_NAME).get(0).value()))) + .after(new Date(new Date(System.currentTimeMillis()).getTime() + + AUTH_EXPIRE_DEADLINE_MINUTES * 60000))) + || this.lastResponseCode == 401 + ) { + //execute new login process + if(this.loginInProcess || !this.executeLoginProcedure()) + return null; + } //there can be only one return "Bearer" + " " + ((SimpleOkHttpCookieJar) httpClient.cookieJar()).getCookies(CARELINK_AUTH_TOKEN_COOKIE_NAME).get(0).value(); From 4655d29d5595fd962dc29088fb6a5196025eafd4 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 4 Sep 2022 00:27:27 +0200 Subject: [PATCH 034/982] Date/time can be messed up in CareLink data, which needs to be corrected --- .../carelinkfollow/client/CareLinkClient.java | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java index 1b9e7dd6fc..bd4c164b0c 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java @@ -13,8 +13,17 @@ import okhttp3.*; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ActiveNotification; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ClearedNotification; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectData; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectDataResult; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.CountrySettings; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Marker; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.MonitorData; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Profile; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.SensorGlucose; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.User; import com.google.gson.*; @@ -34,6 +43,15 @@ public class CareLinkClient { protected static final String CARELINK_TOKEN_VALIDTO_COOKIE_NAME = "c_token_valid_to"; protected static final int AUTH_EXPIRE_DEADLINE_MINUTES = 1; + protected static final SimpleDateFormat[] ZONED_DATE_FORMATS = { + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"), + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz"), + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"), + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"), + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"), + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX") + }; + protected OkHttpClient httpClient = null; protected boolean loginInProcess = false; protected int lastResponseCode; @@ -484,4 +502,117 @@ protected void addHttpHeaders(Request.Builder requestBuilder, RequestType type) } + protected void correctTimeInRecentData(RecentData recentData){ + + boolean timezoneMissing = false; + String offsetString = null; + + if(recentData.sMedicalDeviceTime != null && !recentData.sMedicalDeviceTime.isEmpty() && recentData.lastMedicalDeviceDataUpdateServerTime > 1) { + + //MedicalDeviceTime string has no timezone information + if(parseDateString(recentData.sMedicalDeviceTime) == null) { + + timezoneMissing = true; + + //offset = this.getZonedDate(recentData.lastSG.datetime).getOffset(); + offsetString = this.getZoneOffset(recentData.lastSG.datetime); + + //Build correct dates with timezone + recentData.sMedicalDeviceTime = recentData.sMedicalDeviceTime + offsetString; + recentData.medicalDeviceTimeAsString = recentData.medicalDeviceTimeAsString + offsetString; + recentData.sLastSensorTime = recentData.sLastSensorTime + offsetString; + recentData.lastSensorTSAsString = recentData.lastSensorTSAsString + offsetString; + + } else { + timezoneMissing = false; + } + + //Parse dates + recentData.dMedicalDeviceTime = parseDateString(recentData.sMedicalDeviceTime); + recentData.medicalDeviceTimeAsDate = parseDateString(recentData.medicalDeviceTimeAsString); + recentData.dLastSensorTime = parseDateString(recentData.sLastSensorTime); + recentData.lastSensorTSAsDate = parseDateString(recentData.lastSensorTSAsString); + + //Sensor + if (recentData.sgs != null) { + for (SensorGlucose sg : recentData.sgs) { + sg.datetimeAsDate = parseDateString(sg.datetime); + } + } + + //Timezone was present => check if time needs correction + if(!timezoneMissing) { + + //Calc time diff between event time and actual local time + int diffInHour = (int) Math.round(((recentData.lastMedicalDeviceDataUpdateServerTime - recentData.dMedicalDeviceTime.getTime()) / 3600000D)); + + //Correct times if server <> device > 26 mins => possibly different time zones + if (diffInHour != 0 && diffInHour < 26) { + + + recentData.medicalDeviceTimeAsDate = shiftDateByHours(recentData.medicalDeviceTimeAsDate, diffInHour); + recentData.dMedicalDeviceTime = shiftDateByHours(recentData.dMedicalDeviceTime, diffInHour); + recentData.lastConduitDateTime = shiftDateByHours(recentData.lastConduitDateTime, diffInHour); + recentData.lastSensorTSAsDate = shiftDateByHours(recentData.lastSensorTSAsDate, diffInHour); + recentData.dLastSensorTime = shiftDateByHours(recentData.dLastSensorTime, diffInHour); + //Sensor + if (recentData.sgs != null) { + for (SensorGlucose sg : recentData.sgs) { + sg.datetimeAsDate = shiftDateByHours(sg.datetimeAsDate, diffInHour); + } + } + //Markers + if (recentData.markers != null) { + for (Marker marker : recentData.markers) { + marker.dateTime = shiftDateByHours(marker.dateTime, diffInHour); + } + } + //Notifications + if (recentData.notificationHistory != null) { + if (recentData.notificationHistory.clearedNotifications != null) { + for (ClearedNotification notification : recentData.notificationHistory.clearedNotifications) { + notification.dateTime = shiftDateByHours(notification.dateTime, diffInHour); + notification.triggeredDateTime = shiftDateByHours(notification.triggeredDateTime, diffInHour); + } + } + if (recentData.notificationHistory.activeNotifications != null) { + for (ActiveNotification notification : recentData.notificationHistory.activeNotifications) { + notification.dateTime = shiftDateByHours(notification.dateTime, diffInHour); + } + } + } + } + } + } + + } + + protected String getZoneOffset(String dateString){ + Matcher offsetDataMatcher = Pattern.compile(("(.*)([\\+|-].*)")).matcher(dateString); + if(offsetDataMatcher.find()) + return offsetDataMatcher.group(2); + else + return null; + } + + protected Date parseDateString(String dateString){ + for(SimpleDateFormat zonedFormat : ZONED_DATE_FORMATS){ + try { + return zonedFormat.parse(dateString); + }catch (Exception ex){} + } + return null; + } + + protected Date shiftDateByHours(Date date, int hours){ + if(date != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, hours); + return calendar.getTime(); + } else { + return null; + } + } + } From 2fc1d68c4f31939705637f2882ffb63333db665f Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 4 Sep 2022 00:32:23 +0200 Subject: [PATCH 035/982] Add slope to BG records --- .../dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 4fcab10a98..4a3956e28d 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -101,6 +101,7 @@ static synchronized void processData(final RecentData recentData, final boolean bg.sensor_uuid = sensor.uuid; bg.source_info = "Connect Follow"; bg.save(); + bg.find_slope(); Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); } } else { From 9a18c7bf751c4f11e6d4fcf641e5f6b97aca21ea Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 4 Sep 2022 01:08:29 +0200 Subject: [PATCH 036/982] Prefilter unusable SG values --- .../carelinkfollow/CareLinkDataProcessor.java | 89 +++++++++++-------- 1 file changed, 50 insertions(+), 39 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 4a3956e28d..fd1df7f56e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -8,7 +8,9 @@ import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.SensorGlucose; +import java.util.ArrayList; import java.util.Collections; +import java.util.List; import static com.eveningoutpost.dexdrip.Models.BgReading.SPECIAL_FOLLOWER_PLACEHOLDER; @@ -31,6 +33,8 @@ public class CareLinkDataProcessor { static synchronized void processData(final RecentData recentData, final boolean live) { + List filteredSgList; + UserError.Log.d(TAG, "Start processsing data..."); //SKIP ALL IF EMPTY!!! @@ -42,8 +46,6 @@ static synchronized void processData(final RecentData recentData, final boolean UserError.Log.d(TAG, "Create Sensor"); final Sensor sensor = Sensor.createDefaultIfMissing(); - //TODO not good for backfill! - //Sensor status sensor.latest_battery_level = recentData.medicalDeviceBatteryLevelPercent; sensor.save(); @@ -55,60 +57,69 @@ static synchronized void processData(final RecentData recentData, final boolean return; } - //1) SGs (if available) + //1 - SENSOR GLUCOSE (if available if (recentData.sgs != null) { - // place in order of oldest first - UserError.Log.d(TAG, "Sort SGs"); - try { - Collections.sort(recentData.sgs, (o1, o2) -> o1.datetimeAsDate.compareTo(o2.datetimeAsDate)); - } catch (Exception e) { - UserError.Log.e(TAG, "Sort SGs error! Details: " + e); - return; + + final BgReading lastBg = BgReading.lastNoSenssor(); + final long lastBgTimestamp = lastBg != null ? lastBg.timestamp : 0; + + //create filtered sortable SG list + filteredSgList = new ArrayList<>(); + for (SensorGlucose sg : recentData.sgs) { + //SG DateTime is null (sensor expired?) + if (sg != null & sg.datetimeAsDate != null) { + filteredSgList.add(sg); + } } - UserError.Log.d(TAG, "For each SG"); - for (final SensorGlucose sg : recentData.sgs) { + // place in order of oldest first + Collections.sort(recentData.sgs, (o1, o2) -> o1.datetimeAsDate.compareTo(o2.datetimeAsDate)); + + for (final SensorGlucose sg : filteredSgList) { //Not NULL SG (shouldn't happen?!) if (sg != null) { //Not NULL DATETIME (sensorchange?) - if (sg.datetime != null) { + if (sg.datetimeAsDate != null) { //Not EPOCH 0 (warmup?) - if (!sg.datetime.startsWith(EPOCH_0_YEAR)) { + if (sg.datetimeAsDate.getTime() > 1) { //Not 0 SG (not calibrated?) if (sg.sg > 0) { - final long recordTimestamp = sg.datetimeAsDate.getTime(); - if (recordTimestamp > 0) { - - final BgReading existing = BgReading.getForPreciseTimestamp(recordTimestamp, 10_000); - if (existing == null) { - UserError.Log.d(TAG, "NEW NEW NEW New entry: " + sg.toS()); - - if (live) { - final BgReading bg = new BgReading(); - bg.timestamp = recordTimestamp; - bg.calculated_value = (double) sg.sg; - bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; - bg.filtered_data = (double) sg.sg; - bg.noise = ""; - bg.uuid = UUID_CF_PREFIX + UUID_BG_PREFIX + String.valueOf(bg.timestamp); - bg.calculated_value_slope = 0; - bg.sensor = sensor; - bg.sensor_uuid = sensor.uuid; - bg.source_info = "Connect Follow"; - bg.save(); - bg.find_slope(); - Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); + //newer than last BG + if (sg.datetimeAsDate.getTime() > lastBgTimestamp) { + + if (sg.datetimeAsDate.getTime() > 0) { + + final BgReading existing = BgReading.getForPreciseTimestamp(sg.datetimeAsDate.getTime(), 10_000); + if (existing == null) { + UserError.Log.d(TAG, "NEW NEW NEW New entry: " + sg.toS()); + + if (live) { + final BgReading bg = new BgReading(); + bg.timestamp = sg.datetimeAsDate.getTime(); + bg.calculated_value = (double) sg.sg; + bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; + bg.filtered_data = (double) sg.sg; + bg.noise = ""; + bg.uuid = UUID_CF_PREFIX + UUID_BG_PREFIX + String.valueOf(bg.timestamp); + bg.calculated_value_slope = 0; + bg.sensor = sensor; + bg.sensor_uuid = sensor.uuid; + bg.source_info = "Connect Follow"; + bg.save(); + bg.find_slope(); + Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); + } + } else { + //existing entry, not needed } } else { - //existing entry, not needed + UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); } - } else { - UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); } } else { From 25f51dc7ef5635d20234a016289e57b3d9b86c1f Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 4 Sep 2022 01:12:13 +0200 Subject: [PATCH 037/982] Create/load the sensor only if SG is available --- .../carelinkfollow/CareLinkDataProcessor.java | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index fd1df7f56e..3baa3a3d73 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -43,12 +43,6 @@ static synchronized void processData(final RecentData recentData, final boolean return; } - UserError.Log.d(TAG, "Create Sensor"); - final Sensor sensor = Sensor.createDefaultIfMissing(); - - sensor.latest_battery_level = recentData.medicalDeviceBatteryLevelPercent; - sensor.save(); - if (recentData.sgs == null) UserError.Log.d(TAG, "SGs is null!"); //SKIP DATA processing if NO PUMP CONNECTION (time shift seems to be different in this case, needs further analysis) @@ -72,70 +66,76 @@ static synchronized void processData(final RecentData recentData, final boolean } } - // place in order of oldest first - Collections.sort(recentData.sgs, (o1, o2) -> o1.datetimeAsDate.compareTo(o2.datetimeAsDate)); + if(filteredSgList.size() > 0) { + + final Sensor sensor = Sensor.createDefaultIfMissing(); + sensor.save(); - for (final SensorGlucose sg : filteredSgList) { + // place in order of oldest first + Collections.sort(recentData.sgs, (o1, o2) -> o1.datetimeAsDate.compareTo(o2.datetimeAsDate)); - //Not NULL SG (shouldn't happen?!) - if (sg != null) { + for (final SensorGlucose sg : filteredSgList) { - //Not NULL DATETIME (sensorchange?) - if (sg.datetimeAsDate != null) { + //Not NULL SG (shouldn't happen?!) + if (sg != null) { - //Not EPOCH 0 (warmup?) - if (sg.datetimeAsDate.getTime() > 1) { + //Not NULL DATETIME (sensorchange?) + if (sg.datetimeAsDate != null) { - //Not 0 SG (not calibrated?) - if (sg.sg > 0) { + //Not EPOCH 0 (warmup?) + if (sg.datetimeAsDate.getTime() > 1) { - //newer than last BG - if (sg.datetimeAsDate.getTime() > lastBgTimestamp) { + //Not 0 SG (not calibrated?) + if (sg.sg > 0) { - if (sg.datetimeAsDate.getTime() > 0) { + //newer than last BG + if (sg.datetimeAsDate.getTime() > lastBgTimestamp) { - final BgReading existing = BgReading.getForPreciseTimestamp(sg.datetimeAsDate.getTime(), 10_000); - if (existing == null) { - UserError.Log.d(TAG, "NEW NEW NEW New entry: " + sg.toS()); + if (sg.datetimeAsDate.getTime() > 0) { - if (live) { - final BgReading bg = new BgReading(); - bg.timestamp = sg.datetimeAsDate.getTime(); - bg.calculated_value = (double) sg.sg; - bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; - bg.filtered_data = (double) sg.sg; - bg.noise = ""; - bg.uuid = UUID_CF_PREFIX + UUID_BG_PREFIX + String.valueOf(bg.timestamp); - bg.calculated_value_slope = 0; - bg.sensor = sensor; - bg.sensor_uuid = sensor.uuid; - bg.source_info = "Connect Follow"; - bg.save(); - bg.find_slope(); - Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); + final BgReading existing = BgReading.getForPreciseTimestamp(sg.datetimeAsDate.getTime(), 10_000); + if (existing == null) { + UserError.Log.d(TAG, "NEW NEW NEW New entry: " + sg.toS()); + + if (live) { + final BgReading bg = new BgReading(); + bg.timestamp = sg.datetimeAsDate.getTime(); + bg.calculated_value = (double) sg.sg; + bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; + bg.filtered_data = (double) sg.sg; + bg.noise = ""; + bg.uuid = UUID_CF_PREFIX + UUID_BG_PREFIX + String.valueOf(bg.timestamp); + bg.calculated_value_slope = 0; + bg.sensor = sensor; + bg.sensor_uuid = sensor.uuid; + bg.source_info = "Connect Follow"; + bg.save(); + bg.find_slope(); + Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); + } + } else { + //existing entry, not needed } } else { - //existing entry, not needed + UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); } - } else { - UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); } + + } else { + UserError.Log.d(TAG, "SG is 0 (calibration missed?)"); } } else { - UserError.Log.d(TAG, "SG is 0 (calibration missed?)"); + UserError.Log.d(TAG, "SG DateTime is 0 (warmup phase?)"); } } else { - UserError.Log.d(TAG, "SG DateTime is 0 (warmup phase?)"); + UserError.Log.d(TAG, "SG DateTime is null (sensor expired?)"); } } else { - UserError.Log.d(TAG, "SG DateTime is null (sensor expired?)"); + UserError.Log.d(TAG, "SG Entry is null!!!"); } - - } else { - UserError.Log.d(TAG, "SG Entry is null!!!"); } } } From eba89673dbc0cfd7e1133a4618cc8c57ec5c471b Mon Sep 17 00:00:00 2001 From: benceszasz Date: Mon, 5 Sep 2022 18:20:41 +0200 Subject: [PATCH 038/982] Configurable polling --- .../carelinkfollow/CareLinkFollowService.java | 48 ++++++++++++++++--- .../dexdrip/utils/Preferences.java | 10 ++++ app/src/main/res/xml/pref_data_source.xml | 7 +++ 3 files changed, 58 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java index 34847456cc..6a480fd012 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java @@ -13,7 +13,6 @@ import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; import com.eveningoutpost.dexdrip.UtilityModels.Pref; import com.eveningoutpost.dexdrip.UtilityModels.StatusItem; -import com.eveningoutpost.dexdrip.cgm.nsfollow.utils.Anticipate; import com.eveningoutpost.dexdrip.utils.framework.BuggySamsung; import com.eveningoutpost.dexdrip.utils.framework.ForegroundService; import com.eveningoutpost.dexdrip.utils.DexCollectionType; @@ -50,8 +49,8 @@ public class CareLinkFollowService extends ForegroundService { private static volatile long lastBgTime; private static CareLinkFollowDownloader downloader; - - private static final long WAKE_UP_GRACE_SECOND = 20; + private static volatile int gracePeriod = 0; + private static volatile int missedPollInterval = 0; @Override @@ -85,6 +84,8 @@ public synchronized static void resetInstanceAndInvalidateSession() { public static void resetInstance() { downloader = null; + gracePeriod = 0; + missedPollInterval = 0; } private static boolean shouldServiceRun() { @@ -92,20 +93,51 @@ private static boolean shouldServiceRun() { } private static long getGraceMillis() { - return Constants.SECOND_IN_MS * WAKE_UP_GRACE_SECOND; + return Constants.SECOND_IN_MS * gracePeriod; + } + + private static long getMissedIntervalMillis() { + if(missedPollInterval == 0) + return SAMPLE_PERIOD; + else + return Constants.MINUTE_IN_MS * missedPollInterval; } static void scheduleWakeUp() { final BgReading lastBg = BgReading.lastNoSenssor(); final long last = lastBg != null ? lastBg.timestamp : 0; - final long next = Anticipate.next(JoH.tsl(), last, SAMPLE_PERIOD, getGraceMillis()) + getGraceMillis(); + final long next = anticipateNextWakeUp(JoH.tsl(), last, SAMPLE_PERIOD, getGraceMillis(), getMissedIntervalMillis()); wakeup_time = next; UserError.Log.d(TAG, "Anticipate next: " + JoH.dateTimeText(next) + " last BG timestamp: " + JoH.dateTimeText(last)); JoH.wakeUpIntent(xdrip.getAppContext(), JoH.msTill(next), WakeLockTrampoline.getPendingIntent(CareLinkFollowService.class, Constants.CARELINK_SERVICE_FAILOVER_ID)); } + public static long anticipateNextWakeUp(long now, final long last, final long period, final long grace, final long missedInterval) { + + long next; + + //recent reading (less then data period) => last + period + grace + if((now - last) < period) { + next = last + period + grace; + } + //old reading => anticipated next + grace + else{ + //last expected + next = now + ((last - now) % period); + //add missed poll interval until future time is reached + while(next < now){ + next += missedInterval; + } + //add grace + next += grace; + } + + return next; + + } + @Override public int onStartCommand(Intent intent, int flags, int startId) { final PowerManager.WakeLock wl = JoH.getWakeLock("CareLinkFollow-osc", 60000); @@ -125,6 +157,10 @@ public int onStartCommand(Intent intent, int flags, int startId) { last_wakeup = JoH.tsl(); // Check current + if(gracePeriod == 0) + gracePeriod = Pref.getStringToInt("clfollow_grace_period", 30); + if(missedPollInterval == 0) + missedPollInterval = Pref.getStringToInt("clfollow_missed_poll_interval", 5); lastBg = BgReading.lastNoSenssor(); if (lastBg != null) { lastBgTime = lastBg.timestamp; @@ -152,8 +188,6 @@ public int onStartCommand(Intent intent, int flags, int startId) { } else { UserError.Log.d(TAG, "Already have recent reading: " + msSince(lastBg.timestamp)); } - - scheduleWakeUp(); } finally { JoH.releaseWakeLock(wl); diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java index df5b9b503f..a98d5de0d9 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java @@ -1263,11 +1263,15 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { final Preference carelinkFollowUser = findPreference("clfollow_user"); final Preference carelinkFollowPass = findPreference("clfollow_pass"); final Preference carelinkFollowCountry = findPreference("clfollow_country"); + final Preference carelinkFollowGracePeriod = findPreference("clfollow_grace_period"); + final Preference carelinkFollowMissedPollInterval = findPreference("clfollow_missed_poll_interval"); if (collectionType == DexCollectionType.CLFollow) { //Add CL prefs collectionCategory.addPreference(carelinkFollowUser); collectionCategory.addPreference(carelinkFollowPass); collectionCategory.addPreference(carelinkFollowCountry); + collectionCategory.addPreference(carelinkFollowGracePeriod); + collectionCategory.addPreference(carelinkFollowMissedPollInterval); //Create prefChange handler final Preference.OnPreferenceChangeListener carelinkFollowListener = new Preference.OnPreferenceChangeListener() { @Override @@ -1282,6 +1286,8 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { carelinkFollowUser.setOnPreferenceChangeListener(carelinkFollowListener); carelinkFollowPass.setOnPreferenceChangeListener(carelinkFollowListener); carelinkFollowCountry.setOnPreferenceChangeListener(carelinkFollowListener); + carelinkFollowGracePeriod.setOnPreferenceChangeListener(carelinkFollowListener); + carelinkFollowMissedPollInterval.setOnPreferenceChangeListener(carelinkFollowListener); } catch (Exception e) { // } @@ -1290,6 +1296,8 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.removePreference(carelinkFollowUser); collectionCategory.removePreference(carelinkFollowPass); collectionCategory.removePreference(carelinkFollowCountry); + collectionCategory.removePreference(carelinkFollowGracePeriod); + collectionCategory.removePreference(carelinkFollowMissedPollInterval); } catch (Exception e) { // } @@ -1625,6 +1633,8 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.removePreference(carelinkFollowCountry); collectionCategory.removePreference(carelinkFollowPass); collectionCategory.removePreference(carelinkFollowUser); + collectionCategory.removePreference(carelinkFollowGracePeriod); + collectionCategory.removePreference(carelinkFollowMissedPollInterval); } catch (Exception e) { // } diff --git a/app/src/main/res/xml/pref_data_source.xml b/app/src/main/res/xml/pref_data_source.xml index 71d094e8fd..7e1ee2f85f 100644 --- a/app/src/main/res/xml/pref_data_source.xml +++ b/app/src/main/res/xml/pref_data_source.xml @@ -207,6 +207,13 @@ android:summary="Login password for Dex Share Following" android:title="Share Password" /> + Date: Mon, 5 Sep 2022 18:20:48 +0200 Subject: [PATCH 039/982] Declare as dataSync service in Manifest --- app/src/main/AndroidManifest.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3ff3df178b..1c7d915b1e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -733,7 +733,9 @@ - + Date: Mon, 5 Sep 2022 18:20:58 +0200 Subject: [PATCH 040/982] Display polling details in MegaStatus --- .../dexdrip/cgm/carelinkfollow/CareLinkFollowService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java index 6a480fd012..cb3b29cd6e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java @@ -231,6 +231,9 @@ public static List megaStatus() { megaStatus.add(new StatusItem("Latest BG", ageLastBg + (lastBg != null ? " ago" : ""), bgAgeHighlight)); megaStatus.add(new StatusItem("BG receive delay", ageOfBgLastPoll, ageOfLastBgPollHighlight)); + megaStatus.add(new StatusItem("Data period:", JoH.niceTimeScalar(SAMPLE_PERIOD))); + megaStatus.add(new StatusItem("Grace period:", JoH.niceTimeScalar(getGraceMillis()))); + megaStatus.add(new StatusItem("Missed poll interval:", JoH.niceTimeScalar(getMissedIntervalMillis()))); megaStatus.add(new StatusItem()); megaStatus.add(new StatusItem("Last poll", lastPoll > 0 ? JoH.niceTimeScalar(JoH.msSince(lastPoll)) + " ago" : "n/a")); megaStatus.add(new StatusItem("Last wakeup", last_wakeup > 0 ? JoH.niceTimeScalar(JoH.msSince(last_wakeup)) + " ago" : "n/a")); @@ -238,6 +241,7 @@ public static List megaStatus() { if (lastBg != null) { megaStatus.add(new StatusItem("Last BG time", JoH.dateTimeText(lastBg.timestamp))); } + megaStatus.add(new StatusItem("Last poll time", lastPoll > 0 ? JoH.dateTimeText(lastPoll) : "n/a")); megaStatus.add(new StatusItem("Next poll time", JoH.dateTimeText(wakeup_time))); megaStatus.add(new StatusItem()); megaStatus.add(new StatusItem("Buggy Samsung", JoH.buggy_samsung ? "Yes" : "No")); From 1c5405afe2f7dbd009715dcb894e1bba3eeb624f Mon Sep 17 00:00:00 2001 From: benceszasz Date: Mon, 5 Sep 2022 18:21:08 +0200 Subject: [PATCH 041/982] Correction in renames of Connect to CareLink --- app/src/main/res/values/strings.xml | 20 ++++++++------ app/src/main/res/xml/pref_data_source.xml | 32 ++++++++++++++--------- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ec29933799..071097a5d5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1329,14 +1329,18 @@ Nightscout Follow URL Also download treatments from Nightscout as follower Download Treatments - CareLink Username - CareLink login username - CareLink Password - CareLink login password - CareLink Country - Select your CareLink country. - CareLink Language - CareLink language code + CareLink Username + CareLink login username + CareLink Password + CareLink login password + CareLink Country + Select your CareLink country. + CareLink Language + CareLink language code + Grace Period + Grace period for data request in seconds + Missed data poll interval + Polling interval after missed data in minutes OB1 G5/G6 Collector Settings Complete re-write, should work on Android 4.4 - 9, supports native mode and more Use the OB1 Collector diff --git a/app/src/main/res/xml/pref_data_source.xml b/app/src/main/res/xml/pref_data_source.xml index 7e1ee2f85f..17e2136284 100644 --- a/app/src/main/res/xml/pref_data_source.xml +++ b/app/src/main/res/xml/pref_data_source.xml @@ -220,24 +220,32 @@ android:key="clfollow_user" android:maxLines="1" android:singleLine="true" - android:summary="@string/summary_connectfollow_user" - android:title="@string/title_connectfollow_user" /> + android:summary="@string/summary_clfollow_user" + android:title="@string/title_clfollow_user" /> - - + android:summary="@string/summary_clfollow_pass" + android:title="@string/title_clfollow_pass" /> + + Date: Mon, 5 Sep 2022 18:21:18 +0200 Subject: [PATCH 042/982] Use simple UUID --- .../cgm/carelinkfollow/CareLinkDataProcessor.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 3baa3a3d73..7c1f6d40a6 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.UUID; import static com.eveningoutpost.dexdrip.Models.BgReading.SPECIAL_FOLLOWER_PLACEHOLDER; @@ -26,9 +27,7 @@ public class CareLinkDataProcessor { private static final String TAG = "ConnectFollowDP"; private static final boolean D = false; - private static final String UUID_CF_PREFIX = "1"; - private static final String UUID_BG_PREFIX = "1"; - private static final String EPOCH_0_YEAR = "1970"; + private static final String SOURCE_CARELINK_FOLLOW = "CareLink Follow"; static synchronized void processData(final RecentData recentData, final boolean live) { @@ -104,11 +103,11 @@ static synchronized void processData(final RecentData recentData, final boolean bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; bg.filtered_data = (double) sg.sg; bg.noise = ""; - bg.uuid = UUID_CF_PREFIX + UUID_BG_PREFIX + String.valueOf(bg.timestamp); + bg.uuid = UUID.randomUUID().toString(); bg.calculated_value_slope = 0; bg.sensor = sensor; bg.sensor_uuid = sensor.uuid; - bg.source_info = "Connect Follow"; + bg.source_info = SOURCE_CARELINK_FOLLOW; bg.save(); bg.find_slope(); Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); From b023297d94d43d3b7db194dfd45b10dbd3b4ad11 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Mon, 5 Sep 2022 18:22:11 +0200 Subject: [PATCH 043/982] Data processor coding correction --- .../dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 7c1f6d40a6..08068949a8 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -60,7 +60,7 @@ static synchronized void processData(final RecentData recentData, final boolean filteredSgList = new ArrayList<>(); for (SensorGlucose sg : recentData.sgs) { //SG DateTime is null (sensor expired?) - if (sg != null & sg.datetimeAsDate != null) { + if (sg != null && sg.datetimeAsDate != null) { filteredSgList.add(sg); } } From b7ae81ce6c73574fd0d7e4d7da5f3bc6170c24a3 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Wed, 7 Sep 2022 16:08:39 +0200 Subject: [PATCH 044/982] Download and process finger BGs from CareLink --- .../carelinkfollow/CareLinkDataProcessor.java | 65 ++++++++++++++++++- .../dexdrip/utils/Preferences.java | 7 ++ app/src/main/res/values/strings.xml | 2 + app/src/main/res/xml/pref_data_source.xml | 5 ++ 4 files changed, 76 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 08068949a8..a5c8eface5 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -1,15 +1,19 @@ package com.eveningoutpost.dexdrip.cgm.carelinkfollow; import com.eveningoutpost.dexdrip.Models.BgReading; +import com.eveningoutpost.dexdrip.Models.BloodTest; import com.eveningoutpost.dexdrip.Models.Sensor; import com.eveningoutpost.dexdrip.Models.UserError; import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; +import com.eveningoutpost.dexdrip.UtilityModels.Pref; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectData; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Marker; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.SensorGlucose; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; import java.util.UUID; @@ -33,6 +37,7 @@ public class CareLinkDataProcessor { static synchronized void processData(final RecentData recentData, final boolean live) { List filteredSgList; + List filteredMarkerList; UserError.Log.d(TAG, "Start processsing data..."); @@ -50,7 +55,7 @@ static synchronized void processData(final RecentData recentData, final boolean return; } - //1 - SENSOR GLUCOSE (if available + //SENSOR GLUCOSE (if available) if (recentData.sgs != null) { final BgReading lastBg = BgReading.lastNoSenssor(); @@ -139,9 +144,63 @@ static synchronized void processData(final RecentData recentData, final boolean } } - //2) Markers (if available) - if(recentData.markers != null){ + //MARKERS (if available) + if (recentData.markers != null) { + + //Filter, correct markers + filteredMarkerList = new ArrayList<>(); + for (Marker marker : recentData.markers) { + if (marker != null) { + if (marker.type != null) { + //Try to determine correct date/time + try { + if (marker.dateTime == null) + marker.dateTime = calcTimeByIndex(recentData.dLastSensorTime, marker.index, true); + } catch (Exception ex) { + UserError.Log.d(TAG, "Time calculation error!"); + continue; + } + //Add filtered marker ith correct date/time + if (marker.dateTime != null) + filteredMarkerList.add(marker); + } + } + } + + if(filteredMarkerList.size() > 0) { + //sort markers by time + Collections.sort(filteredMarkerList, (o1, o2) -> o1.dateTime.compareTo(o2.dateTime)); + + //process markers one-by-one + for (Marker marker : filteredMarkerList) { + + //FINGER BG + if (marker.isBloodGlucose() && Pref.getBooleanDefaultFalse("clfollow_download_finger_bgs")) { + //check required values + if (marker.value != null && !marker.value.equals(0)) { + //new blood test + if (BloodTest.getForPreciseTimestamp(marker.dateTime.getTime(), 10000) == null) { + BloodTest.create(marker.dateTime.getTime(), marker.value, SOURCE_CARELINK_FOLLOW); + } + } + } + + } + } } + + } + + //Calculate DateTime using graph index (1 index = 5 minute) + protected static Date calcTimeByIndex(Date lastSensorTime, int index, boolean round){ + if(lastSensorTime == null) + return null; + else if(round) + //round to 10 minutes + return new Date((Math.round((calcTimeByIndex(lastSensorTime,index,false).getTime()) / 600_000D) * 600_000L)); + else + return new Date((lastSensorTime.getTime() - ((287 - index) * 300_000L))); } + } \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java index a98d5de0d9..e586c0f9a1 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java @@ -1265,6 +1265,8 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { final Preference carelinkFollowCountry = findPreference("clfollow_country"); final Preference carelinkFollowGracePeriod = findPreference("clfollow_grace_period"); final Preference carelinkFollowMissedPollInterval = findPreference("clfollow_missed_poll_interval"); + final Preference carelinkFollowDownloadFingerBGs = findPreference("clfollow_download_finger_bgs"); + //Add CL prefs for CLFollower if (collectionType == DexCollectionType.CLFollow) { //Add CL prefs collectionCategory.addPreference(carelinkFollowUser); @@ -1272,6 +1274,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.addPreference(carelinkFollowCountry); collectionCategory.addPreference(carelinkFollowGracePeriod); collectionCategory.addPreference(carelinkFollowMissedPollInterval); + collectionCategory.addPreference(carelinkFollowDownloadFingerBGs); //Create prefChange handler final Preference.OnPreferenceChangeListener carelinkFollowListener = new Preference.OnPreferenceChangeListener() { @Override @@ -1291,6 +1294,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { } catch (Exception e) { // } + //Remove CL prefs for NON CLFollower } else { try { collectionCategory.removePreference(carelinkFollowUser); @@ -1298,6 +1302,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.removePreference(carelinkFollowCountry); collectionCategory.removePreference(carelinkFollowGracePeriod); collectionCategory.removePreference(carelinkFollowMissedPollInterval); + collectionCategory.removePreference(carelinkFollowDownloadFingerBGs); } catch (Exception e) { // } @@ -1628,6 +1633,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { } } + //Remove CL prefs for NON CLFollower if (collectionType != DexCollectionType.CLFollow) { try { collectionCategory.removePreference(carelinkFollowCountry); @@ -1635,6 +1641,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.removePreference(carelinkFollowUser); collectionCategory.removePreference(carelinkFollowGracePeriod); collectionCategory.removePreference(carelinkFollowMissedPollInterval); + collectionCategory.removePreference(carelinkFollowDownloadFingerBGs); } catch (Exception e) { // } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 071097a5d5..d1159172bf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1341,6 +1341,8 @@ Grace period for data request in seconds Missed data poll interval Polling interval after missed data in minutes + Finger BGs + Download finger BGs from CareLink OB1 G5/G6 Collector Settings Complete re-write, should work on Android 4.4 - 9, supports native mode and more Use the OB1 Collector diff --git a/app/src/main/res/xml/pref_data_source.xml b/app/src/main/res/xml/pref_data_source.xml index 17e2136284..0c29cac0c1 100644 --- a/app/src/main/res/xml/pref_data_source.xml +++ b/app/src/main/res/xml/pref_data_source.xml @@ -246,6 +246,11 @@ android:singleLine="true" android:summary="@string/summary_clfollow_missed_poll_interval" android:title="@string/title_clfollow_missed_poll_interval" /> + Date: Thu, 8 Sep 2022 09:09:11 +0200 Subject: [PATCH 045/982] Download and process treatments (insulin, carbs) from CareLink --- .../dexdrip/Models/Treatments.java | 8 +++ .../carelinkfollow/CareLinkDataProcessor.java | 61 +++++++++++++++++++ .../dexdrip/utils/Preferences.java | 7 +++ app/src/main/res/values/strings.xml | 4 ++ app/src/main/res/xml/pref_data_source.xml | 10 +++ 5 files changed, 90 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/Models/Treatments.java b/app/src/main/java/com/eveningoutpost/dexdrip/Models/Treatments.java index 62637fe625..fcb96d3d74 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/Models/Treatments.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/Models/Treatments.java @@ -573,6 +573,14 @@ public static Treatments byTimestamp(long timestamp, int plus_minus_millis) { .executeSingle(); } + public static List listByTimestamp(long timestamp) { + return new Select() + .from(Treatments.class) + .where("timestamp = ?", timestamp) + .orderBy("timestamp desc") + .execute(); + } + public static void delete_all() { delete_all(false); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index a5c8eface5..5b57d62428 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -1,8 +1,10 @@ package com.eveningoutpost.dexdrip.cgm.carelinkfollow; +import com.eveningoutpost.dexdrip.Home; import com.eveningoutpost.dexdrip.Models.BgReading; import com.eveningoutpost.dexdrip.Models.BloodTest; import com.eveningoutpost.dexdrip.Models.Sensor; +import com.eveningoutpost.dexdrip.Models.Treatments; import com.eveningoutpost.dexdrip.Models.UserError; import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; import com.eveningoutpost.dexdrip.UtilityModels.Pref; @@ -18,6 +20,7 @@ import java.util.UUID; import static com.eveningoutpost.dexdrip.Models.BgReading.SPECIAL_FOLLOWER_PLACEHOLDER; +import static com.eveningoutpost.dexdrip.Models.Treatments.pushTreatmentSyncToWatch; /** @@ -184,6 +187,49 @@ static synchronized void processData(final RecentData recentData, final boolean BloodTest.create(marker.dateTime.getTime(), marker.value, SOURCE_CARELINK_FOLLOW); } } + + //INSULIN, MEAL => Treatment + } else if ((marker.type.equals(Marker.MARKER_TYPE_INSULIN) && Pref.getBooleanDefaultFalse("clfollow_download_boluses")) + || (marker.type.equals(Marker.MARKER_TYPE_MEAL) && Pref.getBooleanDefaultFalse("clfollow_download_meals"))) { + + //insulin, meal only for pumps (not value in case of GC) + if (recentData.isNGP()) { + + final Treatments t; + double carbs = 0; + double insulin = 0; + + //Extract treament infos (carbs, insulin) + //Insulin + if (marker.type.equals(Marker.MARKER_TYPE_INSULIN)) { + carbs = 0; + if (marker.deliveredExtendedAmount != null && marker.deliveredFastAmount != null) { + insulin = marker.deliveredExtendedAmount + marker.deliveredFastAmount; + } + //SKIP if insulin = 0 + if (insulin == 0) continue; + //Carbs + } else if (marker.type.equals(Marker.MARKER_TYPE_MEAL)) { + if (marker.amount != null) { + carbs = marker.amount; + } + insulin = 0; + //SKIP if carbs = 0 + if (carbs == 0) continue; + } + + //new Treatment + if (newTreatment(carbs, insulin, marker.dateTime.getTime())) { + t = Treatments.create(carbs, insulin, marker.dateTime.getTime()); + if (t != null) { + t.enteredBy = SOURCE_CARELINK_FOLLOW; + t.save(); + if (Home.get_show_wear_treatments()) + pushTreatmentSyncToWatch(t, true); + } + } + } + } } @@ -203,4 +249,19 @@ else if(round) return new Date((lastSensorTime.getTime() - ((287 - index) * 300_000L))); } + //Check if treatment is new (no identical entry (timestamp, carbs, insulin) exists) + protected static boolean newTreatment(double carbs, double insulin, long timestamp){ + + List treatmentsList; + //Treatment with same timestamp and carbs + insulin exists? + treatmentsList = Treatments.listByTimestamp(timestamp); + if(treatmentsList != null) { + for (Treatments treatments : treatmentsList) { + if (treatments.carbs == carbs && treatments.insulin == insulin) + return false; + } + } + return true; + } + } \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java index e586c0f9a1..e3434f811f 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java @@ -1266,6 +1266,8 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { final Preference carelinkFollowGracePeriod = findPreference("clfollow_grace_period"); final Preference carelinkFollowMissedPollInterval = findPreference("clfollow_missed_poll_interval"); final Preference carelinkFollowDownloadFingerBGs = findPreference("clfollow_download_finger_bgs"); + final Preference carelinkFollowDownloadBoluses = findPreference("clfollow_download_boluses"); + final Preference carelinkFollowDownloadMeals = findPreference("clfollow_download_meals"); //Add CL prefs for CLFollower if (collectionType == DexCollectionType.CLFollow) { //Add CL prefs @@ -1275,6 +1277,8 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.addPreference(carelinkFollowGracePeriod); collectionCategory.addPreference(carelinkFollowMissedPollInterval); collectionCategory.addPreference(carelinkFollowDownloadFingerBGs); + collectionCategory.addPreference(carelinkFollowDownloadBoluses); + collectionCategory.addPreference(carelinkFollowDownloadMeals); //Create prefChange handler final Preference.OnPreferenceChangeListener carelinkFollowListener = new Preference.OnPreferenceChangeListener() { @Override @@ -1303,6 +1307,8 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.removePreference(carelinkFollowGracePeriod); collectionCategory.removePreference(carelinkFollowMissedPollInterval); collectionCategory.removePreference(carelinkFollowDownloadFingerBGs); + collectionCategory.removePreference(carelinkFollowDownloadBoluses); + collectionCategory.removePreference(carelinkFollowDownloadMeals); } catch (Exception e) { // } @@ -1642,6 +1648,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.removePreference(carelinkFollowGracePeriod); collectionCategory.removePreference(carelinkFollowMissedPollInterval); collectionCategory.removePreference(carelinkFollowDownloadFingerBGs); + collectionCategory.removePreference(carelinkFollowDownloadMeals); } catch (Exception e) { // } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d1159172bf..d87448149b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1343,6 +1343,10 @@ Polling interval after missed data in minutes Finger BGs Download finger BGs from CareLink + Boluses + Download boluses from CareLink + Meals + Download meals from CareLink OB1 G5/G6 Collector Settings Complete re-write, should work on Android 4.4 - 9, supports native mode and more Use the OB1 Collector diff --git a/app/src/main/res/xml/pref_data_source.xml b/app/src/main/res/xml/pref_data_source.xml index 0c29cac0c1..5be1209fa7 100644 --- a/app/src/main/res/xml/pref_data_source.xml +++ b/app/src/main/res/xml/pref_data_source.xml @@ -251,6 +251,16 @@ android:key="clfollow_download_finger_bgs" android:summary="@string/summary_clfollow_download_finger_bgs" android:title="@string/title_clfollow_download_finger_bgs" /> + + Date: Thu, 8 Sep 2022 09:09:44 +0200 Subject: [PATCH 046/982] Optimize SG processing logic --- .../carelinkfollow/CareLinkDataProcessor.java | 82 ++++++++----------- 1 file changed, 33 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 5b57d62428..9aee0881e3 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -83,65 +83,49 @@ static synchronized void processData(final RecentData recentData, final boolean for (final SensorGlucose sg : filteredSgList) { - //Not NULL SG (shouldn't happen?!) - if (sg != null) { - - //Not NULL DATETIME (sensorchange?) - if (sg.datetimeAsDate != null) { - - //Not EPOCH 0 (warmup?) - if (sg.datetimeAsDate.getTime() > 1) { - - //Not 0 SG (not calibrated?) - if (sg.sg > 0) { - - //newer than last BG - if (sg.datetimeAsDate.getTime() > lastBgTimestamp) { - - if (sg.datetimeAsDate.getTime() > 0) { - - final BgReading existing = BgReading.getForPreciseTimestamp(sg.datetimeAsDate.getTime(), 10_000); - if (existing == null) { - UserError.Log.d(TAG, "NEW NEW NEW New entry: " + sg.toS()); - - if (live) { - final BgReading bg = new BgReading(); - bg.timestamp = sg.datetimeAsDate.getTime(); - bg.calculated_value = (double) sg.sg; - bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; - bg.filtered_data = (double) sg.sg; - bg.noise = ""; - bg.uuid = UUID.randomUUID().toString(); - bg.calculated_value_slope = 0; - bg.sensor = sensor; - bg.sensor_uuid = sensor.uuid; - bg.source_info = SOURCE_CARELINK_FOLLOW; - bg.save(); - bg.find_slope(); - Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); - } - } else { - //existing entry, not needed - } - } else { - UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); + //Not EPOCH 0 (warmup?) + if (sg.datetimeAsDate.getTime() > 1) { + + //Not 0 SG (not calibrated?) + if (sg.sg > 0) { + + //newer than last BG + if (sg.datetimeAsDate.getTime() > lastBgTimestamp) { + + if (sg.datetimeAsDate.getTime() > 0) { + + //New entry + if (BgReading.getForPreciseTimestamp(sg.datetimeAsDate.getTime(), 10_000) == null) { + UserError.Log.d(TAG, "NEW NEW NEW New entry: " + sg.toS()); + + if (live) { + final BgReading bg = new BgReading(); + bg.timestamp = sg.datetimeAsDate.getTime(); + bg.calculated_value = (double) sg.sg; + bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; + bg.filtered_data = (double) sg.sg; + bg.noise = ""; + bg.uuid = UUID.randomUUID().toString(); + bg.calculated_value_slope = 0; + bg.sensor = sensor; + bg.sensor_uuid = sensor.uuid; + bg.source_info = SOURCE_CARELINK_FOLLOW; + bg.save(); + bg.find_slope(); + Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); } } - } else { - UserError.Log.d(TAG, "SG is 0 (calibration missed?)"); + UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); } - - } else { - UserError.Log.d(TAG, "SG DateTime is 0 (warmup phase?)"); } } else { - UserError.Log.d(TAG, "SG DateTime is null (sensor expired?)"); + UserError.Log.d(TAG, "SG is 0 (calibration missed?)"); } } else { - UserError.Log.d(TAG, "SG Entry is null!!!"); + UserError.Log.d(TAG, "SG DateTime is 0 (warmup phase?)"); } } } From 0317ed98c573124f426b278b4e6145b76c0d7c21 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Fri, 9 Sep 2022 22:28:55 +0200 Subject: [PATCH 047/982] Catch exception at CareLink data download --- .../cgm/carelinkfollow/CareLinkFollowDownloader.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java index 6a897f6204..e583ceadbd 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java @@ -131,8 +131,13 @@ private void processConnectData() { //Try twice in case of 401 error for(int i = 0; i < 2; i++) { - recentData = getCareLinkClient().getRecentData(); - lastResponseCode = carelinkClient.getLastResponseCode(); + + try { + recentData = getCareLinkClient().getRecentData(); + lastResponseCode = carelinkClient.getLastResponseCode(); + } catch (Exception e) { + UserError.Log.e(TAG, "Got exception for CareLink data download" + e); + } //Got recent data if (carelinkClient.getLastDataSuccess()) { From aa0ef0d5ad9e3c7cdc158f3cfb77b13393c02659 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Tue, 13 Sep 2022 12:39:36 +0200 Subject: [PATCH 048/982] Clean for-each loops --- .../cgm/carelinkfollow/client/CareLinkClient.java | 8 ++++---- .../client/SimpleOkHttpCookieJar.java | 15 ++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java index bd4c164b0c..947649cbdd 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java @@ -502,15 +502,15 @@ protected void addHttpHeaders(Request.Builder requestBuilder, RequestType type) } - protected void correctTimeInRecentData(RecentData recentData){ + protected void correctTimeInRecentData(RecentData recentData) { boolean timezoneMissing = false; String offsetString = null; - if(recentData.sMedicalDeviceTime != null && !recentData.sMedicalDeviceTime.isEmpty() && recentData.lastMedicalDeviceDataUpdateServerTime > 1) { + if (recentData.sMedicalDeviceTime != null && !recentData.sMedicalDeviceTime.isEmpty() && recentData.lastMedicalDeviceDataUpdateServerTime > 1) { //MedicalDeviceTime string has no timezone information - if(parseDateString(recentData.sMedicalDeviceTime) == null) { + if (parseDateString(recentData.sMedicalDeviceTime) == null) { timezoneMissing = true; @@ -541,7 +541,7 @@ protected void correctTimeInRecentData(RecentData recentData){ } //Timezone was present => check if time needs correction - if(!timezoneMissing) { + if (!timezoneMissing) { //Calc time diff between event time and actual local time int diffInHour = (int) Math.round(((recentData.lastMedicalDeviceDataUpdateServerTime - recentData.dMedicalDeviceTime.getTime()) / 3600000D)); diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java index 6f9c08d369..2401e3fe7b 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java @@ -13,7 +13,8 @@ public class SimpleOkHttpCookieJar implements CookieJar { @Override public void saveFromResponse(HttpUrl url, List cookies) { - storage.addAll(cookies); + if (cookies != null && cookies.size() > 0) + storage.addAll(cookies); } @Override @@ -25,9 +26,9 @@ public List loadForRequest(HttpUrl url) { removeExpiredCookies(); // Only return matching Cookies - for (int i = 0; i < storage.size(); i++) { - if(storage.get(i).matches(url)) { - cookies.add(storage.get(i)); + for (Cookie cookie : storage) { + if(cookie.matches(url)) { + cookies.add(cookie); } } @@ -42,9 +43,9 @@ public List getCookies(String name) { removeExpiredCookies(); // Only return matching Cookies - for (int i = 0; i < storage.size(); i++) { - if(storage.get(i).name().equals(name)) { - cookies.add(storage.get(i)); + for (Cookie cookie : storage) { + if(cookie.name().equals(name)) { + cookies.add(cookie); } } From 028320aa4fe7b61b7432c620a3ed86a81dcd0e5f Mon Sep 17 00:00:00 2001 From: benceszasz Date: Tue, 13 Sep 2022 12:39:48 +0200 Subject: [PATCH 049/982] Download notifications from CareLink --- .../carelinkfollow/CareLinkDataProcessor.java | 100 ++++++++++++++++++ .../dexdrip/utils/Preferences.java | 4 + app/src/main/res/values/strings.xml | 2 + app/src/main/res/xml/pref_data_source.xml | 5 + 4 files changed, 111 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 9aee0881e3..d0058c9fe7 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -3,15 +3,20 @@ import com.eveningoutpost.dexdrip.Home; import com.eveningoutpost.dexdrip.Models.BgReading; import com.eveningoutpost.dexdrip.Models.BloodTest; +import com.eveningoutpost.dexdrip.Models.DateUtil; import com.eveningoutpost.dexdrip.Models.Sensor; import com.eveningoutpost.dexdrip.Models.Treatments; import com.eveningoutpost.dexdrip.Models.UserError; import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; import com.eveningoutpost.dexdrip.UtilityModels.Pref; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ActiveNotification; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Alarm; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ClearedNotification; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectData; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Marker; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.SensorGlucose; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.TextMap; import java.util.ArrayList; import java.util.Collections; @@ -220,6 +225,37 @@ static synchronized void processData(final RecentData recentData, final boolean } } + + // LAST ALARM -> NOTE (only for GC) + if (Pref.getBooleanDefaultFalse("clfollow_download_notifications")) { + + // Only Guardian Connect, NGP has all in notifications + if (recentData.isGM() && recentData.lastAlarm != null) { + //Add notification from alarm + if (recentData.lastAlarm.datetime != null && recentData.lastAlarm.kind != null) + addNotification(recentData.lastAlarm.datetime, recentData.getDeviceFamily(), recentData.lastAlarm); + } + } + + + //NOTIFICATIONS -> NOTE + if (Pref.getBooleanDefaultFalse("clfollow_download_notifications")) { + if (recentData.notificationHistory != null) { + //Active Notifications + if (recentData.notificationHistory.activeNotifications != null) { + for (ActiveNotification activeNotification : recentData.notificationHistory.activeNotifications) { + addNotification(activeNotification.dateTime, recentData.getDeviceFamily(), activeNotification.messageId, activeNotification.faultId); + } + } + //Cleared Notifications + if (recentData.notificationHistory.clearedNotifications != null) { + for (ClearedNotification clearedNotification : recentData.notificationHistory.clearedNotifications) { + addNotification(clearedNotification.triggeredDateTime, recentData.getDeviceFamily(), clearedNotification.messageId, clearedNotification.faultId); + } + } + } + } + } //Calculate DateTime using graph index (1 index = 5 minute) @@ -248,4 +284,68 @@ protected static boolean newTreatment(double carbs, double insulin, long timesta return true; } + + //Create notification from CareLink messageId + protected static boolean addNotification(Date date, String deviceFamily, String messageId, int faultId){ + + if(deviceFamily != null && messageId != null) + return addNotification(date, TextMap.getNotificationMessage(deviceFamily, messageId, faultId)); + else + return false; + + } + + //Create notification from CareLink Alarm + protected static boolean addNotification(Date date, String deviceFamily, Alarm alarm){ + + if(deviceFamily != null && alarm != null && alarm.kind != null) + return addNotification(date, TextMap.getAlarmMessage(deviceFamily, alarm)); + else + return false; + + } + + //Create notification from CareLink note info + protected static boolean addNotification(Date date, String noteText){ + + //Valid date + if(date != null && noteText != null) { + //New note + if (newNote(noteText, date.getTime())) { + //create_note in Treatment is not good, because of automatic link to other treatments in 5 mins range + Treatments note = new Treatments(); + note.notes = noteText; + note.timestamp = date.getTime(); + note.created_at = DateUtil.toISOString(note.timestamp); + note.uuid = UUID.randomUUID().toString(); + note.enteredBy = SOURCE_CARELINK_FOLLOW; + note.save(); + if (Home.get_show_wear_treatments()) + pushTreatmentSyncToWatch(note, true); + return true; + } + } + + return false; + + } + + + //Check note is new + protected static boolean newNote(String note, long timestamp){ + + List treatmentsList; + //Treatment with same timestamp and note text exists? + treatmentsList = Treatments.listByTimestamp(timestamp); + if(treatmentsList != null) { + for (Treatments treatments : treatmentsList) { + if (treatments.notes.contains(note)) + return false; + } + } + + return true; + + } + } \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java index e3434f811f..591fe156c1 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java @@ -1268,6 +1268,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { final Preference carelinkFollowDownloadFingerBGs = findPreference("clfollow_download_finger_bgs"); final Preference carelinkFollowDownloadBoluses = findPreference("clfollow_download_boluses"); final Preference carelinkFollowDownloadMeals = findPreference("clfollow_download_meals"); + final Preference carelinkFollowDownloadNotifications = findPreference("clfollow_download_notifications"); //Add CL prefs for CLFollower if (collectionType == DexCollectionType.CLFollow) { //Add CL prefs @@ -1279,6 +1280,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.addPreference(carelinkFollowDownloadFingerBGs); collectionCategory.addPreference(carelinkFollowDownloadBoluses); collectionCategory.addPreference(carelinkFollowDownloadMeals); + collectionCategory.addPreference(carelinkFollowDownloadNotifications); //Create prefChange handler final Preference.OnPreferenceChangeListener carelinkFollowListener = new Preference.OnPreferenceChangeListener() { @Override @@ -1309,6 +1311,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.removePreference(carelinkFollowDownloadFingerBGs); collectionCategory.removePreference(carelinkFollowDownloadBoluses); collectionCategory.removePreference(carelinkFollowDownloadMeals); + collectionCategory.removePreference(carelinkFollowDownloadNotifications); } catch (Exception e) { // } @@ -1649,6 +1652,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { collectionCategory.removePreference(carelinkFollowMissedPollInterval); collectionCategory.removePreference(carelinkFollowDownloadFingerBGs); collectionCategory.removePreference(carelinkFollowDownloadMeals); + collectionCategory.removePreference(carelinkFollowDownloadNotifications); } catch (Exception e) { // } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d87448149b..9342140c98 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1347,6 +1347,8 @@ Download boluses from CareLink Meals Download meals from CareLink + Notifications + Download notifications from CareLink OB1 G5/G6 Collector Settings Complete re-write, should work on Android 4.4 - 9, supports native mode and more Use the OB1 Collector diff --git a/app/src/main/res/xml/pref_data_source.xml b/app/src/main/res/xml/pref_data_source.xml index 5be1209fa7..e1feb22f90 100644 --- a/app/src/main/res/xml/pref_data_source.xml +++ b/app/src/main/res/xml/pref_data_source.xml @@ -261,6 +261,11 @@ android:key="clfollow_download_meals" android:summary="@string/summary_clfollow_download_meals" android:title="@string/title_clfollow_download_meals" /> + Date: Tue, 13 Sep 2022 12:40:00 +0200 Subject: [PATCH 050/982] Move index based date/time calculation to CareLinkClient --- .../carelinkfollow/CareLinkDataProcessor.java | 29 ++----------------- .../carelinkfollow/client/CareLinkClient.java | 25 ++++++++++++++++ 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index d0058c9fe7..2ef847c1ee 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -140,23 +140,11 @@ static synchronized void processData(final RecentData recentData, final boolean //MARKERS (if available) if (recentData.markers != null) { - //Filter, correct markers + //Filter markers filteredMarkerList = new ArrayList<>(); for (Marker marker : recentData.markers) { - if (marker != null) { - if (marker.type != null) { - //Try to determine correct date/time - try { - if (marker.dateTime == null) - marker.dateTime = calcTimeByIndex(recentData.dLastSensorTime, marker.index, true); - } catch (Exception ex) { - UserError.Log.d(TAG, "Time calculation error!"); - continue; - } - //Add filtered marker ith correct date/time - if (marker.dateTime != null) - filteredMarkerList.add(marker); - } + if (marker != null && marker.type != null && marker.dateTime != null) { + filteredMarkerList.add(marker); } } @@ -258,17 +246,6 @@ static synchronized void processData(final RecentData recentData, final boolean } - //Calculate DateTime using graph index (1 index = 5 minute) - protected static Date calcTimeByIndex(Date lastSensorTime, int index, boolean round){ - if(lastSensorTime == null) - return null; - else if(round) - //round to 10 minutes - return new Date((Math.round((calcTimeByIndex(lastSensorTime,index,false).getTime()) / 600_000D) * 600_000L)); - else - return new Date((lastSensorTime.getTime() - ((287 - index) * 300_000L))); - } - //Check if treatment is new (no identical entry (timestamp, carbs, insulin) exists) protected static boolean newTreatment(double carbs, double insulin, long timestamp){ diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java index 947649cbdd..74025bc7ed 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java @@ -583,6 +583,20 @@ protected void correctTimeInRecentData(RecentData recentData) { } } } + + } + + //Set dateTime of Markers using index if dateTime is missing (Guardian Connect) + if (recentData.dLastSensorTime != null && recentData.markers != null) { + for (Marker marker : recentData.markers) { + if (marker != null && marker.dateTime == null) { + try { + marker.dateTime = calcTimeByIndex(recentData.dLastSensorTime, marker.index, true); + } catch (Exception ex) { + continue; + } + } + } } } @@ -615,4 +629,15 @@ protected Date shiftDateByHours(Date date, int hours){ } } + //Calculate DateTime using graph index (1 index = 5 minute) + protected static Date calcTimeByIndex(Date lastSensorTime, int index, boolean round){ + if(lastSensorTime == null) + return null; + else if(round) + //round to 10 minutes + return new Date((Math.round((calcTimeByIndex(lastSensorTime,index,false).getTime()) / 600_000D) * 600_000L)); + else + return new Date((lastSensorTime.getTime() - ((287 - index) * 300_000L))); + } + } From 48cd4477aebd7ed2f4fea6dc6b17c46ff5809294 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Tue, 13 Sep 2022 12:40:09 +0200 Subject: [PATCH 051/982] Bugfix in prefiltered SG processing --- .../dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 2ef847c1ee..03f0fcff4a 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -84,7 +84,7 @@ static synchronized void processData(final RecentData recentData, final boolean sensor.save(); // place in order of oldest first - Collections.sort(recentData.sgs, (o1, o2) -> o1.datetimeAsDate.compareTo(o2.datetimeAsDate)); + Collections.sort(filteredSgList, (o1, o2) -> o1.datetimeAsDate.compareTo(o2.datetimeAsDate)); for (final SensorGlucose sg : filteredSgList) { From 03c01022cce28ada65006abd3b38b35f0ecffd4e Mon Sep 17 00:00:00 2001 From: benceszasz Date: Tue, 13 Sep 2022 12:40:19 +0200 Subject: [PATCH 052/982] Fix bug CareLinkClient login code --- .../carelinkfollow/client/CareLinkClient.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java index 74025bc7ed..25674ffd23 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java @@ -150,23 +150,32 @@ protected boolean executeLoginProcedure() { lastLoginSuccess = false; + loginInProcess = true; + lastErrorMessage = ""; try { - //TODO handle login errors when occur, check results - //Clear cookies ((SimpleOkHttpCookieJar) this.httpClient.cookieJar()).deleteAllCookies(); + // Clear basic infos + this.sessionUser = null; + this.sessionProfile = null; + this.sessionCountrySettings = null; + this.sessionMonitorData = null; + //Open login (get SessionId and SessionData) loginSessionResponse = this.getLoginSession(); + this.lastResponseCode = loginSessionResponse.code(); //Login doLoginResponse = this.doLogin(loginSessionResponse); + this.lastResponseCode = doLoginResponse.code(); loginSessionResponse.close(); //Consent consentResponse = this.doConsent(doLoginResponse); doLoginResponse.close(); + this.lastResponseCode = consentResponse.code(); consentResponse.close(); // Get basic infos @@ -185,6 +194,9 @@ protected boolean executeLoginProcedure() { // Set login success if everything was ok: if(this.sessionUser != null && this.sessionProfile != null && this.sessionCountrySettings != null && this.sessionMonitorData != null) lastLoginSuccess = true; + //Clear cookies if error occured during logon + else + ((SimpleOkHttpCookieJar) this.httpClient.cookieJar()).deleteAllCookies(); return lastLoginSuccess; @@ -306,6 +318,7 @@ protected String getAuthorizationToken() { .after(new Date(new Date(System.currentTimeMillis()).getTime() + AUTH_EXPIRE_DEADLINE_MINUTES * 60000))) || this.lastResponseCode == 401 + || (!loginInProcess && !this.lastLoginSuccess) ) { //execute new login process if(this.loginInProcess || !this.executeLoginProcedure()) From 168647cf6df4e95de82eb025dba4d6d407475598 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Tue, 13 Sep 2022 12:40:31 +0200 Subject: [PATCH 053/982] Additional renaming to CareLinkFollow --- .../dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java | 4 ++-- .../dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java | 2 +- .../dexdrip/cgm/carelinkfollow/CareLinkFollowService.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index 03f0fcff4a..aa010b4d66 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -29,14 +29,14 @@ /** - * Medtronic CareLink Connect Data Processor + * Medtronic CareLink Data Processor * - process CareLink data and convert to xDrip internal data * - update xDrip internal data */ public class CareLinkDataProcessor { - private static final String TAG = "ConnectFollowDP"; + private static final String TAG = "CareLinkFollowDP"; private static final boolean D = false; private static final String SOURCE_CARELINK_FOLLOW = "CareLink Follow"; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java index e583ceadbd..af93ef0054 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java @@ -15,7 +15,7 @@ import static com.eveningoutpost.dexdrip.Models.JoH.emptyString; /** - * Medtronic CareLink Connect Downloader + * Medtronic CareLink Downloader * - download data from CareLink * - execute data conversion and update xDrip data */ diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java index cb3b29cd6e..acceaa8faa 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java @@ -27,7 +27,7 @@ import static com.eveningoutpost.dexdrip.UtilityModels.BgGraphBuilder.DEXCOM_PERIOD; /** - * Medtronic CareLink Connect Follow Service + * Medtronic CareLink Follow Service * - main service class for managing CareLink Connect data retrieval * - start/stop data retrieval * - provide status infos of follower service From 09e7ce2d3250f8978cd9a965301456d48501b6e7 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Tue, 13 Sep 2022 12:40:39 +0200 Subject: [PATCH 054/982] Optimize error handling and logging in CareLink data download --- .../CareLinkFollowDownloader.java | 81 +++++++++---------- 1 file changed, 37 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java index af93ef0054..0b69dd9d64 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java @@ -36,8 +36,6 @@ public class CareLinkFollowDownloader { private String status; - private long loginBlockedTill = 0; - private long loginBackoff = Constants.MINUTE_IN_MS; private int lastResponseCode = 0; public String getStatus(){ @@ -52,8 +50,6 @@ public String getStatus(){ } public static void resetInstance() { - //retrofit = null; - //service = null; UserError.Log.d(TAG, "Instance reset"); CollectionServiceStarter.restartCollectionServiceBackground(); } @@ -63,7 +59,6 @@ public boolean doEverything( ) { if (D) UserError.Log.e(TAG, "doEverything called"); if (loginDataLooksOkay) { - if (JoH.tsl() > loginBlockedTill) { try { if (getCareLinkClient() != null) { extendWakeLock(30_000); @@ -78,12 +73,8 @@ public boolean doEverything( ) { releaseWakeLock(); return false; } - } else { - UserError.Log.e(TAG, "Not trying to login due to backoff timer for login failures until: " + JoH.dateTimeText(loginBlockedTill)); - return false; - } } else { - final String invalid = "CareLink login data isn't valid!"; + final String invalid = "Invalid CareLink login data!"; msg(invalid); UserError.Log.e(TAG, invalid); if(emptyString(carelinkUsername)){ @@ -122,7 +113,6 @@ private void processConnectData() { RecentData recentData = null; CareLinkClient carelinkClient = null; - loginBackoff = 0; //Get client carelinkClient = getCareLinkClient(); @@ -130,53 +120,56 @@ private void processConnectData() { if (carelinkClient != null) { //Try twice in case of 401 error - for(int i = 0; i < 2; i++) { + for (int i = 0; i < 2; i++) { + //Get data try { recentData = getCareLinkClient().getRecentData(); lastResponseCode = carelinkClient.getLastResponseCode(); } catch (Exception e) { - UserError.Log.e(TAG, "Got exception for CareLink data download" + e); + UserError.Log.e(TAG, "Exception in CareLink data download: " + e); } - //Got recent data - if (carelinkClient.getLastDataSuccess()) { - UserError.Log.d(TAG, "Success get data! Response code: " + carelinkClient.getLastResponseCode()); - try { - if (recentData == null) { - UserError.Log.e(TAG, "Received recent data is empty, nothing to process!"); - msg("Received data is empty!"); - } else { - if (D) UserError.Log.d(TAG, "Start process data"); + //Process data + if (recentData != null) { + UserError.Log.d(TAG, "Success get data!"); + try { + UserError.Log.d(TAG, "Start process data"); //Process CareLink data (conversion and update xDrip data) CareLinkDataProcessor.processData(recentData, true); - if (D) UserError.Log.d(TAG, "ProcessData finished!"); + UserError.Log.d(TAG, "ProcessData finished!"); //Update Service status CareLinkFollowService.updateBgReceiveDelay(); - if (D) UserError.Log.d(TAG, "UpdateBgReceiveDelay finished!"); msg(null); + } catch (Exception e) { + UserError.Log.e(TAG, "Exception in data processing: " + e); + msg("Data processing error!"); + } + //Data receive error + } else { + //first 401 error => TRY AGAIN, only debug log + if (carelinkClient.getLastResponseCode() == 401 && i == 0) { + UserError.Log.d(TAG, "Try get data again due to 401 response code." + getCareLinkClient().getLastErrorMessage()); + //second 401 error => unauthorized error + } else if (carelinkClient.getLastResponseCode() == 401) { + UserError.Log.e(TAG, "CareLink login error! Response code: " + carelinkClient.getLastResponseCode()); + msg("Login error!"); + //login error + } else if (!getCareLinkClient().getLastLoginSuccess()){ + UserError.Log.e(TAG, "CareLink login error! Response code: " + carelinkClient.getLastResponseCode()); + UserError.Log.e(TAG, "Error message: " + getCareLinkClient().getLastErrorMessage()); + msg("Login error!"); + //other error in download + } else { + UserError.Log.e(TAG, "CareLink download error! Response code: " + carelinkClient.getLastResponseCode()); + UserError.Log.e(TAG, "Error message: " + getCareLinkClient().getLastErrorMessage()); + msg("Data request error!"); } - } catch (Exception e) { - UserError.Log.e(TAG, "Got exception for data update" + e); - } - //Error during data download - } else { - if (!getCareLinkClient().getLastLoginSuccess()) { - UserError.Log.e(TAG, "CareLink login error! Response code: " + carelinkClient.getLastResponseCode()); - loginBackoff += Constants.MINUTE_IN_MS; - loginBlockedTill = JoH.tsl() + loginBackoff; - msg("Login error!"); - } else if (!getCareLinkClient().getLastDataSuccess()) { - UserError.Log.e(TAG, "CareLink download error! Response code: " + carelinkClient.getLastResponseCode()); - UserError.Log.e(TAG, "Error message: " + getCareLinkClient().getLastErrorMessage()); - msg("Data request error!"); } - } - if(carelinkClient.getLastResponseCode() != 401) + //Next try only for 401 error and first attempt + if (!(carelinkClient.getLastResponseCode() == 401 && i == 0)) break; - else - UserError.Log.e(TAG, "Try get data again due to 401 response code." + getCareLinkClient().getLastErrorMessage()); } @@ -190,8 +183,8 @@ private CareLinkClient getCareLinkClient() { try { UserError.Log.d(TAG, "Creating CareLinkClient"); careLinkClient = new CareLinkClient(carelinkUsername, carelinkPassword, carelinkCountry); - } catch (NullPointerException e) { - UserError.Log.e(TAG, "Error creating CareLinkClient"); + } catch (Exception e) { + UserError.Log.e(TAG, "Error creating CareLinkClient", e); } } return careLinkClient; From ea3d56a7e12f65f977455f97ac74575e39e4ddf3 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Mon, 19 Sep 2022 18:13:36 +0200 Subject: [PATCH 055/982] Decline SG entries in the future --- .../carelinkfollow/CareLinkDataProcessor.java | 70 ++++++++++--------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index aa010b4d66..cde37cf947 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -91,46 +91,52 @@ static synchronized void processData(final RecentData recentData, final boolean //Not EPOCH 0 (warmup?) if (sg.datetimeAsDate.getTime() > 1) { - //Not 0 SG (not calibrated?) - if (sg.sg > 0) { - - //newer than last BG - if (sg.datetimeAsDate.getTime() > lastBgTimestamp) { - - if (sg.datetimeAsDate.getTime() > 0) { - - //New entry - if (BgReading.getForPreciseTimestamp(sg.datetimeAsDate.getTime(), 10_000) == null) { - UserError.Log.d(TAG, "NEW NEW NEW New entry: " + sg.toS()); - - if (live) { - final BgReading bg = new BgReading(); - bg.timestamp = sg.datetimeAsDate.getTime(); - bg.calculated_value = (double) sg.sg; - bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; - bg.filtered_data = (double) sg.sg; - bg.noise = ""; - bg.uuid = UUID.randomUUID().toString(); - bg.calculated_value_slope = 0; - bg.sensor = sensor; - bg.sensor_uuid = sensor.uuid; - bg.source_info = SOURCE_CARELINK_FOLLOW; - bg.save(); - bg.find_slope(); - Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); + //Not in the future + if (sg.datetimeAsDate.getTime() < new Date().getTime() + 300_000) { + + //Not 0 SG (not calibrated?) + if (sg.sg > 0) { + + //newer than last BG + if (sg.datetimeAsDate.getTime() > lastBgTimestamp) { + + if (sg.datetimeAsDate.getTime() > 0) { + + //New entry + if (BgReading.getForPreciseTimestamp(sg.datetimeAsDate.getTime(), 10_000) == null) { + UserError.Log.d(TAG, "NEW NEW NEW New entry: " + sg.toS()); + + if (live) { + final BgReading bg = new BgReading(); + bg.timestamp = sg.datetimeAsDate.getTime(); + bg.calculated_value = (double) sg.sg; + bg.raw_data = SPECIAL_FOLLOWER_PLACEHOLDER; + bg.filtered_data = (double) sg.sg; + bg.noise = ""; + bg.uuid = UUID.randomUUID().toString(); + bg.calculated_value_slope = 0; + bg.sensor = sensor; + bg.sensor_uuid = sensor.uuid; + bg.source_info = SOURCE_CARELINK_FOLLOW; + bg.save(); + bg.find_slope(); + Inevitable.task("entry-proc-post-pr", 500, () -> bg.postProcess(false)); + } } + } else { + UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); } - } else { - UserError.Log.e(TAG, "Could not parse a timestamp from: " + sg.toS()); } + + } else { + UserError.Log.d(TAG, "SG is 0 (calibration missed?)"); } } else { - UserError.Log.d(TAG, "SG is 0 (calibration missed?)"); + UserError.Log.d(TAG, "SG DateTime is 0 (warmup phase?)"); } - } else { - UserError.Log.d(TAG, "SG DateTime is 0 (warmup phase?)"); + UserError.Log.d(TAG, "SG DateTime in future: " + sg.datetime); } } } From 6cc7cb757b1e49f87a916adb3978455dde3e867c Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sat, 24 Sep 2022 18:11:00 +0200 Subject: [PATCH 056/982] Code formatting --- .../carelinkfollow/CareLinkDataProcessor.java | 43 +++---- .../CareLinkFollowDownloader.java | 58 ++++----- .../carelinkfollow/CareLinkFollowService.java | 28 ++-- .../carelinkfollow/client/CareLinkClient.java | 120 ++++++++++-------- .../carelinkfollow/client/CountryUtils.java | 4 +- .../client/SimpleOkHttpCookieJar.java | 16 +-- .../cgm/carelinkfollow/message/Alarm.java | 2 +- .../cgm/carelinkfollow/message/Marker.java | 8 +- .../carelinkfollow/message/RecentData.java | 10 +- .../carelinkfollow/message/SensorGlucose.java | 8 +- .../cgm/carelinkfollow/message/TextMap.java | 19 ++- .../cgm/carelinkfollow/message/User.java | 4 +- 12 files changed, 171 insertions(+), 149 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java index cde37cf947..1cab0d7c0e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkDataProcessor.java @@ -12,7 +12,6 @@ import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ActiveNotification; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Alarm; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ClearedNotification; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectData; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Marker; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.SensorGlucose; @@ -30,8 +29,8 @@ /** * Medtronic CareLink Data Processor - * - process CareLink data and convert to xDrip internal data - * - update xDrip internal data + * - process CareLink data and convert to xDrip internal data + * - update xDrip internal data */ public class CareLinkDataProcessor { @@ -74,11 +73,11 @@ static synchronized void processData(final RecentData recentData, final boolean for (SensorGlucose sg : recentData.sgs) { //SG DateTime is null (sensor expired?) if (sg != null && sg.datetimeAsDate != null) { - filteredSgList.add(sg); + filteredSgList.add(sg); } } - if(filteredSgList.size() > 0) { + if (filteredSgList.size() > 0) { final Sensor sensor = Sensor.createDefaultIfMissing(); sensor.save(); @@ -154,7 +153,7 @@ static synchronized void processData(final RecentData recentData, final boolean } } - if(filteredMarkerList.size() > 0) { + if (filteredMarkerList.size() > 0) { //sort markers by time Collections.sort(filteredMarkerList, (o1, o2) -> o1.dateTime.compareTo(o2.dateTime)); @@ -171,7 +170,7 @@ static synchronized void processData(final RecentData recentData, final boolean } } - //INSULIN, MEAL => Treatment + //INSULIN, MEAL => Treatment } else if ((marker.type.equals(Marker.MARKER_TYPE_INSULIN) && Pref.getBooleanDefaultFalse("clfollow_download_boluses")) || (marker.type.equals(Marker.MARKER_TYPE_MEAL) && Pref.getBooleanDefaultFalse("clfollow_download_meals"))) { @@ -191,7 +190,7 @@ static synchronized void processData(final RecentData recentData, final boolean } //SKIP if insulin = 0 if (insulin == 0) continue; - //Carbs + //Carbs } else if (marker.type.equals(Marker.MARKER_TYPE_MEAL)) { if (marker.amount != null) { carbs = marker.amount; @@ -253,25 +252,25 @@ static synchronized void processData(final RecentData recentData, final boolean } //Check if treatment is new (no identical entry (timestamp, carbs, insulin) exists) - protected static boolean newTreatment(double carbs, double insulin, long timestamp){ + protected static boolean newTreatment(double carbs, double insulin, long timestamp) { List treatmentsList; //Treatment with same timestamp and carbs + insulin exists? treatmentsList = Treatments.listByTimestamp(timestamp); - if(treatmentsList != null) { + if (treatmentsList != null) { for (Treatments treatments : treatmentsList) { if (treatments.carbs == carbs && treatments.insulin == insulin) - return false; + return false; } } - return true; + return true; } //Create notification from CareLink messageId - protected static boolean addNotification(Date date, String deviceFamily, String messageId, int faultId){ + protected static boolean addNotification(Date date, String deviceFamily, String messageId, int faultId) { - if(deviceFamily != null && messageId != null) + if (deviceFamily != null && messageId != null) return addNotification(date, TextMap.getNotificationMessage(deviceFamily, messageId, faultId)); else return false; @@ -279,9 +278,9 @@ protected static boolean addNotification(Date date, String deviceFamily, String } //Create notification from CareLink Alarm - protected static boolean addNotification(Date date, String deviceFamily, Alarm alarm){ + protected static boolean addNotification(Date date, String deviceFamily, Alarm alarm) { - if(deviceFamily != null && alarm != null && alarm.kind != null) + if (deviceFamily != null && alarm != null && alarm.kind != null) return addNotification(date, TextMap.getAlarmMessage(deviceFamily, alarm)); else return false; @@ -289,10 +288,10 @@ protected static boolean addNotification(Date date, String deviceFamily, Alarm a } //Create notification from CareLink note info - protected static boolean addNotification(Date date, String noteText){ + protected static boolean addNotification(Date date, String noteText) { //Valid date - if(date != null && noteText != null) { + if (date != null && noteText != null) { //New note if (newNote(noteText, date.getTime())) { //create_note in Treatment is not good, because of automatic link to other treatments in 5 mins range @@ -315,19 +314,19 @@ protected static boolean addNotification(Date date, String noteText){ //Check note is new - protected static boolean newNote(String note, long timestamp){ + protected static boolean newNote(String note, long timestamp) { List treatmentsList; //Treatment with same timestamp and note text exists? treatmentsList = Treatments.listByTimestamp(timestamp); - if(treatmentsList != null) { + if (treatmentsList != null) { for (Treatments treatments : treatmentsList) { if (treatments.notes.contains(note)) - return false; + return false; } } - return true; + return true; } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java index 0b69dd9d64..2a3297b5af 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowDownloader.java @@ -5,19 +5,17 @@ import com.eveningoutpost.dexdrip.Models.JoH; import com.eveningoutpost.dexdrip.Models.UserError; import com.eveningoutpost.dexdrip.UtilityModels.CollectionServiceStarter; -import com.eveningoutpost.dexdrip.UtilityModels.Constants; import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.client.CareLinkClient; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.client.CountryUtils; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectDataResult; import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; import static com.eveningoutpost.dexdrip.Models.JoH.emptyString; /** - * Medtronic CareLink Downloader - * - download data from CareLink - * - execute data conversion and update xDrip data + * CareLink Downloader + * - download data from CareLink + * - execute data conversion and update xDrip data */ public class CareLinkFollowDownloader { @@ -38,7 +36,7 @@ public class CareLinkFollowDownloader { private int lastResponseCode = 0; - public String getStatus(){ + public String getStatus() { return status; } @@ -54,38 +52,38 @@ public static void resetInstance() { CollectionServiceStarter.restartCollectionServiceBackground(); } - public boolean doEverything( ) { + public boolean doEverything() { msg("Start download"); if (D) UserError.Log.e(TAG, "doEverything called"); if (loginDataLooksOkay) { - try { - if (getCareLinkClient() != null) { - extendWakeLock(30_000); - backgroundProcessConnectData(); - } else { - UserError.Log.d(TAG, "Cannot get data as ConnectClient is null"); - return false; - } - return true; - } catch (Exception e) { - UserError.Log.e(TAG, "Got exception in getData() " + e); - releaseWakeLock(); + try { + if (getCareLinkClient() != null) { + extendWakeLock(30_000); + backgroundProcessConnectData(); + } else { + UserError.Log.d(TAG, "Cannot get data as ConnectClient is null"); return false; } + return true; + } catch (Exception e) { + UserError.Log.e(TAG, "Got exception in getData() " + e); + releaseWakeLock(); + return false; + } } else { final String invalid = "Invalid CareLink login data!"; msg(invalid); UserError.Log.e(TAG, invalid); - if(emptyString(carelinkUsername)){ + if (emptyString(carelinkUsername)) { UserError.Log.e(TAG, "CareLink Username empty!"); } - if(emptyString(carelinkPassword)){ + if (emptyString(carelinkPassword)) { UserError.Log.e(TAG, "CareLink Password empty!"); } - if(carelinkCountry == null){ + if (carelinkCountry == null) { UserError.Log.e(TAG, "CareLink Country empty!"); - }else if(!CountryUtils.isSupportedCountry(carelinkCountry)){ + } else if (!CountryUtils.isSupportedCountry(carelinkCountry)) { UserError.Log.e(TAG, "CareLink Country not supported!"); } return false; @@ -145,21 +143,21 @@ private void processConnectData() { UserError.Log.e(TAG, "Exception in data processing: " + e); msg("Data processing error!"); } - //Data receive error + //Data receive error } else { //first 401 error => TRY AGAIN, only debug log if (carelinkClient.getLastResponseCode() == 401 && i == 0) { UserError.Log.d(TAG, "Try get data again due to 401 response code." + getCareLinkClient().getLastErrorMessage()); - //second 401 error => unauthorized error + //second 401 error => unauthorized error } else if (carelinkClient.getLastResponseCode() == 401) { UserError.Log.e(TAG, "CareLink login error! Response code: " + carelinkClient.getLastResponseCode()); msg("Login error!"); - //login error - } else if (!getCareLinkClient().getLastLoginSuccess()){ + //login error + } else if (!getCareLinkClient().getLastLoginSuccess()) { UserError.Log.e(TAG, "CareLink login error! Response code: " + carelinkClient.getLastResponseCode()); UserError.Log.e(TAG, "Error message: " + getCareLinkClient().getLastErrorMessage()); msg("Login error!"); - //other error in download + //other error in download } else { UserError.Log.e(TAG, "CareLink download error! Response code: " + carelinkClient.getLastResponseCode()); UserError.Log.e(TAG, "Error message: " + getCareLinkClient().getLastErrorMessage()); @@ -193,12 +191,12 @@ private CareLinkClient getCareLinkClient() { private static synchronized void extendWakeLock(final long ms) { if (wl == null) { - if (D) UserError.Log.d(TAG,"Creating wakelock"); + if (D) UserError.Log.d(TAG, "Creating wakelock"); wl = JoH.getWakeLock("CLFollow-download", (int) ms); } else { JoH.releaseWakeLock(wl); // lets not get too messy wl.acquire(ms); - if (D) UserError.Log.d(TAG,"Extending wakelock"); + if (D) UserError.Log.d(TAG, "Extending wakelock"); } } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java index acceaa8faa..a09a063f6e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/CareLinkFollowService.java @@ -13,9 +13,9 @@ import com.eveningoutpost.dexdrip.UtilityModels.Inevitable; import com.eveningoutpost.dexdrip.UtilityModels.Pref; import com.eveningoutpost.dexdrip.UtilityModels.StatusItem; +import com.eveningoutpost.dexdrip.utils.DexCollectionType; import com.eveningoutpost.dexdrip.utils.framework.BuggySamsung; import com.eveningoutpost.dexdrip.utils.framework.ForegroundService; -import com.eveningoutpost.dexdrip.utils.DexCollectionType; import com.eveningoutpost.dexdrip.utils.framework.WakeLockTrampoline; import com.eveningoutpost.dexdrip.xdrip; @@ -27,10 +27,10 @@ import static com.eveningoutpost.dexdrip.UtilityModels.BgGraphBuilder.DEXCOM_PERIOD; /** - * Medtronic CareLink Follow Service - * - main service class for managing CareLink Connect data retrieval - * - start/stop data retrieval - * - provide status infos of follower service + * CareLink Follow Service + * - main service class for managing CareLink Connect data retrieval + * - start/stop data retrieval + * - provide status infos of follower service */ public class CareLinkFollowService extends ForegroundService { @@ -97,7 +97,7 @@ private static long getGraceMillis() { } private static long getMissedIntervalMillis() { - if(missedPollInterval == 0) + if (missedPollInterval == 0) return SAMPLE_PERIOD; else return Constants.MINUTE_IN_MS * missedPollInterval; @@ -119,22 +119,22 @@ public static long anticipateNextWakeUp(long now, final long last, final long pe long next; //recent reading (less then data period) => last + period + grace - if((now - last) < period) { + if ((now - last) < period) { next = last + period + grace; } //old reading => anticipated next + grace - else{ + else { //last expected next = now + ((last - now) % period); //add missed poll interval until future time is reached - while(next < now){ + while (next < now) { next += missedInterval; } //add grace next += grace; } - return next; + return next; } @@ -157,9 +157,9 @@ public int onStartCommand(Intent intent, int flags, int startId) { last_wakeup = JoH.tsl(); // Check current - if(gracePeriod == 0) + if (gracePeriod == 0) gracePeriod = Pref.getStringToInt("clfollow_grace_period", 30); - if(missedPollInterval == 0) + if (missedPollInterval == 0) missedPollInterval = Pref.getStringToInt("clfollow_missed_poll_interval", 5); lastBg = BgReading.lastNoSenssor(); if (lastBg != null) { @@ -178,7 +178,7 @@ public int onStartCommand(Intent intent, int flags, int startId) { if (JoH.ratelimit("last-carelink-follow-poll", 5)) { Inevitable.task("CareLink-Follow-Work", 200, () -> { try { - downloader.doEverything( ); + downloader.doEverything(); } catch (NullPointerException e) { UserError.Log.e(TAG, "Caught concurrency exception when trying to run doeverything"); } @@ -241,7 +241,7 @@ public static List megaStatus() { if (lastBg != null) { megaStatus.add(new StatusItem("Last BG time", JoH.dateTimeText(lastBg.timestamp))); } - megaStatus.add(new StatusItem("Last poll time", lastPoll > 0 ? JoH.dateTimeText(lastPoll) : "n/a")); + megaStatus.add(new StatusItem("Last poll time", lastPoll > 0 ? JoH.dateTimeText(lastPoll) : "n/a")); megaStatus.add(new StatusItem("Next poll time", JoH.dateTimeText(wakeup_time))); megaStatus.add(new StatusItem()); megaStatus.add(new StatusItem("Buggy Samsung", JoH.buggy_samsung ? "Yes" : "No")); diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java index 25674ffd23..44aee72f5d 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CareLinkClient.java @@ -1,6 +1,17 @@ package com.eveningoutpost.dexdrip.cgm.carelinkfollow.client; -import android.util.Log; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ActiveNotification; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ClearedNotification; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.CountrySettings; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Marker; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.MonitorData; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Profile; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.SensorGlucose; +import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.User; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; import java.io.IOException; import java.text.SimpleDateFormat; @@ -11,25 +22,18 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import okhttp3.*; - -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ActiveNotification; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ClearedNotification; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectData; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.ConnectDataResult; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.CountrySettings; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Marker; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.MonitorData; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.Profile; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.RecentData; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.SensorGlucose; -import com.eveningoutpost.dexdrip.cgm.carelinkfollow.message.User; -import com.google.gson.*; +import okhttp3.FormBody; +import okhttp3.HttpUrl; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; /** - * Medtronic CareLink Follower Client - * - API client for communication with CareLink + * CareLink Follower Client + * - API client for communication with CareLink */ public class CareLinkClient { protected String carelinkUsername; @@ -55,45 +59,61 @@ public class CareLinkClient { protected OkHttpClient httpClient = null; protected boolean loginInProcess = false; protected int lastResponseCode; + public int getLastResponseCode() { return lastResponseCode; } + private boolean lastLoginSuccess; - public boolean getLastLoginSuccess(){ + + public boolean getLastLoginSuccess() { return lastLoginSuccess; } + private boolean lastDataSuccess; - public boolean getLastDataSuccess(){ + + public boolean getLastDataSuccess() { return lastDataSuccess; } + private String lastErrorMessage; - public String getLastErrorMessage(){ + + public String getLastErrorMessage() { return lastErrorMessage; } + private String lastStackTraceString; - public String getLastStackTraceString(){ + + public String getLastStackTraceString() { return lastStackTraceString; } //Session info protected User sessionUser; + public User getSessionUser() { return sessionUser; } + protected Profile sessionProfile; + public Profile getSessionProfile() { return sessionProfile; } + protected CountrySettings sessionCountrySettings; + public CountrySettings getSessionCountrySettings() { return sessionCountrySettings; } + protected MonitorData sessionMonitorData; + public MonitorData getSessionMonitorData() { return sessionMonitorData; } - protected enum RequestType{ + protected enum RequestType { HtmlGet(), HtmlPost(), Json() @@ -116,7 +136,7 @@ public CareLinkClient(String carelinkUsername, String carelinkPassword, String c } protected String careLinkServer() { - if(this.carelinkCountry.equals("us")) + if (this.carelinkCountry.equals("us")) return CARELINK_CONNECT_SERVER_US; else return CARELINK_CONNECT_SERVER_EU; @@ -127,16 +147,15 @@ protected String careLinkServer() { public RecentData getRecentData() { // Force login to get basic info - if(getAuthorizationToken() != null) { + if (getAuthorizationToken() != null) { //New BLE Endpoint (for all US calls and all BLE devices) if (CountryUtils.isUS(carelinkCountry) || sessionMonitorData.isBle()) return this.getConnectDisplayMessage(this.sessionProfile.username, this.sessionUser.getUserRole(), sessionCountrySettings.blePereodicDataEndpoint); - //Old CareLink data source + //Old CareLink data source else return this.getLast24Hours(); - } - else { + } else { return null; } } @@ -192,9 +211,9 @@ protected boolean executeLoginProcedure() { } // Set login success if everything was ok: - if(this.sessionUser != null && this.sessionProfile != null && this.sessionCountrySettings != null && this.sessionMonitorData != null) + if (this.sessionUser != null && this.sessionProfile != null && this.sessionCountrySettings != null && this.sessionMonitorData != null) lastLoginSuccess = true; - //Clear cookies if error occured during logon + //Clear cookies if error occured during logon else ((SimpleOkHttpCookieJar) this.httpClient.cookieJar()).deleteAllCookies(); @@ -298,7 +317,7 @@ protected String extractResponseData(String respBody, String groupRegex, int gro Matcher responseDataMatcher = null; responseDataMatcher = Pattern.compile(groupRegex).matcher(respBody); - if(responseDataMatcher.find()) { + if (responseDataMatcher.find()) { responseData = responseDataMatcher.group(groupIndex); } @@ -321,7 +340,7 @@ protected String getAuthorizationToken() { || (!loginInProcess && !this.lastLoginSuccess) ) { //execute new login process - if(this.loginInProcess || !this.executeLoginProcedure()) + if (this.loginInProcess || !this.executeLoginProcedure()) return null; } @@ -377,7 +396,7 @@ public RecentData getLast24Hours() { recentData = this.getData(this.careLinkServer(), "patient/connect/data", queryParams, null, RecentData.class); if (recentData != null) correctTimeInRecentData(recentData); - }catch (Exception e){ + } catch (Exception e) { lastErrorMessage = e.getClass().getSimpleName() + ":" + e.getMessage(); } @@ -406,7 +425,7 @@ public RecentData getConnectDisplayMessage(String username, String role, String recentData = this.getData(HttpUrl.parse(endpointUrl), requestBody, RecentData.class); if (recentData != null) correctTimeInRecentData(recentData); - }catch (Exception e){ + } catch (Exception e) { lastErrorMessage = e.getClass().getSimpleName() + ":" + e.getMessage(); } return recentData; @@ -451,7 +470,7 @@ protected T getData(HttpUrl url, RequestBody requestBody, Class dataClass responseString = response.body().string(); data = new GsonBuilder().create().fromJson(responseString, dataClass); this.lastDataSuccess = true; - } catch (Exception e){ + } catch (Exception e) { lastErrorMessage = e.getClass().getSimpleName() + ":" + e.getMessage(); } } @@ -463,7 +482,7 @@ protected T getData(HttpUrl url, RequestBody requestBody, Class dataClass } //Return result - if(data != null) + if (data != null) return dataClass.cast(data); else return null; @@ -500,7 +519,7 @@ protected void addHttpHeaders(Request.Builder requestBuilder, RequestType type) .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"); //Set media type based on request type - switch(type) { + switch (type) { case Json: requestBuilder.addHeader("Accept", "application/json, text/plain, */*"); requestBuilder.addHeader("Content-Type", "application/json; charset=utf-8"); @@ -614,41 +633,42 @@ protected void correctTimeInRecentData(RecentData recentData) { } - protected String getZoneOffset(String dateString){ + protected String getZoneOffset(String dateString) { Matcher offsetDataMatcher = Pattern.compile(("(.*)([\\+|-].*)")).matcher(dateString); - if(offsetDataMatcher.find()) + if (offsetDataMatcher.find()) return offsetDataMatcher.group(2); else - return null; + return null; } - protected Date parseDateString(String dateString){ - for(SimpleDateFormat zonedFormat : ZONED_DATE_FORMATS){ + protected Date parseDateString(String dateString) { + for (SimpleDateFormat zonedFormat : ZONED_DATE_FORMATS) { try { return zonedFormat.parse(dateString); - }catch (Exception ex){} + } catch (Exception ex) { + } } - return null; + return null; } - protected Date shiftDateByHours(Date date, int hours){ - if(date != null) { + protected Date shiftDateByHours(Date date, int hours) { + if (date != null) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.HOUR_OF_DAY, hours); return calendar.getTime(); } else { - return null; + return null; } } //Calculate DateTime using graph index (1 index = 5 minute) - protected static Date calcTimeByIndex(Date lastSensorTime, int index, boolean round){ - if(lastSensorTime == null) + protected static Date calcTimeByIndex(Date lastSensorTime, int index, boolean round) { + if (lastSensorTime == null) return null; - else if(round) + else if (round) //round to 10 minutes - return new Date((Math.round((calcTimeByIndex(lastSensorTime,index,false).getTime()) / 600_000D) * 600_000L)); + return new Date((Math.round((calcTimeByIndex(lastSensorTime, index, false).getTime()) / 600_000D) * 600_000L)); else return new Date((lastSensorTime.getTime() - ((287 - index) * 300_000L))); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java index 84bb50dd47..87ad34f73e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/CountryUtils.java @@ -121,11 +121,11 @@ public class CountryUtils { "pe" }; - public static boolean isSupportedCountry(String countryCode){ + public static boolean isSupportedCountry(String countryCode) { return Arrays.asList(supportedCountryCodes).contains(countryCode); } - public static boolean isUS(String countryCode){ + public static boolean isUS(String countryCode) { return countryCode.equals("us"); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java index 2401e3fe7b..89ab7b939f 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/client/SimpleOkHttpCookieJar.java @@ -1,12 +1,12 @@ package com.eveningoutpost.dexdrip.cgm.carelinkfollow.client; +import java.util.ArrayList; +import java.util.List; + import okhttp3.Cookie; import okhttp3.CookieJar; import okhttp3.HttpUrl; -import java.util.ArrayList; -import java.util.List; - public class SimpleOkHttpCookieJar implements CookieJar { private List storage = new ArrayList<>(); @@ -27,7 +27,7 @@ public List loadForRequest(HttpUrl url) { // Only return matching Cookies for (Cookie cookie : storage) { - if(cookie.matches(url)) { + if (cookie.matches(url)) { cookies.add(cookie); } } @@ -44,7 +44,7 @@ public List getCookies(String name) { // Only return matching Cookies for (Cookie cookie : storage) { - if(cookie.name().equals(name)) { + if (cookie.name().equals(name)) { cookies.add(cookie); } } @@ -59,7 +59,7 @@ public boolean contains(String name) { public void deleteCookie(String name) { for (int i = 0; i < storage.size(); i++) { - if(storage.get(i).name() == name) { + if (storage.get(i).name() == name) { storage.remove(i); } } @@ -69,9 +69,9 @@ public void deleteAllCookies() { storage.clear(); } - private void removeExpiredCookies(){ + private void removeExpiredCookies() { for (int i = 0; i < storage.size(); i++) { - if(storage.get(i).expiresAt() < System.currentTimeMillis()) { + if (storage.get(i).expiresAt() < System.currentTimeMillis()) { storage.remove(i); } } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java index abc2f98324..57bf91712d 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Alarm.java @@ -7,7 +7,7 @@ */ public class Alarm { - public String getMessageAlarmCode(){ + public String getMessageAlarmCode() { return null; } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java index 0c979b9002..7ea335aab1 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Marker.java @@ -10,14 +10,14 @@ public class Marker { public static final String MARKER_TYPE_MEAL = "MEAL"; public static final String MARKER_TYPE_CALIBRATION = "CALIBRATION"; public static final String MARKER_TYPE_BG_READING = "BG_READING"; - public static final String MARKER_TYPE_BG = "BG"; + public static final String MARKER_TYPE_BG = "BG"; public static final String MARKER_TYPE_INSULIN = "INSULIN"; public static final String MARKER_TYPE_AUTO_BASAL = "AUTO_BASAL_DELIVERY"; public static final String MARKER_TYPE_AUTO_MODE_STATUS = "AUTO_MODE_STATUS"; - public boolean isBloodGlucose(){ - if(type == null) - return false; + public boolean isBloodGlucose() { + if (type == null) + return false; else return (type.equals(MARKER_TYPE_BG_READING) || type.equals(MARKER_TYPE_CALIBRATION) || type.equals(MARKER_TYPE_BG)); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentData.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentData.java index 4ae4afe658..528020f9ee 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentData.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentData.java @@ -33,7 +33,7 @@ public class RecentData { //autoModeShieldState public static final String AUTOMODE_SHIELD_AUTO_BASAL = "AUTO_BASAL"; - public static final String AUTOMODE_SHIELD_FEATURE_OFF= "FEATURE_OFF"; + public static final String AUTOMODE_SHIELD_FEATURE_OFF = "FEATURE_OFF"; //autoModeReadinessState public static final String AUTOMODE_READINESS_NO_ACTION_REQUIRED = "NO_ACTION_REQUIRED"; @@ -43,13 +43,15 @@ public class RecentData { public static final String LGS_STATE_MONITORING = "MONITORING"; - public String getDeviceFamily(){ + public String getDeviceFamily() { return medicalDeviceFamily; } - public boolean isGM(){ + + public boolean isGM() { return getDeviceFamily().equals(DEVICE_FAMILY_GUARDIAN); } - public boolean isNGP(){ + + public boolean isNGP() { return getDeviceFamily().equals(DEVICE_FAMILY_NGP); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java index 791059e815..d04efbc11c 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/SensorGlucose.java @@ -21,8 +21,12 @@ public class SensorGlucose { public String toS() { String dt; - if (datetime == null) { dt = ""; } else{ dt = datetime; } - return dt + " " + sg; + if (datetime == null) { + dt = ""; + } else { + dt = datetime; + } + return dt + " " + sg; } } \ No newline at end of file diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TextMap.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TextMap.java index 3b39bc1dc3..bf0522528c 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TextMap.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/TextMap.java @@ -301,33 +301,32 @@ public class TextMap { } - public static String getAlarmMessage(String deviceFamily, Alarm alarm){ + public static String getAlarmMessage(String deviceFamily, Alarm alarm) { return getErrorMessage(deviceFamily, alarm.kind, alarm.code); } - public static String getNotificationMessage(String deviceFamily, ClearedNotification notification){ + public static String getNotificationMessage(String deviceFamily, ClearedNotification notification) { return getErrorMessage(deviceFamily, notification.messageId, notification.faultId); } - public static String getNotificationMessage(String deviceFamily, String messageId, int faultId){ + public static String getNotificationMessage(String deviceFamily, String messageId, int faultId) { return getErrorMessage(deviceFamily, messageId, faultId); } - public static String getErrorMessage(String deviceFamily, String guardianErrorCode, int ngpErrorCode) - { + public static String getErrorMessage(String deviceFamily, String guardianErrorCode, int ngpErrorCode) { String errorTextId; String internalEC; - if(deviceFamily.equals(RecentData.DEVICE_FAMILY_GUARDIAN)){ - if(guardianErrorCode != null) + if (deviceFamily.equals(RecentData.DEVICE_FAMILY_GUARDIAN)) { + if (guardianErrorCode != null) errorTextId = ERROR_TEXT_PREFIX_GUARDIAN + guardianErrorCode; else errorTextId = null; - } else if (deviceFamily.equals(RecentData.DEVICE_FAMILY_NGP)){ + } else if (deviceFamily.equals(RecentData.DEVICE_FAMILY_NGP)) { String formattedEC = String.format("%03d", ngpErrorCode); - if(errorCodeMap.containsKey(formattedEC)) + if (errorCodeMap.containsKey(formattedEC)) internalEC = errorCodeMap.get(formattedEC); else internalEC = formattedEC; @@ -336,7 +335,7 @@ public static String getErrorMessage(String deviceFamily, String guardianErrorCo errorTextId = null; } - if(errorTextId != null && errorTextMap.containsKey(errorTextId)) + if (errorTextId != null && errorTextMap.containsKey(errorTextId)) return errorTextMap.get(errorTextId); else return null; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/User.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/User.java index 35cee61a62..2aedecc850 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/User.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/User.java @@ -26,11 +26,11 @@ public class User { public boolean mfaEnabled; public boolean isCarePartner() { - return(this.role.equals(ROLE_CARE_PARTNER_US) || this.role.equals(ROLE_CARE_PARTNER_OUS)); + return (this.role.equals(ROLE_CARE_PARTNER_US) || this.role.equals(ROLE_CARE_PARTNER_OUS)); } public String getUserRole() { - if(isCarePartner()) + if (isCarePartner()) return USER_ROLE_CARE_PARTNER; else return USER_ROLE_PATIENT; From 27b70f2b3472ef698fc6fc8315a25d02b2864c98 Mon Sep 17 00:00:00 2001 From: benceszasz Date: Sun, 25 Sep 2022 15:43:13 +0200 Subject: [PATCH 057/982] Remove unnecessary list wrappers from JSON classes --- .../dexdrip/cgm/carelinkfollow/message/Countries.java | 9 --------- .../dexdrip/cgm/carelinkfollow/message/Languages.java | 9 --------- .../cgm/carelinkfollow/message/RecentUploads.java | 9 --------- 3 files changed, 27 deletions(-) delete mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Countries.java delete mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Languages.java delete mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentUploads.java diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Countries.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Countries.java deleted file mode 100644 index 6818bbae4d..0000000000 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Countries.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; - -import java.util.List; - -public class Countries { - - public List countries; - -} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Languages.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Languages.java deleted file mode 100644 index 01660d6e4a..0000000000 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/Languages.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; - -import java.util.List; - -public class Languages { - - public List languages; - -} diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentUploads.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentUploads.java deleted file mode 100644 index 6c79d8ae6c..0000000000 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/carelinkfollow/message/RecentUploads.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.eveningoutpost.dexdrip.cgm.carelinkfollow.message; - -import java.util.List; - -public class RecentUploads { - - public List recentUploads; - -} From dfbad6e128609c287ebec4df5793ca2080a60150 Mon Sep 17 00:00:00 2001 From: Navid Date: Fri, 30 Sep 2022 16:19:51 -0400 Subject: [PATCH 058/982] Dexcom clarifications --- .../dexdrip/UtilityModels/SourceWizard.java | 4 ++-- app/src/main/res/values/arrays.xml | 2 +- app/src/main/res/values/strings.xml | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java index aa5f8d07b5..ce0ca4edb7 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SourceWizard.java @@ -41,7 +41,7 @@ public class SourceWizard { private Tree root = new Tree<>(new Item(gs(R.string.choose_data_source), gs(R.string.which_system_do_you_use))); { - Tree g5g6 = root.addChild(new Item("G4, G5 & G6", gs(R.string.which_type_of_device), R.drawable.g5_icon)); + Tree g5g6 = root.addChild(new Item("G4, G5, G6 & Dex1", gs(R.string.which_type_of_device), R.drawable.g5_icon)); { Tree g4 = g5g6.addChild(new Item("G4", gs(R.string.what_type_of_g4_bridge_device_do_you_use), R.drawable.g4_icon)); { @@ -55,7 +55,7 @@ public class SourceWizard { g4.addChild(new Item(gs(R.string.parakeet_wifi), DexCollectionType.WifiWixel, R.drawable.jamorham_parakeet_marker)); } g5g6.addChild(new Item("G5", DexCollectionType.DexcomG5, R.drawable.g5_icon)); - g5g6.addChild(new Item("G6", DexCollectionType.DexcomG6, R.drawable.g6_icon)); + g5g6.addChild(new Item("G6 or Dex1", DexCollectionType.DexcomG6, R.drawable.g6_icon)); } Tree libre = root.addChild(new Item(gs(R.string.libre), gs(R.string.what_type_of_libre_bridge_device_do_you_use), R.drawable.libre_icon_image)); diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 5cb80149e2..feab90c3b8 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -7,7 +7,7 @@ Wifi Wixel + BT Wixel Wifi Wixel + xBridge Wixel G4 Share Receiver - G5/G6 Transmitter + G5/G6/Dex1 Transmitter Libre Bluetooth Libre Bluetooth + wifi Libre wifi diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 79e6eb2bc6..9dba0c9afd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -629,7 +629,7 @@ Reset Bluetooth by turning it off and on if we don\'t get anything in 20 minutes Bluetooth Watchdog Reset Bluetooth by turning it off and on as a way to keep the G5 data source working. Without this the G5 collector may fail. - G5 Bluetooth Watchdog + Dex Bluetooth Watchdog If the Bluetooth watchdog activates often then you can try unchecking this option to see if it helps Older Bluetooth wakelocks which can drain extra battery but might be needed for Bluetooth reception Reset Bluetooth by turning it off and on every few minutes! Only select if you are testing. It may disrupt anything else using Bluetooth. @@ -726,12 +726,12 @@ Low level diagnostic/prototype value ID of your Dexcom Transmitter, e.g. 12AB3 Advanced G5 settings for rare situations - G5/G6 Debug Settings + G5/G6/Dex1 Debug Settings Some devices work better when scanning constantly, others do not. If reading is reliable when this setting is not selected, you should have improved battery life. Normally best to keep this disabled Scan for G5 constantly This is crucial for some Android devices to properly connect, but can cause missed readings when other UI intensive activities are in use. Force G5 to UI Thread - Authenticate G5 before each read + Authenticate before each read This will attempt a full authentication each read attempt. Needed for newer G5 transmitter firmware versions. Unbond G5 before each read This will remove the G5 from your device\'s paired device list, and attempt a full authentication and bonding with each read attempt. @@ -1344,8 +1344,8 @@ Fallback to xDrip Use heuristics to minimize Bluetooth scanning + save power Minimize Scanning - I am using a G6 Sensor - G6 Support + I am using a G6 or Dexcom 1 Sensor + G6/Dex1 Support OB1 collector can unbond if it thinks the encryption has failed. If you get problems with it unpairing then disable this option. If you then totally lose connection, make sure this is enabled. Allow OB1 unbonding OB1 collector can initiate bonding. From 70fb5fd5192e1cf5c32903e9a7ca3acfede7890d Mon Sep 17 00:00:00 2001 From: James Woglom Date: Sat, 15 Oct 2022 00:45:42 -0400 Subject: [PATCH 059/982] Close all active db connections before database import --- .../com/eveningoutpost/dexdrip/ImportDatabaseActivity.java | 1 + .../java/com/eveningoutpost/dexdrip/utils/DatabaseUtil.java | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/ImportDatabaseActivity.java b/app/src/main/java/com/eveningoutpost/dexdrip/ImportDatabaseActivity.java index 3916af40b6..b1c7aaeacb 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/ImportDatabaseActivity.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/ImportDatabaseActivity.java @@ -299,6 +299,7 @@ protected String doInBackground(Void... args) { fout.write(buffer, 0, count); } fout.close(); + fout.flush(); dbFile = new File(output_filename); delete_file = dbFile; Log.d(TAG, "New filename: " + output_filename); diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DatabaseUtil.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DatabaseUtil.java index 24f6adc153..267ca7b33b 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DatabaseUtil.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DatabaseUtil.java @@ -9,6 +9,7 @@ import android.text.format.DateFormat; import android.widget.Toast; +import com.activeandroid.ActiveAndroid; import com.activeandroid.Cache; import com.activeandroid.Configuration; import com.eveningoutpost.dexdrip.Models.JoH; @@ -354,6 +355,10 @@ public static String loadSql(Context context, String path) { destStream = new FileOutputStream(currentDBtmp); dst = destStream.getChannel(); dst.transferFrom(src, 0, src.size()); + destStream.flush(); + // Close all active db connections before database import. + ActiveAndroid.clearCache(); + ActiveAndroid.dispose(); currentDB.renameTo(currentDBold); currentDBtmp.renameTo(currentDB); currentDBold.delete(); From 546e73134d3c0e2345c0bba256602967f0056540 Mon Sep 17 00:00:00 2001 From: James Woglom Date: Sat, 15 Oct 2022 13:22:30 -0400 Subject: [PATCH 060/982] remove unneeded flush --- .../java/com/eveningoutpost/dexdrip/ImportDatabaseActivity.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/ImportDatabaseActivity.java b/app/src/main/java/com/eveningoutpost/dexdrip/ImportDatabaseActivity.java index b1c7aaeacb..3916af40b6 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/ImportDatabaseActivity.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/ImportDatabaseActivity.java @@ -299,7 +299,6 @@ protected String doInBackground(Void... args) { fout.write(buffer, 0, count); } fout.close(); - fout.flush(); dbFile = new File(output_filename); delete_file = dbFile; Log.d(TAG, "New filename: " + output_filename); From 59ddbe976cf629d6366537d8c0d80643a0b663ad Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Mon, 31 Oct 2022 20:42:08 +0000 Subject: [PATCH 061/982] New translations strings.xml (Hindi) --- app/src/main/res/values-hi/strings-hi.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/res/values-hi/strings-hi.xml b/app/src/main/res/values-hi/strings-hi.xml index 62a9203420..57253b2a3a 100644 --- a/app/src/main/res/values-hi/strings-hi.xml +++ b/app/src/main/res/values-hi/strings-hi.xml @@ -1,8 +1,13 @@ + ब्लूटूथ स्कैन + स्कैन करें + रोको नया सेंसर प्रारंभ करें नया सेंसर स्थान बताएं सेंसर बंद करें + नेविगेशन ड्रॉवर खोलें + नेविगेशन ड्रावर बंद करें ठीक है नहीं फिर से मत पूछना @@ -15,6 +20,7 @@ सेंसर बंद करें + ब्लूटूथ स्कैन फिर से मत पूछना From b6939ce22260a398a87e0531e62e68c8308a4c81 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Wed, 2 Nov 2022 12:37:18 +0000 Subject: [PATCH 062/982] New translations strings.xml (Estonian) --- app/src/main/res/values-et/strings-et.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/values-et/strings-et.xml b/app/src/main/res/values-et/strings-et.xml index 52fd480428..a13edec342 100644 --- a/app/src/main/res/values-et/strings-et.xml +++ b/app/src/main/res/values-et/strings-et.xml @@ -9,7 +9,7 @@ Ekspordi andmebaas Ekspordi CSV (SiDiary formaat) Taasta andmebaas - Viga: See seade ei toeta bluetooth\'i + Viga: see seade ei toeta Bluetooth\'i Tundmatu seade Seadmega ühendamine Töötlemata andmete tabel @@ -89,15 +89,15 @@ Saadab muud alarmid nutikella Luba Muud alarmid - Kellaplaadi graafik täpid + Kellaplaadi graafiku punktid Näitab pisikesi täppe väikeste täppide asemel Luba Kellaplaadi graafik Näita graafikut kellaplaadi taustal Kellaplaadi graafik - seadista kui palju tunde graafikul on näha + seadista, kui palju tunde graafikul on näha Vidina graafik - seadista kui palju tunde graafikul on näha + seadista, kui palju tunde graafikul on näha Vidina graafiku punktid Näitab pisikesi täppe väikeste täppide asemel Luba @@ -116,15 +116,15 @@ Jaga seadeid QR koodiga Saada tagasisidet Parakeet kaart - Kuvamis sätted - Funktsioonide importimine / eksportimine + Ekraani seaded + Impordi / ekspordi valikud Saatke uuesti veresuhkru andmed kella Ava seaded kellas Lähesta Wear andmekogu Kustuta Kõiki liidese vihjed näidatakse uuesti algusest Märkmete nupp - Märkmete nupp nüüd viib hääl sisestule.\n\nPikk vajutus sellel kasutada klaviatuuri või muuta suvandeid. + Märkmete nupp küsib nüüd häälsisestust.\n\nVajuta pikalt, et kasutada klaviatuuri või muuta valikuid. Tagasivõtmise nupp Tagasivõtmise nupp laseb minna tagasi läbi ravi simulatsiooni, kalibreeringute ja märkmete\n\n30min möödumisel kaob ekraanilt taas Tagasivõtmise nupp @@ -132,14 +132,14 @@ Lisa märge Vere näit Jaga - Ravi profiili seadistaja + Raviprofiili seadistaja Esmalt kasutage menüüd, et otsida oma BT-seadet või muuta andmeallikat menüüs Seaded! Esmalt seadista oma WiFI Wixel lugeja IP aadressid või Parakeet URL (veebiaadress) Nüüd käivita sensor või vaata seadeid Palun oota kuni sensor soojeneb! ( " minutit)" Tõenäoliselt halb kalibreeringute kalle, palun joo klaas vett, pese käsi ja kalibreeri uuesti natukese aja pärast! - Palun oota, esmalt läheb vaja 2 tulemust saatjalt. + Palun oota, kõigepealt on vaja saatjalt 2 näitu. Palun sisesta kaks kalibreerimist, et alustada! Nüüd ühenda enda Dexcom Share Seadetes vali Käivita enda sensor From e17664daeb28e4dbb3939865d8a06f32911a4f1b Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Thu, 3 Nov 2022 12:32:37 +0000 Subject: [PATCH 063/982] New translations strings.xml (German) --- app/src/main/res/values-de/strings-de.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/src/main/res/values-de/strings-de.xml b/app/src/main/res/values-de/strings-de.xml index 34bcf65667..85cc51868f 100644 --- a/app/src/main/res/values-de/strings-de.xml +++ b/app/src/main/res/values-de/strings-de.xml @@ -1283,6 +1283,26 @@ Nightscout Follower URL Lade auch Behandlungen von Nightscout als Follower herunter Behandlungen herunterladen + CareLink Benutzername + CareLink Login-Benutzername + CareLink Passwort + CareLink Login-Passwort + CareLink Land + Wähle Dein CareLink Land aus. + CareLink Sprache + CareLink Sprachcode + Schonfrist + Nachfrist für Datenabfrage in Sekunden + Abrufintervall für verpasste Daten + Abrufintervall nach verpassten Daten in Minuten + BZ blutig gemessen + Blutige BZ Werte von CareLink herunterladen + Boli + Boli von CareLink herunterladen + Mahlzeiten + Mahlzeiten von CareLink herunterladen + Notizen + Notizen von CareLink herunterladen OB1 G5/G6 Kollektor-Einstellungen Komplett neu gemacht, sollte unter Android 4.4-9 funktionieren, nativen Modus und mehr unterstützen OB1 Kollektor verwenden From 36d4da8a1a6c0ccfff53e66174699f3f8282ae94 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Thu, 3 Nov 2022 12:32:48 +0000 Subject: [PATCH 064/982] New translations strings.xml (Turkish) --- app/src/main/res/values-tr/strings-tr.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/src/main/res/values-tr/strings-tr.xml b/app/src/main/res/values-tr/strings-tr.xml index 14ca2a0701..0c8a3a1f8f 100644 --- a/app/src/main/res/values-tr/strings-tr.xml +++ b/app/src/main/res/values-tr/strings-tr.xml @@ -1282,6 +1282,26 @@ Nightscout Takip URL\'si Ayrıca tedavileri Nightscout\'tan indirin Tedavileri İndir + CareLink Kullanıcı Adı + CareLink oturum açma kullanıcı adı + CareLink Parolası + CareLink giriş parolası + CareLink Ülkesi + CareLink ülkenizi seçin. + CareLink Dili + CareLink Dili kodu + Yetkisiz Kullanım Süresi + Saniye cinsinden veri talebi için yetkisiz kullanım süresi + Kaçırılan veri yoklama aralığı + Kaçırılan verilerden sonra yoklama aralığı dakika cinsinden + Parmak KŞ\'leri + CareLink\'ten parmak KŞ\'lerini indir + Boluslar + CareLink\'ten bolusları indir + Öğünler + CareLink\'ten öğünleri indir + Bildirimler + CareLink\'ten bildirimleri indir OB1 G5/G6 Toplayıcı Ayarları Tam yeniden yazma, Android 4.4 - 9\'da çalışmalı, yerel modu ve daha fazlasını destekler OB1 Toplayıcıyı kullanın From 52b284fd58f852027837d03c299b50f0e228b973 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Thu, 3 Nov 2022 12:32:55 +0000 Subject: [PATCH 065/982] New translations strings.xml (Polish) --- app/src/main/res/values-pl/strings-pl.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-pl/strings-pl.xml b/app/src/main/res/values-pl/strings-pl.xml index b8193569d1..5b5caedc90 100644 --- a/app/src/main/res/values-pl/strings-pl.xml +++ b/app/src/main/res/values-pl/strings-pl.xml @@ -1276,6 +1276,7 @@ Adres URL do obserwowania Nightscout Pobierz również zabiegi z Nightscout jako obserwator Pobieraj zabiegi + Nazwa użytkownika CareLink Ustawienia Kolektora OB1 G5/G6 Użyj kolektora OB1 Użyj wbudowanego algorytmu transmitera do obliczeń wartości poziomu glukozy kiedy to możliwe. From 84af282807d710e23cac0c8b2ab0ca7cdea10cd0 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Thu, 3 Nov 2022 12:33:09 +0000 Subject: [PATCH 066/982] New translations strings.xml (Spanish) --- app/src/main/res/values-es/strings-es.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/src/main/res/values-es/strings-es.xml b/app/src/main/res/values-es/strings-es.xml index f9c05f1c4f..67248ff9f5 100644 --- a/app/src/main/res/values-es/strings-es.xml +++ b/app/src/main/res/values-es/strings-es.xml @@ -1283,6 +1283,26 @@ URL de Nightscout a Seguir También descargar tratamientos de Nightscout como seguidor Descargar tratamientos + Nombre de usuario de CareLink + Nombre de usuario de acceso de CareLink + Contraseña de CareLink + Contraseña de acceso a CareLink + País de CareLink + Seleccione tu país de CareLink. + Idioma de CareLink + Código de idioma de CareLink + Periodo de gracia + Período de gracia para la solicitud de datos en segundos + Intervalo de sondeo de datos perdidos + Intervalo de sondeo después de datos perdidos en minutos + GS en dedo + Descargar GS en dedo de CareLink + Bolos + Descargar bolos de CareLink + Comidas + Descargar comidas de CareLink + Notificaciones + Descargar notificaciones de CareLink Configuración del colector OB1 G5/G6 Reescritura completa, debería funcionar en Android 4.4–9, compatible con el modo nativo y otros Utilizar colector OB1 From 6fde7afec323b2248527c325f776a3d1d0cf38c5 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Thu, 3 Nov 2022 12:33:13 +0000 Subject: [PATCH 067/982] New translations strings.xml (Estonian) --- app/src/main/res/values-et/strings-et.xml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-et/strings-et.xml b/app/src/main/res/values-et/strings-et.xml index a13edec342..ea6f3552f3 100644 --- a/app/src/main/res/values-et/strings-et.xml +++ b/app/src/main/res/values-et/strings-et.xml @@ -65,7 +65,7 @@ Sisesta vastuvõtja IP aadressid ja pordid (kaasa arvatud mongodb aadressid, kui on vaja) Asukoht pole lubatud - Et bluetoothi tuvastamine töötaks uuemates seadmetes, peab asukoht olema lubatud. xDrip ei jälgi teie asukohta, välja arvatud valikulise hädaabisõnumi funktsiooniga + Et Bluetooth\'i tuvastamine töötaks uuemates seadmetes, peab asukoht olema lubatud. xDrip ei jälgi teie asukohta, välja arvatud valikulise hädaabisõnumi funktsiooniga Luba Edastage kohapeal @@ -1283,6 +1283,26 @@ Nightscout jälgimise URL Laadi jälgijana alla ka Nightscout\'i raviandmed Laad alla raviandmed + CareLink kasutajanimi + CareLink sisselogimise kasutajanimi + CareLink parool + CareLink sisselogimise parool + CareLink riik + Vali enda CareLink riik. + CareLink keel + CareLink keele kood + Ooteperiood + Andmepäringu ooteperiood sekundites + Puuduvate andmete päringute intervall + Puudulike andmete korduspäringute intervall minutites + Sõrmeotsa VS + Laadi CareLink\'ist alla sõrmeotsa VS näidud + Boolused + Laadi CareLink\'ist alla boolused + Eined + Laadi CareLink\'ist alla eined + Teavitused + Laadi alla CareLink teavitused OB1 G5/G6 vastuvõtja seaded Täielik ülekirjutamine, peaks töötama op-süsteemides Android 4.4–9, toetab algupärast režiimi ja palju muud Kasuta OB1 vastuvõtjat From a3599abaca8dec177699ceb797d15a11053c3d8b Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Thu, 3 Nov 2022 12:33:15 +0000 Subject: [PATCH 068/982] New translations strings.xml (Hindi) --- app/src/main/res/values-hi/strings-hi.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-hi/strings-hi.xml b/app/src/main/res/values-hi/strings-hi.xml index 57253b2a3a..91e2ae4638 100644 --- a/app/src/main/res/values-hi/strings-hi.xml +++ b/app/src/main/res/values-hi/strings-hi.xml @@ -6,6 +6,7 @@ नया सेंसर प्रारंभ करें नया सेंसर स्थान बताएं सेंसर बंद करें + नेविगेशन ड्रॉवर नेविगेशन ड्रॉवर खोलें नेविगेशन ड्रावर बंद करें ठीक है From 3cf26754439e8c72fe3294bc379b082f16cf066f Mon Sep 17 00:00:00 2001 From: Jamorham Date: Thu, 3 Nov 2022 19:24:39 +0000 Subject: [PATCH 069/982] Update collector name string --- app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java | 2 +- app/src/main/res/values/arrays.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java index 97dc8dd82a..213b7ef102 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java @@ -176,7 +176,7 @@ private void populateSectionList() { addAsection(BLUEJAY_STATUS, "BlueJay Watch Status"); } if (DexCollectionType.getDexCollectionType() == DexCollectionType.LibreReceiver) { - addAsection(XDRIP_LIBRE2, "Libre 2 Patched App Status"); + addAsection(XDRIP_LIBRE2, "Libre Patched App Status"); } if (DexCollectionType.hasWifi()) { addAsection(IP_COLLECTOR, dexCollectionType == DexCollectionType.Mock ? "FAKE / MOCK DATA SOURCE" : "Wifi Wixel / Parakeet Status"); diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 5048b5115e..1e2ba59e7f 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -13,7 +13,7 @@ Libre wifi xDrip+ Sync Follower LibreAlarm - Libre2 (patched App) + Libre (patched App) 640G / EverSense Medtrum A6 Nightscout Follower From a27e76b6c4145c5bc47a39b934371657007d8364 Mon Sep 17 00:00:00 2001 From: Jamorham Date: Thu, 3 Nov 2022 19:34:04 +0000 Subject: [PATCH 070/982] Removed unneeded icon --- aidex_text.png | Bin 889 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 aidex_text.png diff --git a/aidex_text.png b/aidex_text.png deleted file mode 100644 index f6d9ba1f9ab6b1c2b95f79786323e95b0c0cf13d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889 zcmeAS@N?(olHy`uVBq!ia0vp^(}1{;g9%9PP&(TWq*&4&eH|GXHuiJ>Nn{1`ISV`@ ziy0XB4ude`@%$Aj3=GWDo-U3d6>)EGJ}iA?Ai(hO%G0J8{;NAA#U~rLFt6P+X{UFR z;rp|HxZRB2w0kPZ&u8;@su6lLSzvz450xY8iguhIJv*o=lyC6Rs9xmk>A%lvpUPU7 zul}_^bi*+rw}ba)sOFeW*&z1jOyr?7WzO$S_O=F%E$1+jXGH%-o-u8NHavAMAJr4ZkAb&0Q9lCBc0 zhv!^!{9<6X_xHpL#|mGri89~&d*Q0LtO9eCk~W^VX5dp^!}55>s_X1ykp_#m2MGz@a5~jO4|*)O-@Tr-@Wyk%j8?xwc-aHTRIbDF5NRw z=PACU+Z7(QZ`HiojmvK7&l275c$}$E(TA0vr})sHYwia>6z)-%xORnI`O)GhN0ys4 zY?$FP<(1^Jh}bXLFIO?#&fcHeWFb|+l4y9a%1w5Xb5F^X`^sm&tr0lR%%@OO*>LfL zFGu(wSWMbt>g+nU757{O@SMr#}C8qnpL;*B^R=4rDhA zo>$dLyH$1X=MCwI#8qGWuAcZDs^4$_&Mf{=zq6pfs?Cm!ywJtJs@Gq;q_D5|(?7%7 z*hTllHfqgV{3ECS_odufW(!`ezVsyU>TDion~4TC&!;6=tzEmV&Lu}Y?C9htwxOTe zzvy*57u=_DLn7imQ(mRd=OCTx(yQUD9`37(U+g)jtTR8?-@yEhVBGG%w_nuNNT+?e zzwFtn1s}F Date: Thu, 3 Nov 2022 19:45:34 +0000 Subject: [PATCH 071/982] UserError: Fix extra log-tags hash table life cycle --- .../dexdrip/Models/UserError.java | 121 ++++++++++-------- 1 file changed, 69 insertions(+), 52 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/Models/UserError.java b/app/src/main/java/com/eveningoutpost/dexdrip/Models/UserError.java index ed3b88b7d6..4c1f745bcb 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/Models/UserError.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/Models/UserError.java @@ -50,12 +50,12 @@ public class UserError extends Model { //todo: rather than include multiples of the same error, should we have a "Count" and just increase that on duplicates? //or rather, perhaps we should group up the errors - public String toString() - { - return severity+" ^ "+JoH.dateTimeText((long)timestamp)+" ^ "+shortError+" ^ "+message; + public String toString() { + return severity + " ^ " + JoH.dateTimeText((long) timestamp) + " ^ " + shortError + " ^ " + message; } - public UserError() {} + public UserError() { + } public UserError(int severity, String shortError, String message) { this.severity = severity; @@ -112,7 +112,7 @@ public String bestTime() { public static void cleanup() { - new Cleanup().execute(deletable()); + new Cleanup().execute(deletable()); } // used in unit testing @@ -159,13 +159,13 @@ public static List deletable() { List highErrors = new Select() .from(UserError.class) .where("severity = ?", 3) - .where("timestamp < ?", (new Date().getTime() - 1000*60*60*24*3)) + .where("timestamp < ?", (new Date().getTime() - 1000 * 60 * 60 * 24 * 3)) .orderBy("timestamp desc") .execute(); List events = new Select() .from(UserError.class) .where("severity > ?", 3) - .where("timestamp < ?", (new Date().getTime() - 1000*60*60*24*7)) + .where("timestamp < ?", (new Date().getTime() - 1000 * 60 * 60 * 24 * 7)) .orderBy("timestamp desc") .execute(); userErrors.addAll(highErrors); @@ -178,10 +178,10 @@ public static List bySeverity(Integer[] levels) { for (int level : levels) { levelsString += level + ","; } - Log.d("UserError", "severity in ("+levelsString.substring(0,levelsString.length() - 1)+")"); + Log.d("UserError", "severity in (" + levelsString.substring(0, levelsString.length() - 1) + ")"); return new Select() .from(UserError.class) - .where("severity in ("+levelsString.substring(0,levelsString.length() - 1)+")") + .where("severity in (" + levelsString.substring(0, levelsString.length() - 1) + ")") .orderBy("timestamp desc") .limit(10000)//too many data can kill akp .execute(); @@ -245,7 +245,7 @@ public static UserError getForTimestamp(UserError error) { .where("message = ?", error.message) .executeSingle(); } catch (Exception e) { - Log.e(TAG,"getForTimestamp() Got exception on Select : "+e.toString()); + Log.e(TAG, "getForTimestamp() Got exception on Select : " + e.toString()); return null; } } @@ -254,12 +254,12 @@ private static class Cleanup extends AsyncTask, Integer, Boolean @Override protected Boolean doInBackground(List... errors) { try { - for(UserError userError : errors[0]) { + for (UserError userError : errors[0]) { userError.delete(); //userError.save(); } return true; - } catch(Exception e) { + } catch (Exception e) { return false; } } @@ -268,21 +268,23 @@ protected Boolean doInBackground(List... errors) { public static List bySeverity(int level) { return bySeverity(new Integer[]{level}); } + public static List bySeverity(int level, int level2) { - return bySeverity(new Integer[]{ level, level2 }); + return bySeverity(new Integer[]{level, level2}); } + public static List bySeverity(int level, int level2, int level3) { - return bySeverity(new Integer[]{ level, level2, level3 }); + return bySeverity(new Integer[]{level, level2, level3}); } public static class Log { - public static void e(String a, String b){ + public static void e(String a, String b) { android.util.Log.e(a, b); new UserError(a, b); } - public static void e(String tag, String b, Exception e){ + public static void e(String tag, String b, Exception e) { android.util.Log.e(tag, b, e); StringBuilder sb = new StringBuilder(); sb.append(b); @@ -291,28 +293,32 @@ public static void e(String tag, String b, Exception e){ sb.append("\n"); StackTraceElement[] ste = e.getStackTrace(); for (StackTraceElement ee : ste) { - sb.append(" " + ee.toString() + "\n"); + sb.append(" " + ee.toString() + "\n"); } - new UserError(tag, sb.toString()) ; + new UserError(tag, sb.toString()); } - public static void w(String tag, String b){ + public static void w(String tag, String b) { android.util.Log.w(tag, b); UserError.UserErrorLow(tag, b); } - public static void w(String tag, String b, Exception e){ + + public static void w(String tag, String b, Exception e) { android.util.Log.w(tag, b, e); UserError.UserErrorLow(tag, b + "\n" + e.toString()); } - public static void wtf(String tag, String b){ + + public static void wtf(String tag, String b) { android.util.Log.wtf(tag, b); UserError.UserErrorHigh(tag, b); } - public static void wtf(String tag, String b, Exception e){ + + public static void wtf(String tag, String b, Exception e) { android.util.Log.wtf(tag, b, e); UserError.UserErrorHigh(tag, b + "\n" + e.toString()); } - public static void wtf(String tag, Exception e){ + + public static void wtf(String tag, Exception e) { android.util.Log.wtf(tag, e); UserError.UserErrorHigh(tag, e.toString()); } @@ -327,44 +333,55 @@ public static void ueh(String tag, String b) { UserError.UserEventHigh(tag, b); } - public static void d(String tag, String b){ + public static void d(String tag, String b) { android.util.Log.d(tag, b); - if(ExtraLogTags.shouldLogTag(tag, android.util.Log.DEBUG)) { + if (ExtraLogTags.shouldLogTag(tag, android.util.Log.DEBUG)) { UserErrorLow(tag, b); } } - public static void v(String tag, String b){ + public static void v(String tag, String b) { android.util.Log.v(tag, b); - if(ExtraLogTags.shouldLogTag(tag, android.util.Log.VERBOSE)) { + if (ExtraLogTags.shouldLogTag(tag, android.util.Log.VERBOSE)) { UserErrorLow(tag, b); - } + } } - public static void i(String tag, String b){ + public static void i(String tag, String b) { android.util.Log.i(tag, b); - if(ExtraLogTags.shouldLogTag(tag, android.util.Log.INFO)) { + if (ExtraLogTags.shouldLogTag(tag, android.util.Log.INFO)) { UserErrorLow(tag, b); } } - - static ExtraLogTags extraLogTags = new ExtraLogTags(); + } - + public static class ExtraLogTags { - static Hashtable extraTags; - ExtraLogTags () { - extraTags = new Hashtable (); - String extraLogs = Pref.getStringDefaultBlank("extra_tags_for_logging"); - readPreference(extraLogs); + private static final Hashtable extraTags = new Hashtable<>(); + + static { + init(); + } + + private static void init() { + try { + extraTags.clear(); + readPreference(Pref.getStringDefaultBlank("extra_tags_for_logging")); + } catch (Exception e) { + UserError.Log.wtf(TAG, "Error with extra log tags: " + e); + } + } + + ExtraLogTags() { + init(); } - + /* * This function reads a string representing tags that the user wants to log * Format of string is tag1:level1,tag2,level2 * Example of string is Alerts:i,BG:W - * + * */ public static void readPreference(String extraLogs) { extraLogs = extraLogs.trim(); @@ -379,44 +396,44 @@ public static void readPreference(String extraLogs) { if (tags.length == 0) { return; } - + // go over all tags and parse them - for(String tag : tags) { + for (String tag : tags) { if (tag.length() > 0) parseTag(tag); } } - + static void parseTag(String tag) { // Format is tag:level for example Alerts:i String[] tagAndLevel = tag.trim().split(":"); - if(tagAndLevel.length != 2) { + if (tagAndLevel.length != 2) { Log.e(TAG, "Failed to parse " + tag); return; } - String level = tagAndLevel[1]; - String tagName = tagAndLevel[0].toLowerCase(); + String level = tagAndLevel[1]; + String tagName = tagAndLevel[0].toLowerCase(); // TODO I would like to make this case sensitive for performance reasons if (level.compareTo("d") == 0) { extraTags.put(tagName, android.util.Log.DEBUG); - UserErrorLow(TAG, "Adding tag with DEBUG " + tagAndLevel[0] ); + UserErrorLow(TAG, "Adding tag with DEBUG " + tagAndLevel[0]); return; } if (level.compareTo("v") == 0) { extraTags.put(tagName, android.util.Log.VERBOSE); - UserErrorLow(TAG,"Adding tag with VERBOSE " + tagAndLevel[0] ); + UserErrorLow(TAG, "Adding tag with VERBOSE " + tagAndLevel[0]); return; } if (level.compareTo("i") == 0) { extraTags.put(tagName, android.util.Log.INFO); - UserErrorLow(TAG, "Adding tag with info " + tagAndLevel[0] ); + UserErrorLow(TAG, "Adding tag with info " + tagAndLevel[0]); return; } Log.e(TAG, "Unknown level for tag " + tag + " please use d v or i"); } - + public static boolean shouldLogTag(final String tag, final int level) { - final Integer levelForTag = extraTags.get(tag != null ? tag.toLowerCase() : ""); + final Integer levelForTag = extraTags.get(tag != null ? tag.toLowerCase() : ""); // TODO I would like to make this case sensitive for performance reasons return levelForTag != null && level >= levelForTag; } - + } } From 0b20e05cf4b06bd36961809bb00dded5454bce04 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Fri, 4 Nov 2022 12:45:13 +0000 Subject: [PATCH 072/982] New translations strings.xml (Dutch) --- app/src/main/res/values-nl/strings-nl.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings-nl.xml b/app/src/main/res/values-nl/strings-nl.xml index d09e99e96c..39b8c0b552 100644 --- a/app/src/main/res/values-nl/strings-nl.xml +++ b/app/src/main/res/values-nl/strings-nl.xml @@ -599,7 +599,7 @@ Reset Bluetooth door het uit en weer in te schakelen als we binnen 20 minuten niets ontvangen Bluetooth Watchdog Reset Bluetooth door het uit en weer in te schakelen om de G5-gegevensbron te laten werken. Zonder dit kan de G5-collector het begeven. - G5 Bluetooth Watchdog + G5 Bluetooth Waakhond Als de bluetooth-waakhond vaak wordt geactiveerd, kunt u proberen deze optie uit te schakelen om te zien of dit helpt Oudere bluetooth wakelocks die extra batterij kunnen verbruiken, maar misschien nodig zijn voor de bluetooth ontvangst Reset Bluetooth door het om de paar minuten uit en weer in te schakelen! Selecteer alleen als u aan het testen bent. Het kan andere Bluetooth-verbindingen verstoren. From 3e15c12ca53de9cc0ea96e037f431ad9354dd4b6 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Fri, 4 Nov 2022 12:45:32 +0000 Subject: [PATCH 073/982] New translations strings.xml (Russian) --- app/src/main/res/values-ru/strings-ru.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings-ru.xml b/app/src/main/res/values-ru/strings-ru.xml index ecfc100c69..cb0071065f 100644 --- a/app/src/main/res/values-ru/strings-ru.xml +++ b/app/src/main/res/values-ru/strings-ru.xml @@ -701,7 +701,7 @@ Постоянный поиск G5 Важный параметр для правильного подключения на некоторых Android устройствах, но может привести к пропускам считанных показаний в случае возникновения других ресурсоемких операций с пользовательским интерфейсом. Приоритезация G5 сервиса - Аутентифицировать G5 перед каждым считыванием + Аутентификация G5 перед каждым считыванием Приложение будет пытаться произвести полную аутентификацию перед каждым считыванием. Необходимо для новых прошивок G5. Отвязать G5 перед каждым считыванием Сопряжение с G5 будет отменено при попытке считывания и произведена новая привязка и полная аутентификация. From 32b999643db010a51fb3750b850e55d65aafe8cf Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Fri, 4 Nov 2022 12:45:38 +0000 Subject: [PATCH 074/982] New translations strings.xml (Hebrew) --- app/src/main/res/values-he/strings-he.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/res/values-he/strings-he.xml b/app/src/main/res/values-he/strings-he.xml index 7a7825f969..8f4fe61116 100644 --- a/app/src/main/res/values-he/strings-he.xml +++ b/app/src/main/res/values-he/strings-he.xml @@ -998,8 +998,10 @@ אם אתה מתכוון להשתמש בשעון בלבד כאוסף ולא עם הטלפון כלל. השתמש רק ב-Wear טרנדים יכללו מידע מפולטר בנוסף + כאשר זה מתאים הצג תצוגה מקדימה של ערך האינסולין על פי אשף הבולוס על גבי השעון הצג תצוגה מקדימה של הבולוס מהאשף חיישנים בשעונים חכמים + אוסף ומציג את נתוני מונה הצעדים וקצב פעימות הלב כאשר המידע זמין השתמש בנתוני Health הפעל חיישן קצב לב אם זמין מד דופק @@ -1007,6 +1009,7 @@ כאשר משתנה ב- או לפי מספר דקות זיהוי מקלט + מידע ישלח רק לשם תיקית פרויקט שהוגדר קבל כיולים הפעל שרת מקומי לאינטראקציה עם Fitbit Ionic וכו\' שירות ווב של xDrip @@ -1022,6 +1025,7 @@ יחס פחמ\'\\אינסולין מבקש בדיקת דם שניה אופציונלית לכיול ראשוני כיולים כפולים + סמן על מנת לאפשר משתנה מגמה בחיישן ליברה שיפועי ליברה לא קבועים אפשר כיול ראשוני אפילו אם אין נתונים טובים מספיק. נא להיזהר, הכיול עלול להיות לא מדוייק! עקוף בדיקת איכות @@ -1029,6 +1033,8 @@ השתמש בסריקה השתמש ובטח בתכונת חיבור אוטומטי של אנדרואיד בטח בחיבור אוטומטי + תמיכה ניסיונית ביכולת משיכה מ- +xBridge + מוד משיכה מ- +xBridge תמיד גלה שירותים מתאים רק לטלפונים שתומכים בצימוד אוטומטי אפשר הפרדת Blucon From 1b23e2a4d3beda95e876b125be41a031c4528e84 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Fri, 4 Nov 2022 12:45:50 +0000 Subject: [PATCH 075/982] New translations strings.xml (Estonian) --- app/src/main/res/values-et/strings-et.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-et/strings-et.xml b/app/src/main/res/values-et/strings-et.xml index ea6f3552f3..b1486018b2 100644 --- a/app/src/main/res/values-et/strings-et.xml +++ b/app/src/main/res/values-et/strings-et.xml @@ -601,7 +601,7 @@ Taaskäivita Bluetooth sisse-välja lülitades, kui 20 min jooksul andmeid ei saa Bluetoothi jälgija Lähtesta Bluetooth sisse-välja lülitades, et hoida G5 andmeallikas töös. Ilma selleta võib G5 vastuvõtja üles öelda. - G5 bluetoothi jälgija + Dex Bluetooth jälgija Kui bluetoothi jälgija aktiveerub tihti, võite proovida selle valiku tühistada, et näha kas see aitab Vanemad Bluetooth wakelockid, mis võivad akut rohkem kulutada, aga võivad olla vajalikud bluetooth-vastuvõtuks Lähtesta Bluetooth, lülitades seda iga paari minuti järel sisse-välja! Vali ainult siis kui testid. See võib häirida kõiki muid Bluetooth-seadmeid. @@ -696,12 +696,12 @@ Madala taseme diagnostiline/prototüüp-väärtus Teie Dexcomi saatja ID, nt. 12AB3 Täiendavad G5 seaded harvaesinevateks olukordadeks - G5/G6 täpsemad seaded + G5/G6/Dex1 silumisseaded Mõned seadmed töötavad paremini pidevalt skaneerides, teised mitte. Kui see säte pole valitud ja andmed on usaldusväärsed, siis peaks aku tööiga olema pikem. Tavaliselt on parem see mitte valida Skaneeri G5-saatjat pidevalt See on oluline mõnede Android seadmete ühenduvuse jaoks, kuid andmed võivad jääda lugemata muude UI intensiivste tegevuste kasutamisel. Sunni G5 kasutajaliidese lõimele - Tuvasta G5 enne igat lugemist + Autentida enne igat lugemist See proovib täielikku autentimist igal lugemiskatsel. Vajalik uuemate G5 saatja versioonide jaoks. Enne iga vastuvõttu katkesta ühendus G5-ga See eemaldab G5\'e sinu telefoniga seotud seadmete loendist ja proovib iga lugemiskatsega täielikku autentimist ja sidumist. @@ -1318,8 +1318,8 @@ Tagasi xDrip\'pi Kasutage heuristikat, et minimeerida Bluetooth skaneerimist ja säästa energiat Minimaalne skaneerimine - Kasutan G6 sensorit - G6 tugi + Kasutan G6 või Dexcom 1 sensorit + G6/Dex1 tugi OB1 vastuvõtja võib ühenduse katkestada kui arvab, et andmete töötlemine ebaõnnestus. Kui teil tekib ühenduse katkestamisel probleeme, keelake see valik. Kui te seejärel ühenduse täielikult kaotate, veenduge, et see oleks lubatud. Luba OB1 lahtiühendamine OB1 vastuvõtja võib alustada ühendamist. From 605cf5e1cecf241896fc3a9207b9b9963568cdc3 Mon Sep 17 00:00:00 2001 From: Jamorham Date: Fri, 4 Nov 2022 17:38:58 +0000 Subject: [PATCH 076/982] UiBased: backfilling fix --- .../dexdrip/G5Model/BackFillStream.java | 16 +++++++++++++++- .../dexdrip/Services/UiBasedCollector.java | 5 ++++- .../dexdrip/cgm/dex/ClassifierAction.java | 4 +++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/G5Model/BackFillStream.java b/app/src/main/java/com/eveningoutpost/dexdrip/G5Model/BackFillStream.java index 9846cd8393..00be86f377 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/G5Model/BackFillStream.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/G5Model/BackFillStream.java @@ -20,7 +20,7 @@ public class BackFillStream extends BaseMessage { private volatile int last_sequence = 0; - + private volatile boolean locked = false; public BackFillStream() { data = ByteBuffer.allocate(1000); @@ -48,10 +48,23 @@ public synchronized void push(byte[] packet) { public synchronized void pushNew(final byte[] packet) { if (packet == null) return; + if (locked) { + UserError.Log.d(TAG, "Locked stream so ignoring"); + return; + } if (packet.length == 9) { last_sequence = -1; data.put(packet); } else { + if (last_sequence == 0) { + if (packet.length > 17) { + if (packet[5] != 0x00 || packet[9] != 0x00 || packet[17] != 0x00) { + UserError.Log.d(TAG, "Non backfill data received - locking stream"); + locked = true; + return; + } + } + } push(packet); } } @@ -59,6 +72,7 @@ public synchronized void pushNew(final byte[] packet) { public void reset() { data.clear(); last_sequence = 0; + locked = false; } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/Services/UiBasedCollector.java b/app/src/main/java/com/eveningoutpost/dexdrip/Services/UiBasedCollector.java index 3ff14795af..6d48f3a5b2 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/Services/UiBasedCollector.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/Services/UiBasedCollector.java @@ -125,8 +125,11 @@ String filterString(final String value) { switch (lastPackage) { default: return value + .replace("mmol/L", "") + .replace("mg/dL", "") .replace("≤", "") - .replace("≥", ""); + .replace("≥", "") + .trim(); } } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/ClassifierAction.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/ClassifierAction.java index e06b32531a..68add1ae70 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/ClassifierAction.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/ClassifierAction.java @@ -35,7 +35,7 @@ public class ClassifierAction { public static void action(final String type, final byte[] data) { if (data == null || data.length == 0) return; - + UserError.Log.d(TAG, "Type: " + type + " hex: " + JoH.bytesToHex(data)); switch (type) { case BACKFILL: stream.pushNew(data); @@ -83,6 +83,7 @@ public static void action(final String type, final byte[] data) { glucose = new com.eveningoutpost.dexdrip.G5Model.EGlucoseRxMessage(data); } if (glucose.usable()) { + UserError.Log.d(TAG, "Updating age from timestamp: " + glucose.timestamp); DexTimeKeeper.updateAge(TXID, glucose.timestamp); stream.reset(); val ts = DexTimeKeeper.fromDexTime(TXID, glucose.timestamp); @@ -112,6 +113,7 @@ public static void action(final String type, final byte[] data) { private static void processBackfill() { UserError.Log.d(TAG, "Processing backfill"); val decoded = stream.decode(); + stream.reset(); for (BackFillStream.Backsie backsie : decoded) { UserError.Log.d(TAG, "Backsie: " + backsie.getDextime()); val time = DexTimeKeeper.fromDexTime(TXID, backsie.getDextime()); From 18a31efc4bc149f9c1d92411de9941d2c5fbc90d Mon Sep 17 00:00:00 2001 From: Jamorham Date: Fri, 4 Nov 2022 20:37:58 +0000 Subject: [PATCH 077/982] Convert HPointValue to double --- app/libs/hellocharts-library-release.aar | Bin 152944 -> 153725 bytes .../java/com/eveningoutpost/dexdrip/Home.java | 2 +- .../broadcastservice/models/GraphLine.java | 7 +--- .../dexdrip/UtilityModels/BgGraphBuilder.java | 26 ++++++------ .../UtilityModels/BgSparklineBuilder.java | 4 +- .../dexdrip/UtilityModels/HPointValue.java | 37 +++++------------- .../UtilityModels/PointValueExtended.java | 2 +- .../dexdrip/profileeditor/AapsProfile.java | 8 ++-- .../dexdrip/profileeditor/BasalProfile.java | 2 +- .../profileeditor/BasalProfileEditor.java | 6 +-- .../dexdrip/ui/charts/BasalChart.java | 4 +- .../dexdrip/ui/helpers/BitmapLoader.java | 8 ++-- .../Utils/BgMibandSparklineBuilder.java | 4 +- 13 files changed, 44 insertions(+), 66 deletions(-) diff --git a/app/libs/hellocharts-library-release.aar b/app/libs/hellocharts-library-release.aar index 539b24ee917945229f9f07e60c2e3ae4140accea..30e44c1a67bc9f4083667ba3008f910af2a0fb74 100644 GIT binary patch delta 152936 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

CNIKQQ!mkg0Q}xGm1{%C+_}r)I4_!#&EdL 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 H0ssI2jo{>g delta 152149 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�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

R{rUWWg2dH=7Zx_`O5o6@{p(A5cm{)w9=qh_d_ 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 line.update(0); for (PointValue pointValue : line.getValues()) { - float real_timestamp = pointValue.getX(); - if (pointValue instanceof HPointValue) { - real_timestamp = (float) HPointValue.unconvert(real_timestamp); - } - values.add(new GraphPoint(real_timestamp, pointValue.getY())); + double real_timestamp = pointValue.getX(); + values.add(new GraphPoint((float)real_timestamp, (float)pointValue.getY())); } color = line.getColor(); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/BgGraphBuilder.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/BgGraphBuilder.java index 5c4d6fe306..cc08c8680b 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/BgGraphBuilder.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/BgGraphBuilder.java @@ -412,7 +412,7 @@ private List stepsLines() { last_point = new HPointValue((double) pm.timestamp / FUZZER, ypos); } else { final PointValue this_point = new HPointValue((double) pm.timestamp / FUZZER, ypos); - final float time_delta = this_point.getX() - last_point.getX(); + final double time_delta = this_point.getX() - last_point.getX(); if (time_delta > 1) { final List new_points = new ArrayList<>(); @@ -812,14 +812,14 @@ public void debugPrintPoints(List mypoints) { public ArrayList autoSplitLine(Line macroline, final float jumpthresh) { // if (d) Log.d(TAG, "Enter autoSplit Line"); ArrayList linearray = new ArrayList(); - float lastx = -999999; + double lastx = -999999; List macropoints = macroline.getValues(); List thesepoints = new ArrayList(); if (macropoints.size() > 0) { - final float endmarker = macropoints.get(macropoints.size() - 1).getX(); + final double endmarker = macropoints.get(macropoints.size() - 1).getX(); for (PointValue thispoint : macropoints) { // a jump too far for a line? make it a new one @@ -846,13 +846,13 @@ public ArrayList autoSplitLine(Line macroline, final float jumpthresh) { // Produce an array of cubic lines, split as needed public ArrayList filteredLines() { ArrayList linearray = new ArrayList(); - float lastx = -999999; // bogus mark value - final float jumpthresh = 15; // in minutes + double lastx = -999999; // bogus mark value + double jumpthresh = 15; // in minutes List thesepoints = new ArrayList(); if (filteredValues.size() > 0) { - final float endmarker = filteredValues.get(filteredValues.size() - 1).getX(); + final double endmarker = filteredValues.get(filteredValues.size() - 1).getX(); for (PointValue thispoint : filteredValues) { // a jump too far for a line? make it a new one @@ -1145,7 +1145,7 @@ private synchronized void addBgReadingValues(final boolean simple) { if (calibration.timestamp < (start_time * FUZZER)) break; if (calibration.slope_confidence != 0) { final long adjusted_timestamp = (calibration.timestamp + (AddCalibration.estimatedInterstitialLagSeconds * 1000)); - final PointValueExtended this_point = new PointValueExtended((double) (adjusted_timestamp / FUZZER), (float) unitized(calibration.bg)); + final PointValueExtended this_point = new PointValueExtended((double) (adjusted_timestamp / FUZZER), unitized(calibration.bg)); if (adjusted_timestamp >= close_to_side_time) { predictivehours = Math.max(predictivehours, 1); } @@ -1164,7 +1164,7 @@ private synchronized void addBgReadingValues(final boolean simple) { try { for (BloodTest bloodtest : bloodtests) { final long adjusted_timestamp = (bloodtest.timestamp + (AddCalibration.estimatedInterstitialLagSeconds * 1000)); - final PointValueExtended this_point = new PointValueExtended((float) (adjusted_timestamp / FUZZER), (float) unitized(bloodtest.mgdl)) + final PointValueExtended this_point = new PointValueExtended((double) (adjusted_timestamp / FUZZER), unitized(bloodtest.mgdl)) .setType(PointValueExtended.BloodTest) .setUUID(bloodtest.uuid); this_point.real_timestamp = bloodtest.timestamp; @@ -1570,7 +1570,7 @@ private synchronized void addBgReadingValues(final boolean simple) { height = treatment.insulin; // some scaling needed I think if (height > highMark) height = highMark; if (height < lowMark) height = lowMark; - final PointValueExtended pv = new PointValueExtended((double) (treatment.timestamp / FUZZER), (float) height); + final PointValueExtended pv = new PointValueExtended((double) (treatment.timestamp / FUZZER), height); pv.real_timestamp = treatment.timestamp; if (treatment.isPenSyncedDose()) { pv.setType(PointValueExtended.AdjustableDose).setUUID(treatment.uuid); @@ -1608,7 +1608,7 @@ private synchronized void addBgReadingValues(final boolean simple) { try { final Matcher m = posPattern.matcher(treatment.enteredBy); if (m.matches()) { - pv.set(pv.getX(), (float)Math.min(tolerantParseDouble(m.group(1)), 18 * bgScale)); // don't allow pos note to exceed 18mmol on chart + pv.set(pv.getX(), Math.min(tolerantParseDouble(m.group(1)), 18 * bgScale)); // don't allow pos note to exceed 18mmol on chart } } catch (Exception e) { Log.d(TAG, "Exception matching position: " + e); @@ -1621,7 +1621,7 @@ private synchronized void addBgReadingValues(final boolean simple) { if (Math.abs(lastpv.getX() - pv.getX()) < ((10 * 60 * 1000) / FUZZER)) { // merge label with previous - Intelligent parsing and additions go here if (d) - Log.d(TAG, "Merge treatment difference: " + Float.toString(lastpv.getX() - pv.getX())); + Log.d(TAG, "Merge treatment difference: " + Double.toString(lastpv.getX() - pv.getX())); String lastlabel = String.valueOf(lastpv.getLabelAsChars()); if (lastlabel.length() > 0) { lastpv.setLabel(lastlabel + "+" + mylabel); @@ -1718,7 +1718,7 @@ private synchronized void addBgReadingValues(final boolean simple) { height = cob_insulin_max_draw_value; PointValue pv = new HPointValue((double) fuzzed_timestamp, (float) height); if (d) - Log.d(TAG, "Cob total record: " + JoH.qs(height) + " " + JoH.qs(iob.cob) + " " + Float.toString(pv.getY()) + " @ timestamp: " + Long.toString(iob.timestamp)); + Log.d(TAG, "Cob total record: " + JoH.qs(height) + " " + JoH.qs(iob.cob) + " " + Double.toString(pv.getY()) + " @ timestamp: " + Long.toString(iob.timestamp)); cobValues.add(pv); // warning should not be hardcoded } @@ -2080,7 +2080,7 @@ public Axis xAxis() { calendar.add(Calendar.HOUR, 1); } while (calendar.getTimeInMillis() < ((end_time * FUZZER) + ((long) predictivehours * 60 * 60 * 1000))) { - xAxisValues.add(new AxisValue((HPointValue.convert((double)calendar.getTimeInMillis() / FUZZER)), (timeFormat.format(calendar.getTimeInMillis())).toCharArray())); + xAxisValues.add(new AxisValue(((double)calendar.getTimeInMillis() / FUZZER), (timeFormat.format(calendar.getTimeInMillis())).toCharArray())); calendar.add(Calendar.HOUR, 1); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/BgSparklineBuilder.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/BgSparklineBuilder.java index b73435a8cc..d7ce4f0e43 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/BgSparklineBuilder.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/BgSparklineBuilder.java @@ -233,8 +233,8 @@ public Bitmap build() { chart.setBackgroundColor(backgroundColor); chart.setLineChartData(lineData); Viewport viewport = chart.getMaximumViewport(); - viewport.left = HPointValue.convert(start); - viewport.right = HPointValue.convert(end); + viewport.left = start; + viewport.right = end; if (height<=SCALE_TRIGGER) { // for pebble classic we always want the lowest mark to be in the same place on the image diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/HPointValue.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/HPointValue.java index 5f174f1fff..4f33a51346 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/HPointValue.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/HPointValue.java @@ -2,52 +2,33 @@ import static com.eveningoutpost.dexdrip.UtilityModels.BgGraphBuilder.FUZZER; -import com.eveningoutpost.dexdrip.BuildConfig; - import lecho.lib.hellocharts.model.PointValue; import lombok.AllArgsConstructor; /** * JamOrHam *

- * Due to range issues with float we need to wrap around a friendly origin timestamp expressing - * but storing real value in a bigger primitive type while maintaining compatibility with libraries + * Handle de-fuzzing and legacy calls */ @AllArgsConstructor public class HPointValue extends PointValue { - private static final long OFFSET = (BuildConfig.buildTimestamp - Constants.MONTH_IN_MS) / FUZZER; - - private double x; - private float y; - - @Override - public float getX() { - return convert(this.x); - } - - @Override - public float getY() { - return this.y; - } - - public HPointValue set(double x, float y) { - this.x = x; - this.y = y; + public HPointValue set(double x, double y) { + super.set(x, y); return this; } - public long getTimeStamp() { - return (long) (x * FUZZER); + public HPointValue(double x, float y) { + super(x, y); } - public static float convert(final double x) { - return (float) (x - OFFSET); + public HPointValue(double x, double y) { + super(x, y); } - public static double unconvert(final float x) { - return x + OFFSET; + public long getTimeStamp() { + return (long) (getX() * FUZZER); } } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/PointValueExtended.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/PointValueExtended.java index a0bccdd637..d429accca7 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/PointValueExtended.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/PointValueExtended.java @@ -18,7 +18,7 @@ public PointValueExtended(double x, float y, float filtered) { super(x, y); calculatedFilteredValue = filtered; } - public PointValueExtended(double x, float y) { + public PointValueExtended(double x, double y) { super(x, y); calculatedFilteredValue = -1; } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/AapsProfile.java b/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/AapsProfile.java index 0254eebcd7..b4205d3c7e 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/AapsProfile.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/AapsProfile.java @@ -22,7 +22,7 @@ public class AapsProfile { @Expose String timezone; - private List basalByMinute; + private List basalByMinute; private List profileByMinute; public boolean usingMgdl() { @@ -30,12 +30,12 @@ public boolean usingMgdl() { } // explode basal to per minute resolution - public List getBasalByMinute() { + public List getBasalByMinute() { if (basalByMinute == null) { if (basal != null) { - float current = 0f; + double current = 0d; int currentMinute = 0; - final List byMinute = new ArrayList<>(1440); + final List byMinute = new ArrayList<>(1440); for (int i = 0; i < 1440; i++) { byMinute.add(current); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/BasalProfile.java b/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/BasalProfile.java index 481d6f251b..327b15503f 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/BasalProfile.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/BasalProfile.java @@ -26,7 +26,7 @@ private static String getPrefix(final String ref) { return BASAL_PREFIX + ref; } - public static void save(final String ref, final List segments) { + public static void save(final String ref, final List segments) { Pref.setString(getPrefix(ref), JoH.defaultGsonInstance().toJson(segments)); //android.util.Log.d("PROFILEXX", "Saved value:" + Pref.getString(getPrefix(ref), "null")); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/BasalProfileEditor.java b/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/BasalProfileEditor.java index a4facd6593..432f7d4b49 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/BasalProfileEditor.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/profileeditor/BasalProfileEditor.java @@ -495,11 +495,11 @@ private void setPlusMinusVisible(final boolean visible) { basalStepLabel.setVisibility(visible ? View.VISIBLE : View.INVISIBLE); } - private List getListOfValues() { + private List getListOfValues() { final int columns = chart.getChartData().getColumns().size(); - final ArrayList values = new ArrayList<>(columns); + final ArrayList values = new ArrayList<>(columns); for (int col = 0; col < columns; col++) { - values.add(JoH.roundFloat(chart.getChartData().getColumns().get(col).getValues().get(0).getValue(), 2)); + values.add(JoH.roundDouble(chart.getChartData().getColumns().get(col).getValues().get(0).getValue(), 2)); } return values; } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/ui/charts/BasalChart.java b/app/src/main/java/com/eveningoutpost/dexdrip/ui/charts/BasalChart.java index 011737da09..f74b966bfa 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/ui/charts/BasalChart.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/ui/charts/BasalChart.java @@ -65,7 +65,7 @@ public static float getTotalImmutableBasal(final ColumnChartData columnChartData } public static void refreshAxis(final ColumnChartView chart) { - chart.getChartData().setAxisYRight(chartYAxis(chart.getMaximumViewport().top)); + chart.getChartData().setAxisYRight(chartYAxis((float) chart.getMaximumViewport().top)); } private static List getColumns(final String profileName, @ColorInt int color) { @@ -148,7 +148,7 @@ public static float getMaxYvalue(ColumnChartData lineData) { float max_height = 0.2f; for (Column col : lineData.getColumns()) { final SubcolumnValue sub = col.getValues().get(0); - final float val = Math.max(sub.getValue(), sub.getImmutableOriginValue()); + final float val = (float) Math.max(sub.getValue(), sub.getImmutableOriginValue()); if (val > max_height) { max_height = val; } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/BitmapLoader.java b/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/BitmapLoader.java index 00cebb3f6a..ee5e2c2edc 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/BitmapLoader.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/ui/helpers/BitmapLoader.java @@ -144,8 +144,8 @@ private static int getBundleSizeInBytes(Bundle bundle) { // Accessed via interface - protect with proguard or silently fails? - public String getScaledKeyName(String key, final float scaler) { - if (scaler != 1f) { + public String getScaledKeyName(String key, final double scaler) { + if (scaler != 1d) { key += "-" + scaler; } return key; @@ -158,7 +158,7 @@ public Bitmap loadScaledBitmap(final String key) { } // Accessed via interface - public String prepareScaledBitmap(final String originalKey, final float scaler) { + public String prepareScaledBitmap(final String originalKey, final double scaler) { final String key = getScaledKeyName(originalKey, scaler); if (cache.get(key) == null) { final Bitmap discard = loadScaledBitmap(originalKey, scaler); @@ -168,7 +168,7 @@ public String prepareScaledBitmap(final String originalKey, final float scaler) // Accessed via interface - protect with proguard or silently fails // @Override - public Bitmap loadScaledBitmap(final String originalKey, final float scaler) { + public Bitmap loadScaledBitmap(final String originalKey, final double scaler) { String key = originalKey; if (scaler != 1f) { key += "-" + scaler; diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/watch/miband/Firmware/WatchFaceParts/Utils/BgMibandSparklineBuilder.java b/app/src/main/java/com/eveningoutpost/dexdrip/watch/miband/Firmware/WatchFaceParts/Utils/BgMibandSparklineBuilder.java index c2890b5ea3..3c142e6f1a 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/watch/miband/Firmware/WatchFaceParts/Utils/BgMibandSparklineBuilder.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/watch/miband/Firmware/WatchFaceParts/Utils/BgMibandSparklineBuilder.java @@ -99,8 +99,8 @@ public Bitmap build() { chart.setBackgroundColor(backgroundColor); chart.setLineChartData(lineData); Viewport viewport = chart.getMaximumViewport(); - viewport.left = HPointValue.convert(start); - viewport.right = HPointValue.convert(end); + viewport.left = start; + viewport.right = end; if (height <= SCALE_TRIGGER) { viewport.bottom = 0; viewport.top = (float) (bgGraphBuilder.doMgdl ? 16 * Constants.MMOLL_TO_MGDL : 16); From 87c3a423c9e477c906bbbe1bb410c78c88318a5b Mon Sep 17 00:00:00 2001 From: Jamorham Date: Fri, 4 Nov 2022 20:40:15 +0000 Subject: [PATCH 078/982] LocaleApi: update min sdk version --- localeapi/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/localeapi/build.gradle b/localeapi/build.gradle index 65de1653d9..7482ff4e17 100644 --- a/localeapi/build.gradle +++ b/localeapi/build.gradle @@ -3,8 +3,8 @@ android { compileSdkVersion 29 defaultConfig { - minSdkVersion 18 - targetSdkVersion 18 + minSdkVersion 21 + targetSdkVersion 23 multiDexEnabled true } From 1038163ce6f5850b0cc1da664e0715d2c898e192 Mon Sep 17 00:00:00 2001 From: Jamorham Date: Fri, 4 Nov 2022 20:42:07 +0000 Subject: [PATCH 079/982] Preferences: disable remote logging option --- app/src/main/res/xml/pref_advanced_settings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/xml/pref_advanced_settings.xml b/app/src/main/res/xml/pref_advanced_settings.xml index 11b927079d..478888648b 100644 --- a/app/src/main/res/xml/pref_advanced_settings.xml +++ b/app/src/main/res/xml/pref_advanced_settings.xml @@ -1395,6 +1395,7 @@ android:title="@string/extra_logging"> From d6d04bc7f7b3836d0a19b08f5cf4c20eaf431a75 Mon Sep 17 00:00:00 2001 From: Jamorham Date: Sat, 5 Nov 2022 09:39:22 +0000 Subject: [PATCH 080/982] Add updated tests --- .../dexdrip/profileeditor/BasalRepositoryTest.java | 4 ++-- .../dexdrip/profileeditor/ImportAapsProfileTest.java | 5 ++--- .../com/eveningoutpost/dexdrip/tidepool/UploadChunkTest.java | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/test/java/com/eveningoutpost/dexdrip/profileeditor/BasalRepositoryTest.java b/app/src/test/java/com/eveningoutpost/dexdrip/profileeditor/BasalRepositoryTest.java index 35461b5e14..1ae6d34e5f 100644 --- a/app/src/test/java/com/eveningoutpost/dexdrip/profileeditor/BasalRepositoryTest.java +++ b/app/src/test/java/com/eveningoutpost/dexdrip/profileeditor/BasalRepositoryTest.java @@ -31,9 +31,9 @@ public class BasalRepositoryTest extends RobolectricTestWithConfig { public void setup() { oldTimeZone = TimeZone.getDefault(); TimeZone.setDefault(TimeZone.getTimeZone("UTC")); - final List segments = new LinkedList<>(); + final List segments = new LinkedList<>(); for (int i = 1; i < 25; i++) { - segments.add(i / 10f); + segments.add(i / 10d); } BasalProfile.save(ACTIVE_RATE_NAME, segments); } diff --git a/app/src/test/java/com/eveningoutpost/dexdrip/profileeditor/ImportAapsProfileTest.java b/app/src/test/java/com/eveningoutpost/dexdrip/profileeditor/ImportAapsProfileTest.java index 643c4698f9..c90adec8c5 100644 --- a/app/src/test/java/com/eveningoutpost/dexdrip/profileeditor/ImportAapsProfileTest.java +++ b/app/src/test/java/com/eveningoutpost/dexdrip/profileeditor/ImportAapsProfileTest.java @@ -40,10 +40,9 @@ public void importFromMapTest() { System.out.println(item.toString()); } } - assertWithMessage("raw by minute matches").that(JoH.defaultGsonInstance().toJson(pjo.getBasalByMinute())).isEqualTo("[0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4]"); + assertWithMessage("raw by minute matches").that(JoH.defaultGsonInstance().toJson(pjo.getBasalByMinute())).isEqualTo("[0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4000000059604645]"); val redux = consolidate(pjo.getBasalByMinute(), 24); - assertWithMessage("raw by hour matches").that(JoH.defaultGsonInstance().toJson(redux)).isEqualTo("[0.4,0.4,0.4,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.4]"); - + assertWithMessage("raw by hour matches").that(JoH.defaultGsonInstance().toJson(redux)).isEqualTo("[0.4000000059604645,0.4000000059604645,0.4000000059604645,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4399999976158142,0.4000000059604645]"); val profile = pjo.getXdripMergedProfileList(); assertWithMessage("standard profile maps").that(JoH.defaultGsonInstance().toJson(profile)).isEqualTo("[{\"day_of_week\":0,\"start_min\":0,\"end_min\":419,\"carb_ratio\":12.0,\"sensitivity\":4.5,\"absorption_rate\":0.0},{\"day_of_week\":0,\"start_min\":420,\"end_min\":1319,\"carb_ratio\":10.0,\"sensitivity\":4.0,\"absorption_rate\":0.0},{\"day_of_week\":0,\"start_min\":1320,\"end_min\":1439,\"carb_ratio\":12.0,\"sensitivity\":4.0,\"absorption_rate\":0.0}]"); diff --git a/app/src/test/java/com/eveningoutpost/dexdrip/tidepool/UploadChunkTest.java b/app/src/test/java/com/eveningoutpost/dexdrip/tidepool/UploadChunkTest.java index 5f33310ecb..a985d4f536 100644 --- a/app/src/test/java/com/eveningoutpost/dexdrip/tidepool/UploadChunkTest.java +++ b/app/src/test/java/com/eveningoutpost/dexdrip/tidepool/UploadChunkTest.java @@ -242,8 +242,8 @@ public void setupDb() { aps.save(); } - val fl = new ArrayList(); - fl.add(1.0f); + val fl = new ArrayList(); + fl.add(1.0d); BasalProfile.save("1", fl); } From 1b73d508e86c300145e4413250ed218016bb5d46 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Sat, 5 Nov 2022 12:45:10 +0000 Subject: [PATCH 081/982] New translations strings.xml (Italian) --- app/src/main/res/values-it/strings-it.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/src/main/res/values-it/strings-it.xml b/app/src/main/res/values-it/strings-it.xml index b361399317..d1dbcc669b 100644 --- a/app/src/main/res/values-it/strings-it.xml +++ b/app/src/main/res/values-it/strings-it.xml @@ -1283,6 +1283,26 @@ URL Nightscout Follow Scarica anche i trattamenti da Nightscout come follower Scarica trattamenti + Nome utente CareLink + Nome utente di accesso CareLink + Password CareLink + Password di accesso a CareLink + Paese CareLink + Seleziona il tuo paese CareLink. + Lingua CareLink + Codice lingua CareLink + Periodo di grazia + Periodo di tolleranza per la richiesta di dati in secondi + Intervallo richiesta dati mancanti + Intervallo di richieste dopo dati mancanti, in minuti + Glicemia capillare + Scarica misure capillare da CareLink + Boli + Scarica boli da CareLink + Pasti + Scarica pasti da CareLink + Notifiche + Scarica le notifiche da CareLink Impostazioni collector OB1 G5/G6 Completamente riscritto, dovrebbe funzionare su Android 4.4-9, supporta la modalità nativa e altro Usa il collector OB1 From 8016d0f850de5df6642ae2725487242f5b8e9998 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Mon, 7 Nov 2022 17:42:19 +0000 Subject: [PATCH 082/982] New translations strings.xml (Czech) --- app/src/main/res/values-cs/strings-cs.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-cs/strings-cs.xml b/app/src/main/res/values-cs/strings-cs.xml index 2973a57aea..46ac82ca8f 100644 --- a/app/src/main/res/values-cs/strings-cs.xml +++ b/app/src/main/res/values-cs/strings-cs.xml @@ -41,6 +41,7 @@ Nebo naskenovat čárový kód na přijímači MongoDB + Přímé nahrávání databáze, není pro Nightscout doporučeno URI Vložte MongoDB URI\" Přepište příklady {} skutečnými hodnotami. Složené závorky odstraňte. @@ -88,6 +89,7 @@ Odesílat ostatní výstrahy do hodinek Povolit Další výstrahy + Body grafu v hodinkách Zobrazí drobné tečky místo malých Povolit nastavte počet hodin v grafu From 470b91fead56d6bd8d05b7834349bbaa6a155887 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Tue, 8 Nov 2022 17:47:34 +0000 Subject: [PATCH 083/982] New translations strings.xml (Czech) --- app/src/main/res/values-cs/strings-cs.xml | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/app/src/main/res/values-cs/strings-cs.xml b/app/src/main/res/values-cs/strings-cs.xml index 46ac82ca8f..b0dc7883d9 100644 --- a/app/src/main/res/values-cs/strings-cs.xml +++ b/app/src/main/res/values-cs/strings-cs.xml @@ -92,16 +92,23 @@ Body grafu v hodinkách Zobrazí drobné tečky místo malých Povolit + Graf v hodinkách + Zobrazí graf na pozadí hodinek + Graf v hodinkách nastavte počet hodin v grafu Graf widgetu nastavte počet hodin v grafu + Body grafu widgetu Zobrazí drobné tečky místo malých Povolit Graf widgetu Zobrazí graf ve widgetu + Nastavení Watchface (může zvýšit spotřebu baterie) + Nastavení widgetu (může zvýšit spotřebu baterie) Něco je špatně :( Hlášení o tom bylo odesláno Kliknout na Tick ikonu pro potvrzení. Není potřeba měnit konfigurační řetězec. Konfigurace Taskeru + Zavřít nastavení Přidat widget Seznam výstrah Mluvené ošetření @@ -156,8 +163,11 @@ Kontrola aktualizací... Signál nezachycený {0, choice,0#{0, number, integer} Minut zpět|1#{0, number, integer} Minuta zpět|1<{0, number, integer} Minut zpět} + {0, choice,0#Senzor expiroval!|1#Expiruje za {0, number} den|1<Expiruje za {0, number} dny/dnů} Končí v {0} " minut zpět" + "V režimu \"Libre v celém domě\": zatím nebylo nic naměřeno." + "V režimu \"Libre v celém domě\": Poslední naměřená hodnota " " minuta zpět" Zobrazit mapu Parakeetů Přepnout Parakeet do módu nastavování @@ -295,6 +305,7 @@ Hodnoty vysoké glykémie Hodnoty v rozsahu Vybrána výchozí barva + Barva hodnoty glykémie a šipky trendu xDrip+ možnost nastavení Příklad grafu Křivky ošetření / predikce @@ -311,6 +322,7 @@ Prosím řekněte ošetření jako:\nx.x jednotek inzulínu / xx gramů sacharidů Rozpoznávání hlasu není podporováno Poznámka ošetření + xDrip používá funkci Usnadnění pouze k úpravě obrazovky, když je zařízení uzamčené. Toto je pravděpodobně užitečné pouze v případě, že máš telefon s funkcí \"Always On Display\" a máš ji aktivovanou. xDrip nekomunikuje s Androidem jiným způsobem. Nelze exportovat databázi "Exportováno do " Nastavit následující vstup jako hlasový @@ -457,6 +469,7 @@ Spustit senzor Ladění a ostatní možnosti Hodnoty nízké glykémie + Nesprávné hodnoty glykémie Obnovit výchozí nastavení Filtrované hodnoty Barva ošetření @@ -547,8 +560,12 @@ Vyhledat glukometr Zakazuji sběr dat na hodinkách v důsledku vybité baterie Zakazuji sběr dat na hodinkách v důsledku %1$d minut promeškaných hodnot na hodinkách! + U:%1$su Sach:%1$sg + S/I:%1$s Kroky:%1$d + km:%1$s + mi:%1$s Pokud používáte privátní InfluxDB databázi, toto by mělo být povoleno Nahraďte příklady v {} skutečnými hodnotami Vložit InfluxDB URI @@ -589,11 +606,22 @@ Zastaralé BT zámky znamenají vyšší spotřebu, ale mohou být nutné pro dobrý příjem Resetovat BT vypnutím a zapnutím každých pár minut. Používat pouze pro testování! Může kolidovat s ostatními aplikacemi používajícími BT Trvale resetovat BT + Experimentální podpora pro zařízení \"Vysílač\" z @FPV-UAV - pouze test + Vysílač (PL) podpora + Experimentální podpora pro RFduino od Tomasz-e Staachowicz-e + Podpora RFDUINO Opakovaně restartovat kolektor, pokud nejsou přijata data. Povolit pouze pokud nepřijímáte data Agresivní restart + Stará metoda - nedoporučená! Pokusí se předpovědět hodnoty každou minutu na základě starších hodnot. + Používat externí zdroj (OOP) na aplikování Libre algoritmu. (blukon/NFC/LibreAlarm) Zobrazovat predikci + Externí Libre algoritmus. Aplikovat xDrip kalibrační algoritmus na OOP data OOP kalibrační algoritmus + Aplikovat kalibrační algoritmus xDripu na OOP2 data. + OOP kalibrační algoritmus. + Použít průměr z 5 měření, pro získání plynulejších dat z Libre. + Vyhlazovat data z Libre. Načíst historii z Libre Načíst chybějící hodnoty z Blukonu při připojení senzoru Při použití Share, xDrip bude zobrazovat hodnoty na příjímači běžně skryté @@ -647,6 +675,8 @@ Hlavní hodnota glykémie z pluginu! Plugin přepíše vše Všechny nové hodnoty glykémií budou použité z pluginu a ne ze standardního xDrip algoritmu. Neotestováno, může být nepřesné nebo obsahovat chyby. Dbejte zvýšené opatrnosti! + Původní užší rozsah povolených gradientů v rámci klasického kalibračního algoritmu Xdrip (před rokem 2017). Původní gradienty jsou pravděpodobnější! (Pouze režim pro vývojáře) + Zastaralý způsob kalibrace Jak získávat data z Dexcomu/vysílače? Volby pro senzory založené na NFC skenování telefonem Možnosti NFC skenování @@ -663,6 +693,7 @@ Zapípat při skenování v xDrip+ Používat rychlejší víceblokovou metodu čtení Používat any-tag metodu čtení + Nízká úroveň diagnostické/prototypové hodnoty ID Dexcom vysílače, např. 12AB3 Rozšířené nastavení G5 pro vyjímečné situace Možnosti ladění pro G5/G6 @@ -683,7 +714,11 @@ Adresa URI pro MongoDB Pro místní adresy 192.168.x.x přeskočit nahrávání, pokud neexistuje připojení přes místní síť Přeskočit nahrávání přes LAN + Odeslat data z vysílače Libre + Povolit více než jedné aplikaci xDrip připojit se k zařízením Bluetooth a uložit přijatá data do cloudu. To by mělo umožnit přístup k senzorům Libre s vysílači MiaoMiao v režimu \"v celém domě\", nebo například dvěma rodičům, kteří chtějí používat stejné zařízení Bluetooth. Povolit synchronizaci s InfluxDB + InfluxDB Uri + Název InfluxDB databáze Uživatel Heslo Povolit nahrávání na servery Dexcom @@ -712,26 +747,44 @@ Minimální hodnota v rozsahu Stisknutí tlačítka hlasitosti vypne alarm, pokud je aplikace aktivní Tlačítka pro vypnutí alarmu + Vytvořit zástupce seznamu výstrah glykémií v hlavním menu + Zástupce seznamu výstrah glykémií + Potlačit odložené a aktivní výstrahy po přednastaveném časovém úseku chybějících měření + Potlačit odložené a aktivní výstrahy po .. minutách (minimálně 10) Upozornit, když je požadována kalibrace + Kolik hodin mezi požadavky na kalibraci Hodiny mezi kalibracemi + Nastavit zvuk žádosti o kalibraci. Přebít tichý mód telefonu I při nabíjení + Odznač, pokud nechceš dostávat žádosti o kalibraci v době nabíjení telefonu + Pokračuj v upozorňování pokud se neprovede žádná kalibrace Opakovat výstrahy + Počet minut k opětovné žádosti o kalibraci. + Počet minut mezi opakovanými upozorněními Upozornění po x minutách zašuměných hodnot Odložení výstrahy Počet minut před spuštěním stejné výstrahy po odložení. + Znovu upozornit před časem odložení Opakovat výstrahu, pokud není dříve odložena + Čas opětovného zobrazení upozornění + Počet SEKUND, po kterých se opětovně zobrazí stejné upozornení. Rychlý pokles glykemie Rychlý nárůst glykemie práh poklesu práh nárůstu + Nastavit zvuk výstrah glykémie. Zvuk výstrahy Přebít tichý režim pro tyto výstrahy Opakovat maximálně každých (minut) + Když trend naznačuje riziko hypoglykémie Upozornit, když úroveň baterie klesne pod + Alarmy úrovně nabití senzoru Nízké procento baterie + 20 minut.]]> Sacharidový poměr Nastavení inzulinových profilů + Zde lze povolit nebo konfigurovat různé inzulinové profily Citlivost na inzulín Vynucení angličtiny Vyberte konkrétní jazyk @@ -740,6 +793,7 @@ Hodnoty predikce nízkoúrovňové Jméno WiFi se musí shodovat ANO, odeslat! + Když je detekováno vozidlo, povolit extra funkce Povolit režim vozidla Přehrát zvuk Opakovat zvuk From 7936bb43ffb164e38c95c4a4ee7238b5db141f3a Mon Sep 17 00:00:00 2001 From: Jamorham Date: Tue, 8 Nov 2022 19:26:22 +0000 Subject: [PATCH 084/982] UiBased: track connections --- .../dexdrip/Services/UiBasedCollector.java | 1 + .../com/eveningoutpost/dexdrip/cgm/dex/BlueTails.java | 7 +++++-- .../eveningoutpost/dexdrip/cgm/dex/ClassifierAction.java | 9 +++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/Services/UiBasedCollector.java b/app/src/main/java/com/eveningoutpost/dexdrip/Services/UiBasedCollector.java index 6d48f3a5b2..bb6ccd5146 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/Services/UiBasedCollector.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/Services/UiBasedCollector.java @@ -71,6 +71,7 @@ public class UiBasedCollector extends NotificationListenerService { coOptedPackages.add("com.camdiab.fx_alert.mgdl"); coOptedPackages.add("com.camdiab.fx_alert.hx.mmoll"); coOptedPackages.add("com.camdiab.fx_alert.hx.mgdl"); + coOptedPackages.add("com.medtronic.diabetes.guardian"); } @Override diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/BlueTails.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/BlueTails.java index a454537994..fcb5414647 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/BlueTails.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/BlueTails.java @@ -3,7 +3,9 @@ import static com.eveningoutpost.dexdrip.G5Model.BluetoothServices.Control; import static com.eveningoutpost.dexdrip.G5Model.BluetoothServices.ProbablyBackfill; import static com.eveningoutpost.dexdrip.cgm.dex.ClassifierAction.BACKFILL; +import static com.eveningoutpost.dexdrip.cgm.dex.ClassifierAction.CONNECT; import static com.eveningoutpost.dexdrip.cgm.dex.ClassifierAction.CONTROL; +import static com.eveningoutpost.dexdrip.cgm.dex.ClassifierAction.action; import static com.eveningoutpost.dexdrip.cgm.dex.ClassifierAction.lastReadingTimestamp; import android.bluetooth.BluetoothAdapter; @@ -44,7 +46,7 @@ public class BlueTails extends BluetoothGattCallback implements BtCallBack3 { private BluetoothManager mBluetoothManager; private BluetoothAdapter mBluetoothAdapter; - + private final byte[] EMPTY_PAYLOAD = new byte[1]; private final HashMap characteristics = new HashMap<>(); { @@ -102,6 +104,7 @@ public void onConnectionStateChange(final BluetoothGatt gatt, final int status, if (newState == STATE_CONNECTED) { gatt.discoverServices(); + action(CONNECT, EMPTY_PAYLOAD); } if (newState == STATE_DISCONNECTED) { gatt.close(); @@ -139,7 +142,7 @@ public synchronized void onCharacteristicChanged(final BluetoothGatt gatt, final val achar = characteristics.get(characteristic.getUuid()); if (achar != null) { - ClassifierAction.action(achar.action, bytes); + action(achar.action, bytes); } else { UserError.Log.wtf(TAG, "Got onCharacteristicChanged for something we don't know about: " + characteristic.getUuid()); } diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/ClassifierAction.java b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/ClassifierAction.java index 68add1ae70..fa24615dc3 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/ClassifierAction.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/cgm/dex/ClassifierAction.java @@ -26,6 +26,7 @@ public class ClassifierAction { private static final String TAG = ClassifierAction.class.getSimpleName(); + static final String CONNECT = "connect"; static final String BACKFILL = "backfill"; static final String CONTROL = "control"; static final String TXID = "UIUIUI"; @@ -37,6 +38,12 @@ public static void action(final String type, final byte[] data) { if (data == null || data.length == 0) return; UserError.Log.d(TAG, "Type: " + type + " hex: " + JoH.bytesToHex(data)); switch (type) { + + case CONNECT: + UserError.Log.d(TAG, "Connect"); + stream.reset(); + break; + case BACKFILL: stream.pushNew(data); UserError.Log.d(TAG, "Added backfill cache: " + JoH.bytesToHex(data)); @@ -46,7 +53,6 @@ public static void action(final String type, final byte[] data) { val g7EGlucose = new EGlucoseRxMessage(data); if (g7EGlucose.isValid()) { DexTimeKeeper.updateAge(TXID, (int) g7EGlucose.clock); - stream.reset(); UserError.Log.d(TAG, "Got valid glucose: " + g7EGlucose); if (g7EGlucose.usable()) { lastReadingTimestamp = g7EGlucose.timestamp; @@ -85,7 +91,6 @@ public static void action(final String type, final byte[] data) { if (glucose.usable()) { UserError.Log.d(TAG, "Updating age from timestamp: " + glucose.timestamp); DexTimeKeeper.updateAge(TXID, glucose.timestamp); - stream.reset(); val ts = DexTimeKeeper.fromDexTime(TXID, glucose.timestamp); lastReadingTimestamp = ts; if (BgReading.getForPreciseTimestamp(ts, DexCollectionType.getCurrentDeduplicationPeriod(), false) == null) { From bdf67c9e7a819a3179166547a197545c3b6b1f4b Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Wed, 9 Nov 2022 18:08:30 +0000 Subject: [PATCH 085/982] New translations strings.xml (German) --- app/src/main/res/values-de/strings-de.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-de/strings-de.xml b/app/src/main/res/values-de/strings-de.xml index 85cc51868f..c59870fde8 100644 --- a/app/src/main/res/values-de/strings-de.xml +++ b/app/src/main/res/values-de/strings-de.xml @@ -601,7 +601,7 @@ Setze Bluetooth zurück, in dem es an und wieder ausgeschaltet wird, wenn keine Daten innerhalb von 20 Minuten empfangen werden. Bluetooth-Watchdog Setze Bluetooth zurück, in dem es an und wieder ausgeschaltet wird, damit die G5-Datenquelle funktioniert. Ohne dies wird der G5-Kollektor vielleicht versagen. - G5 Bluetooth-Watchdog + Dex Bluetooth-Watchdog Wenn der Bluetooth-Watchdog oft aktiviert wird, dann könnte es helfen, diese Option abzuwählen Ältere Bluetooth-Wakelocks, die mehr Batterie verbrauchen können, aber möglicherweise für den Bluetoothempfang nötig sind. Setze Bluetooth zurück indem es alle paar Minuten and und wieder ausgeschaltet wird! Wähle dies nur zum Testen aus. Dies kann Anderes von der Bluetooth-Nutzung abhalten. @@ -696,12 +696,12 @@ Systemnaher Diagnose-/Prototypwert ID deines Dexcom-Transmitters, z.B. 12AB3 Erweiterte G5-Einstellungen für seltene Situationen - G5 Debugeinstellungen + Dex G5/G6/ONE Debugeinstellungen Einige Geräte funktionieren besser, wenn sie konstant scannen, andere nicht. Falls das Lesen zuverlässig funktioniert, wenn diese Einstellung nicht ausgewählt ist, solltest du eine längere Batterielaufzeit haben. Normalerweise ist es am besten, dies deaktiviert zu lassen. Konstant nach dem G5 scannen Dies ist ausschlaggebend bei einigen Android-Geräten zum korrekten Verbinden, kann aber auch verpasste Werte verursachen, wenn andere UI intensive Activities benutzt werden. G5 auf den UI-Thread zwingen - Das G5 vor jedem Lesen authentifizieren + Vor jedem Lesen authentifizieren Dies wird eine volle Authentifikation bei jedem Leseversuch versuchen. Notwending für neuere G5-Transmitter Firmwareversionen. Das G5 vor jedem Lesen entkoppeln Dies wird das G5 von der Paring-Geräte-Liste deines Geräts entfernen und eine volle Authentifikation und Bonding bei jedem Lesen versuchen. @@ -1301,8 +1301,8 @@ Boli von CareLink herunterladen Mahlzeiten Mahlzeiten von CareLink herunterladen - Notizen - Notizen von CareLink herunterladen + Benachrichtigungen + Benachrichtigungen von CareLink herunterladen OB1 G5/G6 Kollektor-Einstellungen Komplett neu gemacht, sollte unter Android 4.4-9 funktionieren, nativen Modus und mehr unterstützen OB1 Kollektor verwenden @@ -1318,8 +1318,8 @@ Auf xDrip zurückgreifen Verwende Heuristiken, um Bluetooth-Scannen zu minimieren und Strom zu sparen Scannen minimieren - Ich nutze den G6 Sensor - Unterstützung für G6 + Ich nutze einen G6 oder ONE Sensor + Unterstützung für G6/ONE Der OB1 Kollektor kann die Kopplung aufheben, wenn er glaubt, dass die Verschlüsselung fehlgeschlagen ist. Wenn Unpairing zum Problem wird, deaktivierebbdiese Option. Wenn du danach die Verbindung vollständig verlierst, stelle sicher, dass sie aktiviert ist. OB1-Entkoppelung erlauben OB1-Datensammler kann Bonding einleiten. From eecec3e2006c0a93774ffb9dc1265388acda7dc7 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Thu, 10 Nov 2022 18:13:37 +0000 Subject: [PATCH 086/982] New translations strings.xml (Hungarian) --- app/src/main/res/values-hu/strings-hu.xml | 26 ++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-hu/strings-hu.xml b/app/src/main/res/values-hu/strings-hu.xml index 45591d48b0..5bd47091df 100644 --- a/app/src/main/res/values-hu/strings-hu.xml +++ b/app/src/main/res/values-hu/strings-hu.xml @@ -694,12 +694,12 @@ Rendszerrel kapcsolatos diagnosztikai/prototípus érték Dexcom távadó ID, pl. 12AB3 G5 haladó beállítások - G5/G6 hibakeresési beállítások + G5/G6/ONE hibakeresési beállítások Egyes készülékek jobban működnek folyamatos leolvasással. Ha leolvasás megbízható enélkül is, akkor ne engedélyezze és akkuidőt takarít meg G5 folyamatos leolvasása Ez egyes Android-eszközök esetében elengedhetetlen a megfelelő csatlakozáshoz, de más, felhasználói felületet igénylő tevékenységek használata esetén kihagyott méréseket okozhat. G5 UI Thread-be kényszerítése - G5 azonosítása minden olvasás előtt + Azonosítása minden olvasás előtt Mind VC-érték olvasás előtt azonosítja szenzort. Az újabb G5 szenzorok esetében szükséges. Kapcsolat bontása minden olvasás előtt (G5) Ezzel a G5 szenzor párosítása minden olvasás előtt megszűnik, és lehetővé teszi az azonosítást minden olvasás előtt. @@ -1269,6 +1269,24 @@ Nightscout követő URL A kezeléseket is töltse le Nightscout követőként Kezelések letöltése + CareLink felhasználónév + Felhasználónév CareLink belépéshez + CareLink jelszó + CareLink bejelentkezési jelszó + CareLink ország + Válassza ki az országát + CareLink nyelve + CareLink nyelvének kiválasztása + Türelmi idő + Maximális várakozási idő adatokra (s) + VC mérés vérből + Ujjbegy VC értékek letöltése CareLink-ből + Bólusok + Bólus adagok letöltése CareLink-ből + Étkezések + Étkezés adatok letöltése CareLink-ből + Értesítések + Értesítések letöltése CareLink-ből OB1 G5/G6 kollektor beállítások Teljesen újraír kód. Működnie kell a 4.4 - 9-es Android verziókon. Támogatja a natív módot és még sok mást is OB1 kollektor használata @@ -1285,7 +1303,7 @@ Heurisztikák használata a BT-keresés és az energiafelhasználás csökkentéséért Keresés minimalizálása G6 szenzort használok - G6 támogatás + G6/ONE támogatás Az OB1 kollektor bonthatja a kapcsolatot, ha a titkosítás sikertelen. Ha problémákat okoz a szétkapcsolás, ne engedélyezze ezt a lehetőséget. Ha eztán teljesen megszűnik a kapcsolat, bizonyosodjon meg róla, hogy engedélyezve van. OB1 kapcsolatbontás engedélyezése Az OB1 kollektor kezdeményezhet kapcsolatot. @@ -1643,6 +1661,8 @@ Helyreállítás Helyreállítás sikeres - app újraindítása SIKERTELEN visszaállítás! + Hiba! + Bejelentkezés sikertelen Szkennelés háttérben is Android 8-astól lehetséges a szkennelés háttérben is From fcabe6660e7bf832940e0c5f8243366abfc0bbb3 Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Sat, 12 Nov 2022 21:27:50 +0000 Subject: [PATCH 087/982] New translations strings.xml (Polish) --- app/src/main/res/values-pl/strings-pl.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/src/main/res/values-pl/strings-pl.xml b/app/src/main/res/values-pl/strings-pl.xml index 5b5caedc90..06c669c888 100644 --- a/app/src/main/res/values-pl/strings-pl.xml +++ b/app/src/main/res/values-pl/strings-pl.xml @@ -1277,6 +1277,19 @@ Pobierz również zabiegi z Nightscout jako obserwator Pobieraj zabiegi Nazwa użytkownika CareLink + Login do CareLink + Hasło CareLink + Hasło logowania do CareLink + Kraj CareLink + Wybierz swój kraj CareLink. + Język CareLink + Kod języka CareLink + Bolusy + Pobierz bolusy z CareLink + Posiłki + Pobierz posiłki z CareLink + Powiadomienia + Pobierz powiadomienia z CareLink Ustawienia Kolektora OB1 G5/G6 Użyj kolektora OB1 Użyj wbudowanego algorytmu transmitera do obliczeń wartości poziomu glukozy kiedy to możliwe. From 62b00d24e66675472501f8c97b8600b46dfa194b Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Sun, 13 Nov 2022 21:22:55 +0000 Subject: [PATCH 088/982] New translations strings.xml (Polish) --- app/src/main/res/values-pl/strings-pl.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-pl/strings-pl.xml b/app/src/main/res/values-pl/strings-pl.xml index 06c669c888..0e38cdda45 100644 --- a/app/src/main/res/values-pl/strings-pl.xml +++ b/app/src/main/res/values-pl/strings-pl.xml @@ -1344,8 +1344,10 @@ Ikona wartości przetestowana Pokazuje bieżącą wartości glukozy jako ikonę paska powiadomień i ekranu blokady Pokaż małą ikonę wartości + Pokazuje większą ikonę w obszarze powiadomień widoczną po otwarciu Użyj dużej ikony wartości Pokaż strzałkę trendu w dużej ikonie + Pokaż strzałkę w Dużej Ikonie Pokaż xDrip przy uruchomieniu telefonu Licencja Zabiegi, kalibracje i inne działania ze strony obserwatorów będą akceptowane From 5b624227b7c54683f4865efc6246f887e3867d47 Mon Sep 17 00:00:00 2001 From: Navid Date: Mon, 14 Nov 2022 15:08:52 -0500 Subject: [PATCH 089/982] Disable sound and vibration --- .../dexdrip/UtilityModels/SettingsValidation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SettingsValidation.java b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SettingsValidation.java index db0a719d5e..15b0dedbfb 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SettingsValidation.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/UtilityModels/SettingsValidation.java @@ -43,7 +43,7 @@ public static void notifyAboutInadvisableSettings() { private static int notify(String short_name, String setting_string, String msg, int id) { - JoH.showNotification("Inadvisable settings - " + short_name, "Please enable or disable " + setting_string, null, id, true, true, null, null, ((msg.length() > 0) ? msg : "")); + JoH.showNotification("Inadvisable settings - " + short_name, "Please enable or disable " + setting_string, null, id, false, false, null, null, ((msg.length() > 0) ? msg : "")); return id + 1; } } From bf6eb8ce7b2b55a7b76b23b744295db73dce921d Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Mon, 14 Nov 2022 21:29:18 +0000 Subject: [PATCH 090/982] New translations strings.xml (Czech) --- app/src/main/res/values-cs/strings-cs.xml | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/app/src/main/res/values-cs/strings-cs.xml b/app/src/main/res/values-cs/strings-cs.xml index b0dc7883d9..dc57b2b5e5 100644 --- a/app/src/main/res/values-cs/strings-cs.xml +++ b/app/src/main/res/values-cs/strings-cs.xml @@ -786,8 +786,25 @@ Nastavení inzulinových profilů Zde lze povolit nebo konfigurovat různé inzulinové profily Citlivost na inzulín + Hodnota glykémie sekundárního pluginu + Počítadlo kroků- 1. barva + Počítadlo kroků- 2. barva + Výrazné barvy + Vlastní barva titulní/navigační lišty + Vrchní titulní lišta + Spodní navigační lišta Vynucení angličtiny + V současné době používáš místní jazyk svého zařízení + V současné době je vynucené používání alternativního jazyka + Pokiud požaduješ jinou jazykovou verzi v aplikaci xDrip+ Vyberte konkrétní jazyk + Linky rozsahu ve widgetu + Zobrazíit linku spodní a vrchní hranice ve widgetu. + Zpožděné, ale stabilnější, když je senzor rušen (nedoporučeno) + Zobrazit náhled průvodce bolusem + Zobrazit výpočty inzulín/sacharidů + Zobrazit výpočty inzulín/sacharidů po celou dobu + Vždy zobrazovat náhled průvodce bolusem Zobrazit matematické simulace na základě profilu a sacharidových/inzulínových záznamů Prediktivní simulace Hodnoty predikce nízkoúrovňové @@ -829,8 +846,20 @@ Mírný nárůst Nárůst Rychlý nárůst + Výška mluvení + Přečíst výstrahy + Přečíst i detaily výstrah + Rozšířené nastavení blueReader + Nastavení blueReader + Zobrazuje odhadované dny odpočinku pro blueReader na domovské obrazovce poté, co je nutné znovu nabít baterii + Dny odpočinku na domovské obrazovce + Vypnout blueReader, pokud je kapacita baterie nižší než vybraná hodnota + Bezpečné vypnutí Hodnota v % + kde bude blueReader vypnutý dny + blueReader se vypne, když bude kapacita baterie nižší než + Zkontrolovat polohu blueReader na senzoru, když nebylo možné čtení dat! Oficiální aplikace Ano Garmin From 344deb4be19d42886f53a9064e3497bc4ad8ee1b Mon Sep 17 00:00:00 2001 From: Jamorham Date: Wed, 16 Nov 2022 18:50:12 +0000 Subject: [PATCH 091/982] Aidex: fix for home screen display --- .../com/eveningoutpost/dexdrip/utils/DexCollectionType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java index 07d7438c9a..107bdf6201 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/DexCollectionType.java @@ -83,7 +83,7 @@ public enum DexCollectionType { Collections.addAll(usesXbridge, DexbridgeWixel, WifiDexBridgeWixel); Collections.addAll(usesFiltered, DexbridgeWixel, WifiDexBridgeWixel, DexcomG5, WifiWixel, Follower, Mock); // Bluetooth and Wifi+Bluetooth need dynamic mode Collections.addAll(usesLibre, LimiTTer, LibreAlarm, LimiTTerWifi, LibreWifi, LibreReceiver); - Collections.addAll(isPassive, NSEmulator, NSFollow, SHFollow, WebFollow, LibreReceiver, UiBased, CLFollow); + Collections.addAll(isPassive, NSEmulator, NSFollow, SHFollow, WebFollow, LibreReceiver, UiBased, CLFollow, AidexReceiver); Collections.addAll(usesBattery, BluetoothWixel, DexbridgeWixel, WifiBlueToothWixel, WifiDexBridgeWixel, Follower, LimiTTer, LibreAlarm, LimiTTerWifi, LibreWifi); // parakeet separate Collections.addAll(usesDexcomRaw, BluetoothWixel, DexbridgeWixel, WifiWixel, WifiBlueToothWixel, DexcomG5, WifiDexBridgeWixel, Mock); Collections.addAll(usesTransmitterBattery, WifiWixel, BluetoothWixel, DexbridgeWixel, WifiBlueToothWixel, WifiDexBridgeWixel); // G4 transmitter battery From 0e849a2ea8ae5398f0d68f8a6040ff7054d4bb9b Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Mon, 21 Nov 2022 04:23:56 +0000 Subject: [PATCH 092/982] New translations strings.xml (Japanese) --- app/src/main/res/values-ja/strings-ja.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/res/values-ja/strings-ja.xml b/app/src/main/res/values-ja/strings-ja.xml index 124aa78ace..fd0c7c1df7 100644 --- a/app/src/main/res/values-ja/strings-ja.xml +++ b/app/src/main/res/values-ja/strings-ja.xml @@ -172,6 +172,7 @@ Parakeetのマップを表示 Parakeetをセットアップモードに切り替える イベントログを見る + リブレの傾向を表示 リブレの15 分グラフ リブレの最後の %d 分グラフ QRコードで設定を共有する @@ -261,6 +262,14 @@ 最後に数値を読み取り後、血糖値読み取りサービスを終了する。 最後に数値を読み取ってから数分 血糖値読み取りサービスを実行中のデバイス + ウェアログを同期 + イベントビューアにウェアログを送信 + ウェアログ プレフィックス + トリートメントの表示 + グラフにトリートメントポイントを表示 + ウェアのヘルスデータを利用 + 歩数カウンターが利用可能な場合は表示 + Pebble 統合 履歴 スマート通知 リセット From 0ca4c8b609b2e367d1d741421f229791a79bc0cd Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Tue, 22 Nov 2022 04:33:15 +0000 Subject: [PATCH 093/982] New translations strings.xml (Japanese) --- app/src/main/res/values-ja/strings-ja.xml | 28 +++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-ja/strings-ja.xml b/app/src/main/res/values-ja/strings-ja.xml index fd0c7c1df7..1606186c79 100644 --- a/app/src/main/res/values-ja/strings-ja.xml +++ b/app/src/main/res/values-ja/strings-ja.xml @@ -13,30 +13,30 @@ 認識不可のデバイス デバイスに接続しています 表形式のデータ - 表形式の計算済みデータ + 計算済みデータ 新しいセンサーを開始 新しいセンサーの位置 - センサーを中止 + センサーを停止 ナビパネル ナビゲーション バネルを開く ナビゲーション バネルを閉じる - カリブレーションの記録 - 接続済みUSBの一覧 + キャリブレーション履歴 + 接続済みのUSB スヌーズ X 分のスヌーズ通知 OK キャンセル No - 今後表示しないで下さい + 次回から表示しない "エラーとイベントの一覧" 主要な記録 偽の番号 通知を編集 初期キリブレーション - カリブレーションの変更 + キャリブレーションの上書 クラウドストレージ 自動構成 - バーコードで自動構成 + バーコードを利用で自動設定。 共有のバーコードをスキャン または共有の受信機のバーコードをスキャンする @@ -46,11 +46,11 @@ URI MongoDBのURIを入力 {} の中にある値の例を -貴方の正しい値に置き換えて下さい +自身の正しい値に置き換えて下さい mongodb://{user}:{password}@{host}.mongolab.com:{11111}/{database} コレクション名 コレクション名を入力 - CGMデータが保存されるのコレクション名 + CGMデータが保存されるコレクション名 デバイスの状態のコレクション名 デバイスの状態のコレクション名\"を入力 電池と他のデバイスデータが保存されるのコレクション名 @@ -270,9 +270,13 @@ ウェアのヘルスデータを利用 歩数カウンターが利用可能な場合は表示 Pebble 統合 + Pebbleにデータを表示 + Pebble 統合 履歴 + スヌーズ アラート スマート通知 リセット + xDrip+ 追加設定 毎日 非常に低い 低い @@ -304,7 +308,7 @@ km:%1$s mi:%1$s {} の中にある値の例を -貴方の正しい値に置き換えて下さい +自身の正しい値に置き換えて下さい データベース ユーザー パスワード @@ -316,7 +320,7 @@ Blucon Tomato エラー - センサーを中止 + センサーを停止 初期キリブレーション Bluetoothスキャン @@ -389,7 +393,7 @@ テストの準備をします! 急がず30秒待ちます スキャン中 - 今後表示しないで下さい + 次回から表示しない ゼロ値 用量を調整 投与量 From 3990dcf794b73ef3f68296e45c030b9cd806076e Mon Sep 17 00:00:00 2001 From: JamOrHam Date: Fri, 25 Nov 2022 08:36:10 +0000 Subject: [PATCH 094/982] New translations strings.xml (German) --- app/src/main/res/values-de/strings-de.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings-de.xml b/app/src/main/res/values-de/strings-de.xml index c59870fde8..dde0124493 100644 --- a/app/src/main/res/values-de/strings-de.xml +++ b/app/src/main/res/values-de/strings-de.xml @@ -1296,7 +1296,7 @@ Abrufintervall für verpasste Daten Abrufintervall nach verpassten Daten in Minuten BZ blutig gemessen - Blutige BZ Werte von CareLink herunterladen + Blutige BZ-Werte von CareLink herunterladen Boli Boli von CareLink herunterladen Mahlzeiten From 02d01d86d99ab2260ae484bad960537a2ab85e08 Mon Sep 17 00:00:00 2001 From: Jamorham Date: Sun, 27 Nov 2022 10:20:04 +0000 Subject: [PATCH 095/982] Add interoperability libraries --- app/libs/core-1.1.0.aar | Bin 0 -> 693390 bytes app/libs/javakotlininterop.aar | Bin 0 -> 3551 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/libs/core-1.1.0.aar create mode 100644 app/libs/javakotlininterop.aar diff --git a/app/libs/core-1.1.0.aar b/app/libs/core-1.1.0.aar new file mode 100644 index 0000000000000000000000000000000000000000..9b8992694aad67a2555f5d275ad99528bfe6f803 GIT binary patch literal 693390 zcmdp;V|b-m_V#1jwvCFNRBYR}twLem6*9 zCGQNK-Jk&gL3V)w0RHkz?q6!a{j6c>Py&fxlcUxyC zS{Fvv-zoBoi?Ou*;~E~$e_X@d@sDdbn*VVPYnwl=VfG*3Vde72$6=`d$2IJJuLk(v zjQYn1Vexwh@e8AyJN@x-SpO$xzUA*6$1ft8u??+*fb#Fu`2`cx-!>`=01yDgYd97F zc&7{}jDQIMV2%#}0RQ^s>f6}ZI_W!^+uAtNd6?V%Ej-tj|3i3APd0tCtUcEYo(n!9 ze5vmg0FfgKJ#p|!UKBSsT*i-L!hbjCt*fMy;PmcW(;UgT-H9Aw&%1M8@ndpz>M;&{ zlM#)Ya^{OA&+CPU`x0t>fB^t@c6I=OcZjE(1|SFk!w3m<5%mcfEoc#R3_8r@@IS38ir4rQfKeVHDB+yq z(TQmmVk=r}_q9~BNV-0L?T38|P~T0-f1^wvGS{FjXqI){-|weKS5WbaWg!@Z}|0*0L*z`pfUgPbp7BVgfjP>5eYB}flbtBaFU{eatgOpnO(&j zs*5uJW9pI&6VCYq+Ol(1;w4o8d78 z+aSYPm#>l|Q)QEp(BpQ)WI)c$$GHQp8&#npl9l9fV^;61CWZhZ8d#pgV7VyBevI2o z^#lk|*!%1I!j7F;d`^R=I{;T--0Kr`KnoKY8wgrSI4kbe96_kA>2kjSAk$J3yJmMw0YN9YX-0Aw$JoN zjtgGnUeKsrSYo^<%GXmwc3d4TSB}En<9--DR7>Scelvn)UQsvw8){LEGT|y`{dDG< zhT1%L7CHusGz+4sgq+gkYTnT}h>wY(1dW=Iy8acBjIdtt55{&(7`*Vr;$HLe3Bx>S zSVDAPvHNTbtn=37gPOM7c`8Hzx58pQK78q>M2EK@`-aJ_kXRDW0NvlTW@SogLbl>R zSesQnfmMApt(7B8QFapz`@o8P3B=O z*{X&l1RY=R2GjD1pU(%2Q~+Kby=n1z3)~#~f*qN?kBwnN?4jg{Shtuyl7z_V=IOD)NDzC~pLiNovr3Oc>ehse&Es`9jg%EzPvy&==$Mr+KFf&fNavthM0PK3?30;mca zRU%%EoO?xj-zIAPQ8Ed|<1)KWI~KTy#qfmJw_00m)UA?s>JQuFbTL$d>5Tjyy2* z%*%ubs`PJtskXN&=GL?3rZ8fzZq#6!M1Pt!6-P@QS`lYRrb1rHz6u zizu1{x9TM9B3eWtA=P^+dzf-qo)st%`&!}X2iwm5ky`~@yl=IEp{Gurwo_nHR<}NU z2Rl=_YS(tNW(_lG4@}nLn8O3~j+#1WVN>MST^0SlK7H(B422jE09 zXdICg$6SF>g|V_7tlQGtaekoYRS|VJC*^Q^Cl+_i!zX5}+SfhJa!)fx2>8_2xcar? zy#Lgg4pd4bTgXWHp}CNQVyQtq?7c^^fp%+^Q4ab_^P8eC<#5c}Ww)u?*oankZAI;| z9An}d#PL#R*&Mb!DOXPgd0F#X^saUatVVMpETOn5sY}+*)NTzYfc<91In7nN&c=L6 z?>>d-QC}RTPCvt;5|Qc9^?TD+&!(=G9SlK#3nvKk>FUJVKpWW4W47+X)dM>n-Oj#3j6)fu`fhgN6q4z(m|4Q7z zP#hFMlJ{s{y?Ti65#(W@BdRRim9(-+1p#vF8$$J9o4XI>_~fmYZ4qIPkkU&`+v+qz zG@c-2M#o|DNPYRfKLh=22+&;pOOC5jA51@m!51^1DvdFE@{Xn;+S+*tlq#9ZhnMOl&phz^!fmx~;UV)x1C zN$CN($6C&zBx$9&9=Cx{O$sXoSRGTCJi36KN8{yUmN!VdjE$r)4M?ycIi~$B(l%@?j19ECimp}0ZYl7xoURdfIhvR}&Qz9eqt#9@ zzRy7K`S8iYy@o?wijWuoSbazvErW$A7~m~Cn6C~uK@x)M3OW&5j+iu(OrgtA+=_N{ z$fkADwPa}6aEw0;41Sli@7LgmXVJ5^=G(bOb{0mFE`K-xGvp^qboZC|&{;YY8PXn2kdo% zz={y89RpiEq6Jf5trMF8%;gGD5d>rK9QKr0elF-bFSLVWd)K z?U^;Pd_Wd}-LDfDY(sk3on3x1NZ(}=dNf=X5JA%<6&9?Zf_T5Hk1RFmpb}+^?vEvy zIb4`(HB!}eEU_X)M>)jfd$C(zCkq*Rbl*If5x&*tdEs}deO;Y{lWv?H78oPN1kcy` zl}LAmp7vIw4NtBy)N@j}7M(DmgVC&<7~lRexi3>lHQHM%rA08g{a8JxOtPeSyUNxC zkx6($+5*sSy?zAYJr!qkYZd%^)%U}RvQjsY&NM8^@S64Ik1!JBVkCV zMWN&Pqx?j@f(&&<!p^=~t zUcs`{L5Z>ZE1T zs5tJLed0pWY1CXIHG&O=PA^d$7aDd2s`V&ZA=I^oM^QWK)YAbWA>+a&JS;Wci^pCj z;@Rm;d)UN4uYZzRdT%N+lB^$a{~NWy(2-%SLjgCQRux)w~QZ=g9* zhnA-`?qS5AtCi`PJ3qT$RKbmkMsknuUeq0rtiv~#=9F)Rk2B#XeDn zCOyXsizV&gV{0|{9DvP1(`!QO@>QIzE0){AI)90yqk_}LaZM_#A!ckzB6w%qJkX%!)je>aWW9ergEeMN); zjKHq^R-ajY_@-+~Dqo&HaOT5ukBy|aKGbkK>igl4yO5MH4CZwkO!3#H^g?P2CYSE3 zl`P*UxB)?LQbr5Ui!fLFH&i|y_N`WeM5oD~jh%#$6#}x)>)E*^n5Q4;-=0^?z(V3G zn4l?kSuN3bH}=s!jQdmL$J%L@tGv5tMdypU@>6G5kQa1H@+U=lX}us!0Vxr9m^59G zTMFbTT%sB3+d1zCT=r?qs5Vu~`$AP;=GgL)HMJASJiGh3EwKp_`d;ZP1Q^v~oCd~j zW*_sO=DGq4_nqR-fg!po_Lx;pSv4hs5=I5cyH@1i8AC-ZzyE%$}1!P*cE zccY;jB9GTsGI!CL?t22-f$VkMjq`ADn$ous$K(+x!=mx$(2s+H5l(jf(=?+NSp!`28+Rc%5w^#Gbrxj2U(w zYy6Fw$tIP_!LyTGZRV<+(>cu)9r$JwkBsbOgLpxzs$9 zRgpFSP<9rtgrQ(WbKX?0wt1>UJz}$*p7`VLqllNwc?{SEEv>T%Y))zIAn$ zr+;eB-%m)bdb{2*(}0o5{3cdv#)W|wr0q!Ws4Ef2>O3@GiYI9;v5woJ+E4)<}90lXMpgJe0X zzVLD9PRo!~g^t$?2{Ub&mk*nl1qHnkmtK!1;yi92WF&aVSlp*NbMn{2*^(xhlL>`E zHvS;_#dTawe^8-^QAw3x!N^Tucfs~!(){X45%ASoNKAT%SbGxX7cPSsU>=OMlr|sZ z@x>rXE)X195^Y!ms@TOfQ*9-X=%&?j=`%31s?j4<9Le$eiS9`{~WZj@6L=InYn z6O3*R`N|$M4+T*)esnONE@dEP%dy6K|8!K?tKQ4b8K$+q9?-Vo?ucsj=Dz_>K+Csp2_VqQo~GA<9zlVqNX7qKc>>T3uk z(qWlX$H1p*UoF1J^BrD<2&hP z|GxWZ)s#I^ULYz@D9EdL1R49#Wfap=@a@u*fH2SO&Zso$7ahVX*46>ZK$SE?X-nV; z<@tNZR@E&?V@56?YR6G}zJbQ~OPEF^hhoL2POwI(n@Y9&wRMc9SE1Vc0fcStG6o;? zb=Q|LfnyX;q(SZpfg>bSl&~<*=^1zqVh_7?u-IFfI0X&-xPyZO$puQoXqQ8$CBLOvBG+msJ;m{Q(fQZeD$8Q-Zw52pf?!P{xKPBwer_~XjT zft4*RlV>*uic=o;-&55FE;Qk`B(Usk;~;T17k?ntiLJ^l*q|I(oo}{1hDo?w!NaB6 zxUZzLBF5sdUvo>ZTxex1$m?xM1&OSsZlv9^b*M3$!0|!f=!4?U; zFK>X_>EhY9>S;3}ZtOZ$R(MP=V;;DcOF&ntQ<#m|YGFPYapcKCo_LlHXhWmF3ST3X z*46@#o4~p<_s4k4gV*%UH@(x$FzV2A8`Bw4o!hH^Y(C*4>wrPJMWD?5xlt`n{V7*! zg+u`!jrLKI75EcD^0nV0dnlNz+WVw7#4@N>urkY`5I)u~kTSW?q`~9Rb(N{NV+QOJ ziOFtkJo`(;O<2oPq#C^!_tkrd?aJ|q!4WsObNW)qEM6HXr0vmqf?_Xnk=&TBzDr-(KozNWF+Gb!rkT(QyCVo}w?Xz1_CudVerkq9~W$ z;iT+BFa50K;r{HoS0~KgNQkQ^hAld@mas8r|H7ACt1V4-=4ddyj2pAhwJ-F(&R9jz z24P|_=9Vg;53lY+3KxvwYEfsbDDPWcBr09oRL&!$JiBFFI1yidy`+PLLhQ|GkUHeU zlcR4~t=G3T4w`>AK3kTWM=)>nXLtic7?RhYn_t<)$7>Q;?iXT=gE=R_EOg zG}d8$8hkpwxSo-{5q?2d{N~GeRasa2yctGbGz-?aV84Zpr<;YH1l^w94@u*J2rvzC zrCKdDGU54oKt3^a_PFYU&KH3Q77;jBFR!@hJ$%=4_#gYr`)unGncdWzA$XV zJ15x~3F5~K@^y>N>$jC1QWzKFDpb zw0aKxoxDoC2GNDlb@zL6pKJ?k9_|(@^t7gW^0!#~J_CIKZ7B#1kO8}eU&Bw|I}p|3 zt7!KGxGuSlL_4f&c*@*{0(s1zdV2jVLa-#esLKH8YrFSM^^)7r{T%BB%)0J-isn1> zGBL6KB(4hxf6DhD+@5j1sW)~zMTvU*uKiTPXXeR%8u%qoQVQT!Gj?6|44)jjAoEN1 z+js5BxW1^*Ri-9S;%X5Xr*npb75jWT(0sl}E=V0~P8;n|FKXECK1d09K#vu!!xe## zYD7uCoFva^>n9=QO-N+3R|nxG);^>SlHO0pF91K3uKp>>BQEpDlROT;H^cjjgp-FE zt%I24?;Oi7bW9v*9fSmar_N8Q@9*UR|B=+Uf$47!ba)zF_{bGC@163JOR72K3<}1e{glvwz(@jTYrCq&=I(sZ^H@$jOPe zX0yJY2{2J4aGnrtr8b9)8&mTx?geQk7uDL^MnRM_y(rK6#MJ6uDbmt1cDP2dY=kLf zikyKfT<#-Z@;HAFaC2+2tJn}08DcT_ju(r2pnvVIU!?wQ41V+C|9Mdc;?LiL0kxw8 zwUoZoZ>P+E=D6&uc1ZvP0MPwfx`F&EC17LZU~6t9t#4y)V(jQd=Vop7H=Jbuh|@S$ z+V(30LcqymhQd@Q4ksBr!(g$t8Eo&w_C6x^%yud}!8YWka;e!O z3MONcGO1a_MSWV#gJ=)G|5$_#ljWTu95QJDRyREU&NB9m>|P-sW|w6kK*KXcxdz}t z|_uu9~*?Bb9-E^tIIgv_As) znXEj{HmH6JmIAniLCjR9ZaEw=f|D1d#9_|vW4b(9DYJoMGkh7Byuw`~kOf|1M;FLf zzs^X8;8=ar3$zMfI^Ee*v~raV1KcrWwQ>RtI=oHi7On9mWWP|?TU2_yz<1N^O^`Q> zwaN&^W~m|SYn>oxz#`?GG$o9vjbcUo>eDU!6ezR_c}@JeMSj-cR**~wVG{C?eJhN& z`JBG%?zOI{iA16Y?`D-28BbKK2k(>BQbc;n*803td^@h_2+p%2t2T|_G~g0StK+Z4 zP7{1oXRC&!jk~g{=Zb8d3#TTGwYu?m=0BcC58f=`cP(maHAP4(eVAx)&QPR4n<%CV zp5!^3rgXgZ6DcWp3VQaMbsmjfpH5!z{ny_AsUG34(c=#o-^fAVRo}qMnAY0J&Yafe z&F_@@#XL0p57fPw{RhetOn$Eh$SYR|dN-s=nd zA9Vhv_*)@GctjHJBLRy4Mq>$q>tgK(4SdL51qfvZk}m1bX3dW=PUFnaj=YUtU7d8P z{f0^ecsNPn)Hb}wP@{*(#59hiv83En7Utz@$$4oKoj^xEiVRSz4chbp0cbjkLD7P#6|v?z{pg~CByz}xf#%u{R#4%Tb|587`*|Fw0I{{G^Au#WAY zgChQ?THj&)Rr!A(*somm0|k3O!(xLBPWczEde!+3%Gu$+8Pd`l=^t>_uOa<*MdHtp z{>{{L_V^nlkN;*!KQ{G#Ds=iOKK*}`T>eaHVMMOD1_S^=0u2Cw`5%Q|%csmu%nkoi zLZ$0uY;9+y?_{iN=;5%f#et|4ol-LHf8XNYx7-^{CO4H`6cPIBc9^sefeF@D=O_VrKR0Je(26}MZh4;-P4 zs?0$PIC%~XHDUsO{=q>Ar;PkZ{9+JFrNo^i0%Cs9HU1$CM>PF6L_t_wBG+NuZ+N5! z6FPL>net^j-cR4el9<=PIBO;s;cw5*wjXKh+KOvzRDr|+va*P+rAcIyi?9><;FqR+_QM?hYNwx$xS3pHcLNd!L4l3nDfM9vm)~~1 zGw?WzZGJ4r>j2jFxD94Q^X9p23IDnr+|Cs~(eND*E@y4hSf|O)8^~_$ZaYW$ z#x!^`ifcD~kjJqx3LTgM6G@*)t|K2H`LbcHu_K%Pq|< zjG6wpR+^N=385cqQZ-C4xrt2M%uvY!O^stfl^4~(ZogEV&pO}1cu{PYa(4L^ld6?d zBDuHAMTydgLycx@#73|@{;im7d;WH4%SDKD*^k6aLZOLQlD}whageVV7WX-oezrnuR+6VS&Xj8h@i-uG0<1)i%D}PGXwGo7N zMQ?Xw#QrALPsw3;Gs$y509-hFQy9})NDYvb`KW_$m` zw|w=)gVr95)C;qhZ1uW{ff{WN>rXKyX}FR}pgZ#6#+@5Pb?PGT=@n1Z? zT(zrfR8~%`)oRGa;UXalGl*nqMF|Cg)%ezzEj@*v6o+rh{_8!?uU4ZUC`ob-qLLaQ@Rl`hmuRAAa0r+O=(-wGX{!;*Qs7-Oj zDd4o$WVRnmh9(YYjF^CKA)&3WRa7)T#P(38$&Rh^w+RO+o7d6k8_Nk4XlfF8Rozpg zZ4KQ|=F`Y=&}1uy5xclz869 z@KQuO)hxm&D5#Yr4X7R@PVuF-34Y{jl1SiSomjn=b*OIL)I>1^U%#8Ngnq5J@^jAF zyUKx!D)Qd^&1T6oHj{@YU4y=JD@9o8z@clJ=I+N=cz*ik{%SSr8ctcXL4!m)VxD{H z@n3o)JNICny9~w@B}7%qH960Z)hVz~kvfhcK?TwTVn9y`M`Ns(Yq&}73TL$8;Lnb% z)4mNzgOzBil};Xz$f{8Kdi$|^`;Ccv@PHZZd`3JDyJD`C+tcnj*V7MhBQeN@&q?bP zv@znBLxoK?H3ULA~HU!3cgFA$VQ9K9SPZV8gnjqPU>OBY}D)=->>z%FC{O4 zxJzoA3RGw!^|*_|iMhHz-6;KR%g+>!dZ@3KtN;f9p!qkp)HnR89Z&c5{K(+-5Xt5@ zO_{HxZ@a{b@N}$eZ`fXIMw8#eiIN=O>&PsXqz@mxl$8mT!Z~DR7DHM@MHldNjcaUN zX9+6J=v_(J>RRY}g3IFJ*dTw3nVu+OdMNBL2vEn6Kds!mUy0RbVmk_+n;Fmz*ulrZ z=yG6G2Y2dp4x^LNb_h%`UKwXnF9;mJl$wE8lBf=03 z`sExU`KeDKunt+_=^G?9@G8^xdY<}%0NAw;tbi7g({DZ0#Qop70$BqT2_%Ip$5_UU z_gC8JPS=SqlHoUznP9S?aVV=bX&y1Z_eEXRIY2m6PhpjgJymfw(26g{T`HXNa^Rq* z3(R|LZ*tYhzF9w2q{SU+T?T3(kv=7bRA~X+e5VQr2~8$pn+9X_21?xJ0O_>ib zLw8`ezS1hkq?gHmY!7Rt#jnF~Ypu1_BfhlFsr$(2+wkt-Y-Yx-zMmdCNw?F8*E5y= z{4VU+C-CeL_%V5GH3J~V@sg;ehHjK!(AWueDBU0Q>-(Vih2V2Ee=Tu=slDQFsDj33 zjc;H<(N;w6lPbuAjh93R!eO{;$09_Cd+pqKF~SNIh+P$B_Q12eXP(1O(C7@c=`xTO z>@uCkkTpKUEiJ`O7p^d~265b1DkoKiUh}mk82b|@j}M+k4NC=m)#Ncm^d%SR!xd9YDY*Gs6XJ#ii; zs~OKhT7--%2e-*Zeh_wF=|tGkQCGHp&FyY`1MlYBQw3T4W~TAHNmv3?*29vhWaNU5 zoquRqkEcO-D~;#kbz@Vcqw!qYEUA0XD-Z?mqnE|foRG*(9*J27_2=)lQ*>i30m<|M)teGI5JPRJEotXpyK2R z$}A5WAUAzK8%Iee+-*=^;%?&QRbU5R#@+xf4~zq4wByhZz5uszzJL((gkjI`4YDI| z&iJdf<=y|KpylUqm8*GIzW2I{K7auL5dA%~zgtEB8m@k8<;+)-mtA6bJ?2(jZb2`Y z04XpR3at2I;RiU#@$iMf;FkymfZ1)W~-be+CZIUx@+bsp8l>74e;pqo)wz9Bsp-T6WXn=^#Y8H*{_YN zEP*r(mWsm35VXs*q&@4DkhTCWpMSg3PbA)~Gw@9}sCQF8S{ki;M~M+OEATsK!t1Zr zrB&mw!*@V&*W>JYM3bFLvk-2?<8Dz8uE{8_^s`b2E-M&;j2si_h>|11c@0{VEi>&-jRN37xf?s*r8cRTk+^Iaa!6NGIT zEDwS_rc#dsrT+WRf(FHjd1(TKg$i=6#TIV5}N*4uT9Y52hXHcy8=Z zbS(XLulhZOilUYX3pYFonyDK45`Bi$*w93QlN}SC9w6Nbw!d+bo|`xHv36mk>rN+C z<=#q<8LMZ@f^A_O$3|bj_sp9@-{2XiQUf_+YAmTm_wl+^NT7`TBw2;0BHEi+M)O2t zxRkGs-)on)yIU4M+O&JH(mn-C-%W`7^^G5X5L(8Pv%WQHasFu@VOd)snuQC3{KH+E zh$~su%DZFtPtKT8hj>*2c5+iQm?lMA^q_jR8txyI}2F+J)0+@#KD9gw}n zt+}a=VmoBx>{@9v^+w`3|j+wt%*O-*6%}x46o5Co&^U>|5w8Gt3^%k_a*!w-~ zt)y{G zBdVXmLx2*O5c^oEK}sQ`d4=-27iIowFKYR^7d;B&dnZD$5n9J}!qe`~jJJj}1k{#W zmACb!9V(DFOG;UUDf2dd3EcK6wTR6J6$GyXK8f0!DGnb;YnXn+!|e);72Gd*I4lQ7 z1&frVn2EB>G`CG}A4@~BwGbu02Zky+8*pyCR_ty@73_5W?%jbM1UhWTiRANkv&v>3 z6-5u^YbA}k5n^>^ArN3Br3E+%p>jT*m{`4BELSc5zHyhzRwKGR7dZxfQubY~Z!pMN zpW6dY+Egw@@c}1F*@0X#Hx*}X`0?hQK{5@H%X8`t0dy@Ij893w-C8p;#K^2dm0`F4 zCjm@^MuBpU8MO*n4mckGl_PChn0ii3byG9d#+pMP%xwT2Aa)+Y&P-ASa$c__QhO#d z<&3W*g)`k?872o;R*k{vkfpN>y0o^N(k&Y2d&I*DV|M8Dw&3s5aC{*m7vJzy%3CP( zl!h`0a5Gn_rc;(M=JVt)rw>y{6K{niN;)WJO~e_c-f7e))p3HxZ~0lCJX?e#3NT!? z*lSf!66+ta#IF0tyO1=6r`|s4(M0BAaa@CU)Asq}-E#E6;X{PlXuwP=}n&!I$xAKX5fpV&J1WgSAVj~Yn&djwl z`zB((7Fw|Smm~V0LwSL(w8Ge{1NC5j(1kyqzARH+`)Tv(bE9iNr5M_yfCQr*wP3@| zChU)SjnGVcZ!|us{*5XcM_Blb;m~$1T7il385R5@l=!@P(|gU8o1^sxULES@lOvt* zTJz}`4?p5SQfS@@s>w|2`6@hTD}K`o-0SW$#v<3fn)TG=5{+(*eznspoB^dOfjgi` z5Rh4Y7h=Pe_NAkLo&lZn8)68KA;sG;tT0$bnw$!c9hf#H=Z<_|I9r;Il7^Os_Rl!j z>ioT|1bOd?L?yZ$)y_}=@rjhcKED$)q1u*`gCu3Mbd^i*bro-$5#O3*=wc3$yR5Y! zdjF*Q`JpsieojCxA%9G3rfph0N@bTDBQSSq;ILjYp0CFnjq)3Z*<;OmiW@y!2TD9z z6)9?3HBuf}f>|C9vGrd5w*WuBk6PtY185~R7G z9@wFcj%p=TY&=d~Uf{IBog4?my1Q|G+`|nkh=t$aPLtW)BZeVgTW_#C-++mV%l&vN zU_SI7YFkA)j2hB3sEkOZnu#jhJAOK z=2DJGkd5p3-es>A!IYuMF*de^=21$Y_sKU=Jn(7gYq3P*=;+)~u>xU}c0U%3y16Pi zh1}4`Cb$#Nx@->h_^eF12!!pZQ zN7j3u`6h$PwV=bFZ^zqR9jv@xI`+p@zx6k4ENi0uBvGxKM(l)RVH{MS}iJxMsF!^LdiV60Ea=;*p(mSV_Vj z7XfqkCF8JG@ruct3axN$jG}Agve5QZ8Kmh}XEct;vn0PjW%qEuhz9{@EF$;}1|GVc z+MqM@PM_k7V5O_RnuND0)x%lV079@SEd3c0w?>m(Ku9CUjSH7NC}(T5imB_K85g9o zxD3%i_~Fi2Zvt)ncmmK<{VI27sRJ3r7WUEWMC%ykw)2a_Ga`c6P~^Hf%H1( zp;`7)XS`+P>JkoXGxb@~Oz8P9q4oG;^@Ev9&gK zGXBl_nxD>7Qh!>*s0%zLl(1vO;)~zNNTe$X*V&J`k>)u8Hwz1tYV6 zg(t2ZT3UxZJc6MFPCGWcOM$=0F+cW)S>jj@Z$&pT@qfX}?QHD;MM94O(khft~%#)c5MD-7^;mGi81vXdLpqr!loPdh~UhUM+!PI&=N@=iJxIPlVxo5Xd8Ao0?ON;AvLlOt; z2B~+G2ZorBPzc2P);vuHJmG=;p|)vgowunqJcg!CT;CZwRM`R7^o(kwA`*cV{**(e zyzt#24qI25^Aik>(p9-ZRRe=CH$oMor~IlxIV;u9p3}l0QuZ4!t&~8Z&~o{W63U7z8!XoW#KTnP-Goqj9mJkhR#sb|Y)$!poIx^CYTr^?r zePqNt_4k|ffp@R93kw!+-y(PDq7|OaaeBhECzfr->OLgEp}8F=0S(Uf+0qXoP=v*E zn2Cu@z~fSuV?j@ky=G)fk(=VPN4@r)dwG{JQfgoH2AX&-;;3tA!1jj|&p+^}sh?f` zZxYY1I^PdeE&c=ts=rD+|G=}fehAX5&UZ-WzghYHKbM{Vfro|t42h_6ZYSdPn4$O| zYgu1)zC*J9&8R3mBJfi!E68|jA%XAGYb~oYpa+T|DopS>GVh|!rvsfLQOe*@8553V z^1iwH>TZ#943r>jaFcGo8u-u;JdKv{n{xeTkT>k=SWpSXlszqa*t9+>mQr>et6P3 z|MoM{en$0gCf%#fcT~=nzjYJz-|weimHqzUL*M>6s9%-+e%JaA>#v{w_ksN?O8tL5 z-R|GG>Q(1EDAPYdD*B(e>Ib^ae%Mv7TEB3WxXhod=Q}8eKS5>M zuUz$m{eu4-)URUIcdhTR{`%>E-&MZ?_JfU)KLqT%)^}ik{q(;N?Efn9zhBmmbb$U$ zE3P{Hv(@X?>iz2r_xtVWFNA*n^EWvSGs1Nf!0=D-6!Nbw)hYzS@ke|>a8Z!#5#cY! zYtNH>e$LcxyR+t1!Y*O|tZS<$7DF`jP4DDj8!|N0D!;%}div2w1dSsWBRCl+$VG>v zhc`&h-ScW3gEB4%9JvYY6rRTASyw1k_89z!w@?3HjjaD>p?lT&PQu_f^I8A>+oxac z27aL7^=H5Q8%VD@-yzu;{H9y}>s!lE|9&$3o{rvMvZDM~a{uS6|LYk3-zWEfHAa8E zvj2}7BRJ8pJ0@rVfHo!ofWOE8-B`cHW<^ueaj6&8=cZzw3BJA%iE<)w9`g>bc_wTs zFQK3+lU-6z;25IenC>le`s0m{DLn!Idmu`ZE2(7m>L8xE6RpJIg^~*O!E*n}>VDlY znLcu2vhz6&lsB$FLaBO3*aDTI_vjE)zVTaIevE!-3h^J=jx;J zR4R23I!l|eI($czLeZKj(f0RFwof=^2~}pPpZPjCH_i8{DI?3#ia(vRGYG}4`XeSY zZZ39$8(;THsa`Y-bCiqHnvaMAxS$a^OGPoNuI_5NRfyjJ-Bx=l^a>*D( zWgS9u%F)QRw+ApuXb{++4wvQq=H2xfz#=)YSteZ8lMldA4Pfoqi3}IO>fXDkG&qQX zJ%n^{zbz+zF`0jO0|>%{g%}V87Ife@f`JGFv}Yus0edSfE0@QFUic*H@wNN3r_>T) zJTRsXJmBL%;)f;kGk&I^u6a^vs(VW3Jim?>XmK^DSfEuh?+3{64+4`0f;H9)vhv%K z8GS`Trm6-!$a6NOV|Rj|gn|`|s!$RRe?T6tOc>D}Ba5gusVNs-mz=*WpaBIJjK*lM z@w~akhYcWBaR9w($7l^uR3_ZSr};R5w&y>yL#w)Z<2TFI5ITd$F134$qY{R*7an$_ zfq;WnCzt3CDvj&+WRYSeVL(N?fFVV$U! z@=U+%vWH|Yw(E|ko$;vL3$5P-(q2`U%5Dcx$cnWbJeFTZ$)@&&sH=%Og0`fWci#)r z@QdhlsiRwU@V0J5y5( z$r4HwI+J5b$*(E?)H$GL68^xjZl*XaIH6X4g9W7NZ0Q38mjmm_OSgSsfcp;SRt8+VbnRK@KC8#Xccp{y)=p>q?d9()`o>$2{Q&Jz`l-CX$05q z<~*r^i5c`9w7Pb>L_fOcI$3)J7HzTv4WM+;$mKUMv^;CgnCGF2byG0Ad9ym&u-Rc6 zQb94{^Rh(twiTfvZ@=ofx#`wm5DS4Bq!QJI5j9Aq`HUiA&*ptwfw?26Trv+p6NwEX zos-PA%oKH!wsAzaWu-OnP**ayDoY5(;V;copPiouTEtih89@|6LMRu`D5qUic&}D3 zI{|okr2!BU1etcJp%|Zl*>PU1by15%vuUY_@ZgxyH8xN0Y#d$ zK2e=OaG@sX)T8LC7OVjIK|@o80;s4`Ieb2fSn9lyLMooCTzRmjHK+@5vh-7QM6LEdG>?FSdQK5IUz9R7JG0Fm1BI~MwEftB9WGm zvqyQ^X{sU!T6W^uK%R*M#~;}}f}k)JV`76o1%c)OpakH_gLL?8=mG1~5^JC#ZJpkv z>W*f&sp~(Ryts$gZ4Kg`Z(km;f7q&Of58(vzE!+M7-uOw887^F&RscjR>JW?``gCJ zVJA0j4)x~^!n0z~7k#1#t5(mxsW`g&$oaJ+y>h%~oluXCE6zx~V;eo`G(H3~bi7HC zJzD`hDF=Ryw1r|h)fBA^g0N6!V9}dy35B<+Xk4fKL~q3q_>CdtGqc*bmp-Ip zXBHgmd7)&~%Q?{(!gQ`lI2MCaNAQ1=qfx*|3?3$}rov;s&i~ZG9caQWie6P5?4_R& z6haGmIjjfpHm&+D#aK8@0p)T0d_A8F^m<1;)GGLz-obl1yZxnd=9m>yRH@u3WtNiE z@v~o_H3}^i&{CKv69BWr-m`(zq||~7bYa#lGT^d5{-nD=DAt<6TF1-;qD>qOQ-$9V zWSd|IviQD<+BI|WOhDH{Hg)M5(Xmri_830_@IZHYzS<0($dOPNt@lk8&89(oUx& z)%&cgZcda_Z5$m^A=#$sL%`3mcBAMCYNYMhfCV!=;WcvHnn-7_l_IBFF9Pq4EJ)bM z@SyVGr^N^PwZOqu*&w!YYVX zG5@rr-`~(kFn6~O8rIXQ0$I~nIZY5*_7a2+n+g@t$z@pqu;M63GLA#Y2E<@Ycl3l( z4XL7^$8I}4Kvf~MxUmnkj&`3w+rU-?J!x5sU7vO-ZABgqNat6@>Eb94oQ+ za+7dzxNbQ;>S~zD-bfgV-U@|;hC4cYBl-iv)7KOR{Y*?5~c@Pm`;tRXo!IJdDQK?GL2RMkRqavM+99gc}YM1@50b89l1+04Y56P3*W9-Y7qAh&lOyS;34TELCPO&FkKFuzvrcpv~Af5|k zwG@%5`ABL3H9t}KFuUyw>W;3XRd`W_9#TQLsfEU&n?hmnZPmS6*>S%#qC0LIf{hI$ z0npsFB>f?|0ad>D?M~h;Y%DKmnG-Gx6v`W2jk~5BGHb;H@+a^cjw!@DE}7K`HSmdg zY&d*~=K=<}MNMT-;ANL@px!-$x?%w-hhsNuVv8rHtp_a$kBub6=04!$N{Q)gQJSu4 z*G_ChH!gbZu{lJM&F(q|=tM5qDv9A=`BP)GpN#2l@fN4tk*c<#nn*3C8)XrCrrt?} z7Q))L=tHKzV|*K4i7@`3#|y zv{(E;?%p~q%Po%@rn^%@N$lgBmn^%!<|b|V81dx8^(Ir}?8%4-9zvyohgs;P zHbE)Qip^&@%RHt=)ZSgGRgtK!*?ta5fkr5adI@OvS1jroAH8tu-#pUD+dIqBK9avi zj=i-P*rdB78ESmzOzin=fpzpcD>Z=NA?lvLX`@^=OIpXW@sJfZOk%*%RgxTxKiAn^ zVInN(Gv7PH(S%vA%w`>l`#v4hXZL#w~iOp7I439Yi;tk z;G=)hLS-A_0IrH1`p6Hv?x^=slJ$prnlJB9^ z#^KtY=gs>F=c(3><~Ro#3+Pv5s8MyfCf}36_?Q2?ez=INfBo+h_SGbA z{Uh_!UlcY2aqfxwc2dFrXkoLh<$tKFueQ8EoIf;W`OE1^?z5mP7C+Lu;V;(XK%9G`EPlO6 zJL{h`^nf_`Bw7CgL+`6afx}NC35at~lEW`R(pU4-my0&v(f;P|^OM0O(P$vhTliwV zd^JDaW8IVW`>$`$PkeB#L?{7Ep3=nSv{ncea(prAFQiythCoGT2pajZJ-6SSZ=S|T zpB)8|7=w?5gCD!La(`;&&0nI@(}L1^sz;raZKUg&Xub(4;m|hcBP-u8-+RRK@pWit z8)V5&G#l^OnDE(VNS~^~i=_ONGDhf%$tBxmJS(hw%U2jr~efmOts- z35at~ljW~>?qv3prf?w6JxON2z!d)Vzyr|QD=GYkYw@oK-tSm{47}fdeS6^jk2x%W zpL8P=h;vUA;1{@&`PKa7^png3AkIBWPQQS8@W(}+KU!umG5)}~+oMIJxB=!yNCT4& z8SV}BKLPzi<;;JOcK9Vo>}Foa?wDfG6wEXU#lpA9K%He&I>YC)|Lkg_TMaNs%sjNQ%r_P1lS_R0$60gM zpx1#PSOL@_xk2H##i0t~h@}#N z=ZVEh9n$f$Y`)-!-VvTDL4_&so&3~U*QuGnumX^s7TAnTgn>pUMm=B^SmArzbkrY9?yz+Kuy8Z&T@yhn2J&VOQJ)V-XrQ%OmvLHVJXMw@-J)1lb# zGlGmxEBV{%JxMVKB$`{AfXv!Xz+zyAk%#1SvSMD1#Q>p}2BcwX>Zdr3kkT?9?X=^b z_Dc2=to_0sikT4=M=Coc8XG1c zYfYX7<3R=U690z?(oc?rl*TOpooDVWxQx@ge#-d(5)6Cy7D`X#isJ6wbz*+B|J4Vs(A@D4SiUds*UA!r5^B* zul}($=WY--;d@NiUW;+1s#J1|c9poUn~I()KsiB&ZR*BOp-?vBrS-mE?UE~dX6`!c zBC?(pWL`k^D%#u}WR!iJKh+M26!TKF^b{QHrzuChC++;LdGg{;vMVWu!p*7h1?q#E zG8ZIZG2Cf|m-extIC-kHue}|0WID7t?9Lrty1U=zi|Jj29~{%AS00;s*XnK>RQ1%f z4b3icGs;P?T1*!K9C6l%B{^sXPg2{%vmZ5_QpbO=mJ#4^XGLm^uS^s+s?9xrP3|#% ziXEl1v4_6hfCjRJ);jUFr-62YgFcgic$-cj?pX)(<)wCzZEEi)$0^61|2bAng=*JIzAJ@E{KxD9e~G49`d&u*PazU=FmA&H|R zQ4uaP()^KuYZDC^(zjm5Z_&JXuKr-ly$qx%SiPS@ux9y7i#`@n#_Xr39WWv-&P{o_ z7B$VX*(l>UjJb0mPRN2{KAj-)FC}zu5Qf8=JH6tKQ)Jhe9(og`yj&{tb{Z#)7>Pj; zHeq;x_;SRK6L)wE{Uk``fb1cGGl&=mC(M4uAuywFNvU0*QZMjJMqhkJL5HTKko4Tg zvQK3Exm}vkiD2QzbOmpU$wGv36oPAQX9M1w6r!fhknN|y1_>y~ zE%dD#d3D^`b+d?#5bCi{UH?RDUeo6~)PN+i0+o$Zy_1RHqWS5Kg76PBo{2@SOY~-+ zY7P&x^^738Gb=LC3ir4_hCGBA_2SH4(uA>Oee0=hF6~0<4y9qWmxBU`E%nG)JQd){ z1z5G;^gJPOyDlclT&ixNMH3#kGxbs}?g3QvxdyBRbU^D;6+Vt^FQhYQ08p1*C+T@` zUgc+4)0!&{b=W=(6Qa4xo6T=3R@{KpDSRP%2zOH{`HJ~8@tv*`?CyFTLu~u8i?nw$ z-W{IgWULD7MkC>~4;#>pUsb_rQ3;zD0Ef*TaM*m^&7<7K0gu0nAWBPeRkL`O$qJK&23 z8xpyNp1WY|y{QGbJwwRP+kz>sOP9p@BvFAlkiIga=P_-(hU}QYB=ThpMI&6L((#(c z$G@P2?-zpX_US@6daY1-(jB?dVdJaBtODzoNp#xG}k#yqXeqDwJ-+`e6L-0PhdCxCP4G%L@vlduXsIuyubu}q9skXJj{&Q8P`*ocY_Q3PAIJIzVtR& zSG6X|im`RB^z4$kyf{auV@M4-Vsw&$=;EKp(v`;tN^b=k#7q3SO>)KvKV-9u2O(W=%q*u60O57Js+L`!`=y4Roxs@&W@ErV-kx%Ji<(S zw3bXYA4u)gQd9koGj8)4`jp@*ySC{LH+^{vK&7{_5PvV&4L{Y~f( zxR-afhQhPa8Yf_}n*+HrNAxp?7%md=S+VXdl46<^Y3~(_IdqXlrQhQ5T*RMfG=7zm z%j*ll4Fl|Sc7gl@1LOOn0(VuU0Kllg_uDF#QxZ&-qEkT;+v4IF?XPXOqBygnC8hCS z_&;VL^?Cl*%#rD0SIfsiYD;6w!9JIcwW+$N+9n}X=x)p)z6D%~1Knd$vyL13@k_y8 z7baV{_Z!+=#epfe$aB`vi+EuHnw0T0PZ}OH`sdHD4KQfPKR8r{#cEZQNAi8FD7fTI zcKbGp)p-0QLMV2fCGdHtqA#m)wBYA#FMCizY69D}v&8^V_R~k}YsKT8;uw)pn6~fU zby0HaanPuW`|=1Yn(N||M171!jldAkN;ng$#GBx}(Bwh|NTJ9K@-LeY34*zjTYF0s zu7$718EvBVOk+|V4#TCmJKuhGLYsApx_IV9=pufMk8xA33%8P5>?4|i6~%!jEe6XE zDu&T+0{r@9>f;79`e@QPh+$NE>Bn2Ne+sZRI~T-&GzF98ZfVAWT!cnyz=8C#)qC%8 zWU`-4XnbJi;QcJI_j(2->zpA~dj68xo3nY0>wy$ctIh4|E~Km?l8zu@CKDr(oUvl2 z9hn}lS!f%-Vurogqbglg;m(-nq!?(v?d^<@BNdHk*e?2_^et~PXbcif>#I?5N$TeG zvPZnLMTPfa$aTQusRwLCm2AMXr6nR@KZ@>+U(t>Gh^%5Ge{?@h9bq&pz-H?>JC&h1 zD~U$X>mg2#*^o$sU@}WrxY{c*EY(Iz4%;xr5tl@s(6Ey*{}Ab`Kt<9jYHQ`gP%+4} zBB$O)eg_pwljl7x$Rbo3oJA~fJSZDImgH3K_OLwcs46KoC*w>{j?42YBhO;Sb0zHt z&Qz`rN;xGbB-vSvJ=H@eUvwdYSK5g9v`+A`dLUuYiH|*tB>5RL^oGEp;nma4E@Ox1 znDC2g5V%l;Ut{4^H!nw1ndJK!R6JE1$l~kxd^NJITdXLdd1KTfo}vdocb%nyEFIlD zW#(3(Y64reD^xkO#%HJ$UX5>1AF&p7z{YP8rGz!#C^wusr`NCVR^UYO(Kgusem&FVN!br{BD{^&TXEsVa+ivZV3 zM1GmrNZ5d-=aedQzMyh9!p?*r*i|PMZ12 zqmxkpQ)Br3eAIhk3F|NzZGf=p&J_+)H+kV*d#QIVU61f)WLLa?FF^@l?-lo1!ZrGq zs|Nx5Gwqw<@nG|fW}h4<=d7vYET!O?V;+zvWifPGnBlLG zAr~8u&WE3kjbCcl)7(LQ_sOAy=@0BV|H9V*;@t1d9ZbKq0{)*Xp>g<0zAF&t50ZX8 z-___R`5Hi+dy*gD?x%pEKNmIQJx3xc+j(&FV);3e3VF`*(SOedzRE0>a{LU&ds<)8&Yk z?}e`#S~h`vzi2gAk(Tc=<`AB9@lcf^Ns0GkM#@R6;6n!2b&43KOi$Y!##ZZg3WNhs z?|yCG_;q*Vp2jQi@1DMm9Dk0UfH;2)x?doR=qVI+Q4TLi?pC&~Uh zNcy5Dpn(X?mn^q|tfYcnl>5>uy_*!FirY)9ZbReF^^H2udb2iQe05jWEFToV7mAig0dad6D|ehs@axQBkwDi$|*p zRszA!F;kv3%Lj`ZAIZZH^id|n*sT}!P zxN-CsLvB8&=l{_NPJrFd8FE0Jd#V6-zuXkA|08<(i)AGc=bj|}@6gl#nsw;(la%zg z=7xY@ueqWAkGS@KF*5;i{!r3)xc2{(Gn1vw&(RYQ=bkFdUm$SvtHprTPx9-5IQJx3 z{d#`Ane)$45)kK}Bs1qfAb&V*f6E~G0`(7G+kGX7zMg@_mj+nYhTr0^ zP)SZ+JH%*2Cq5pab4NRk8vN76A~8lFQ!-qf>bqQR-;Mb1L5U7?E7I3*w1tLj3V7?bAL` zk9?OVyKR&+OL{_vA(3y|TGVp8MpS2scC0jC zDLM3D@N+s!;$(ta$%tAnC?ctGL|KBw=Iv>XV4O z1TUgNwm~xp5>QS^VA4VQ-Q^xUbcs!}y>@ls4osRi9mNZ4?STn=w1Etby~K`>v~dFK z=BM!)4T%m3=vPzupVvBl@v9ZvGol&zXNedUFezgUXpBj+_EsAf0sgfl05Nko`_b17 z)*k{NlM_&2zAl-)w2@He$_MwBPu!d@{vTM<&sTE(jp?b~|IP(6p zLehy;CCVW80A`6b^r&}+{mZk`rpwA7gB#z_#9}qZR*bd?(AT4OQZ2xW0?Jp%CR)Oi zt?v?+YSVUh2*sS(h-QqN0h-O13KWAC30-d~t%a__RL#WPP2&f`XoF_ZyT3#7j2o9xs-{<820h=;atXo2w}K%Dy-%JA2_ zOltI#3XOp{_aqtp0)@u^l#OL-Xlq96#PS25y~E~7Ya?Lox&`q0r);c0;C`FRe{MFG z$8XtK6sEi8;PS$MWMf4zz|?Am>c;KB=&69B?S=}TX;eZyd9S`WhSNo`TG^II+L$0! zu*VKApcVtVUA4|g!aIkMTI5Byos5?FRV4^>c!JKC(4P|E^G_LB|L|geiiP^`GP1tB z6BOwhw*x&GWxPJc016UO&XVXR$PowpQ<6}e2Q^%LuZFHyH!FFYiDa-lQNn{&C^+q( zupcnw>xA4LE!;}ITYie&iD{FV`06|)$1G%)^+NCDIy$kt?X~AaH)M7+cU+}cSOtmI zf|qCUFK_Yg2qyNp-*?eH6Q&fIV)LrBydjXI$81!B_RV5;sk^K#0EnA{eZ|Y?V)*<& zc=@NetbfPLe;$|h-*BRSyLNXu5fE~$iLcUNX0AU^ot8yuKeHM%bSz;`g>G`@xWTeG!nGO5pQPAzJ^ApZ_vM>j%iO{feCY@v{@}VyYJJ zsOJ)jyuK|b;5L(q_5tR`SSD~XiHtW}!<3xJ>{!-T3VQ0cyM^m?t@4|9BnjK+nq`Bo zrx&l5iOb*aYuGS$7>0ViGCg!9AB2OFQF)f&C=Dz1{oi)LPx2;#IQO3|z^~^`8vdjh zBp}Wo3!q;h2I-F?{rgw?vCSDCC0wpQuphcAbSRetjq@zBCAxjJGHO-OnB`f2bLW$`hQ+UJ>=Lv#P2cP9raA zi!Lo7*>k_$rss1_kjfQ;EaNUFQqT(E&E+*M886@>q<^iVYU>T7RN$S7kc2p zGY&Cek5sa+VgBKK!@#O)Be)Q*T}^JWRs%N-O362w4xC^?L!nddYa)EuK^L z$){qE1@O<1)R{8EiqOz1`4%-P^9_M>pv2Jua%n!{!mzpKQV|F3IX18Ad8|Y|Q8>gy zAuGyw!HZ-@o@Os>yl$FchMt8|sM!La+|Zw}few!`f44*t+0ADWCFma@KMLd0`&<3} z*oL~T7)*+7(9%0O@&|&cBB*g3(uc`RENW{#qKkJ;LHmozsR4Quj-Z4&;6`~RJR&m( z#M*^14!h_V3k@P_>6N+%BGd?DDJeb{{5`J1O;7fDaTeqFjyT5BorT%WuOSMkv^o)y zI0H)hUlcfEzrO+(M|8pAom)Xujpa{fav{vLQKQ6;D*n@u zEne6;Xd!Rc>3QU2>tO`qW;!FFg6WNtFTAnrBj*Hdiz7&Pl?U^uF>q#6g09mRbfxpi zP~jye^P$NR1^U`G*NFdk&4V#75A`WfVc@{hT++W(*zXCx-b9Jf zy!zGL2mhdI_L&z#tt5S1h$PRs_8gVhU0dA%qOid$NE9A}zkFWgz=on_NDgp&*viX507$s!=O z?c-qj)3$v2o-53!g3iuE`j|QtB@KQT_I8-X%WKbN*idK*mMj`-aKXv|lK%D64%{WO zTbk`Vx_Zw)3kwz@r&)$muEp9r=b0M%%9?7^wM+4ZXOYbGO_a6uuEZ)v#q=-SjNzJu z370qP>X)tx>BG${8Fe0&SSkz+v>mZfnfcxFEJDH<-7p)j>3LH?%^_U1K5$;OHVjk= zKb%!K+F&(rM{+EK;4^@OCmHDLWMz-)%rTJbqlA@9=zs^hd9(ei|?={4rj{g z*f?Uvq-$p8^=j=zlD^i~nJPU|@=emC1hPByyS{f7xrUpROeT7LwakXF zkX z8!x+1J`gxG88HNw|E9{@`R`OE;7_VFBky|ln<_uRwN_byZz@4gW9YedRV{fwZPX&I zex!UWf1V>=frW5u+GV?t#NCycnQ7npTw>}uD-paOKA{)H;V z|5H^Kuj)-@rM(GWGgBOfy76p+N9n$F@9J*7l}4z;ISZnmjjE5qnP=$$$g~F;yohZD zlX_(yr%+nNke(HSp+uc0Tk;CYgdZs%o23VFar(-iru#J%vO{+4>nJNWrz}pdz=pOI z73~%`g@QQNIGUHDU@cRPQ})1Z?I9rxffpJ)BdF@ ze@|`yZok1OX2B+j0i|={g4){4JQKu>FpE-RxU^zqkcuh5LFo+@G}1Dn*m6T z)^{5D7oa^K>WiP9`(2E^vs#1=#}ucV6k;**DU;2NJbmt11ox~Y--y8*I}o&qxgeGY zS8o4da$*0Hz1tx{mAk)Syl^nuI4;?09y4T%bGn!QQXm7N8#P=kmc)i(Fw`tcmMhFcJK=+K(N3ha3JlcxIXgzr1#90!jciLSjZ7bR)oC&Pt!ijngW1~$Ol@lg$_zjn=g zZ`0V|hOXAfX-*L_&$3~pvbQQJ4!jq=c2h>m+4rt^mQy+9vm%mWs>5wY#-!pG`~`2> z_M}-&X&+qA!3wzUM>IWohv^~Ggt*U#vslSj#_{CsxiC8w@XMU1Ie_SvBCl%FRs^sy zKL-{$9uyKWV=T#JOK)Tl@n1)vx^5FL5WT0za_UR(?^jTMs;68V7D$zw%%2vF^$G z{nxiXIgU|MzXhqBa|HBORY<*+!Z-q8lm?iHh=%>>XN1;DpH>l8&hH6uxlF}6*H?Di!rM$L|;v>=>LqwGOg`|i2<>KkInJH zkXQfmS~QQ<>$qVIMZNxd|7m*+2|PF80cs5 zG{Jj)(x^rl0hOvP{^b&XGq)+RKYq(I0oPmhC0fqAr*6Mp-1;u($m%B*y8&_TxwZNQ zirxN&5JmWZK!|_d82<|)0_lhek9gciw#$oofHfuzpB$+mJSjNw;qV@H8JCsU`ob3wT!ALwy@J3D0AfEz$)$?sgFi| z;x}U&KT|HkGl9KN!@{`l?zFS~FjQ@Lul=P=@~+Y6i<{>p*dmSagSP*8O#b(!TL88c zLksZDyMWI>nFxPl^B+!C{_Cza{J%MJt^KC~;NNoOXug;Tq4U)V2(?IfFg2PLGTl0# z-Mw^eCJo8r@U{gtHEOqQTs&W(NF>jxF&`i6>%0`2(01(A-C@(6)F>k9Dj6S@05rDV z7@#3s;C4_9*Y@#=6~+h{a0*l>6~!QH?molMR$igk`xurp0YLY z2)-ce-z#{1;aXbUnPySUY0Pkj$FM`If@-L0v6Wf7uyo4^8|Z{5B!u~$3MvaZuWxcMze!@O;BSR^EoD6Lk0J=8v-;t%CrBL-nS_8o6pN#B(E3eIOW%$m2*NiW!Bup{dV_;+5pTW6?6FOauk;KTOaLi;Zbz8@eC?VpMB-novo zS)X4-Q0ODKHY3;-2~yuxfw@7FU2UK}qC6~gEs7c3oUq}-f3CVuzN%T|gsneYBF#f} z)jeBH1=ab$i@pCuk}G@4i~5$S5q5vH0b^WCA}@vf_*wi^Xl{D}Sc7Z-qlIQMG~lkc$q{--Vg8ULis6cFd0BI93RGxb&NxZY1n zi3j4`lce_xq{M$klF?7v4FPffSm6HxyP>a0viM225P&%MBw74=w-8K!QfeR&=bj|f zUm!IQ4!AJ5f1U4WT=lQNkAK4Wj=oOc#Q2W3N8iNwj;=u8#`t#AoNr=$M^Bk=Vthx- zm2YBvM@N!>jqzosx!1>cHthJRo=Z(@9RB>5vVI1qTC)(kB5fK5vQ zbmn^Yza7CmFY+1%%$2@>`dn*$ z=gJc^oup%fQU7{ls;shiXX-dA0St-{3dF|;xGN$8$*FI};sk{NiG&6PSp?w)VJLax zR8h{51+Xuzt_C<{0gSSkORBRKSV~I)tf&n3RVC$^W#y%8w()GXEKH?U2P}3OPs&(r z?d9bHAwi%&zqu`ob0~;}h;&6Wa4b=e7s^kdwNj18gBOYS<_^+|(Gvkp9TEmOkU1?j+5b!{@cw0(m$`FroZ)Do{1+obh&TPYR0>sp?i z;M3<*%2f2zOjH)e@BwCd!JrROM$;P%+CmYRCutE#lD8u4OrBy`-Pz|b&*6kl$8;5H zKIw!R>!MWCDFk$WFbRZYE6C%)RIb!i=Mx9>SWG1r6Dr6Jy-oA}38M;Ll z8`mx2k3g0mbYcs59%3c@bz&e6~w_HKwvoZGxXLzSgip%Zq7m<;4W zxs6zOqxSm7B}lNlK_`vFgQV`g2<$MtW(FI~?p3+EZRycewB<^+KN1c(aeJh!`I(dw zm!dS_shcmARpNa4B)KOe zSF8gmnE1Uuhhl?Flg&~6CP}=K7~ZZDeYp;WnkM~3LTN46T+<%t;$yMXad6ZU>-i)Z zq*71qjE^z28>mB4HT-Ms!k#D8htVmo8t1R*_dOxoli-5w2{cx;Zg}PQT!(R9)m8)v zQcO|^&`=rL8mK}q@{7NJ(0Qd|3)}#v4mI()+4V-Qvd)0!J8WUY z4niqnLT2zEEd1FwnNci^1}A zv(y-?d2E%&H`#0(3&Mp}0d~(#8T)TM0d2$~9g{uaNKe(4-P_76cC;GHrr^z9sAf-0 z^&!=OyMBHV;VU-C{c-vv`ew|O7Z~q2u%HOjHpr39T`wV$k}PS)f5WC5Kei?Yri%{P z5HBH+g(2s}49?IFbKak@GIg!fPnUl>;P*P4O3?4>@qFD%n5wM+SYAu%gSiC~gl^fK z0&M#0I6ptcNKGNXG-f6gb89(2I+YiVO>lA1>lkP?g%ZNX3XG%ADm;@RV&01(MHM~5 zN10xyruJ@ihO9+SuU$v>t~^yCTRjN&%#Zd~&iTYVQs#K9+|V4HUS{I49;3kEz8bqr zE+2VeBua3K4<`%=mIzyZoec;!OB=AqcV!Q;$f!rYv4AurlO z*`~!_8t^vkT7O z>1Ytvkecv#v&%W>^+qP&+Pim<~}s2<&RjR3_ZpdSs9=1ZFxNTj(|Z7I}{<5%Llm z->#3gpi{pe@`i|Vfp`TQYzJi5NYVxm;!LVMFY=+)V#zqoKwd1}CwC$UG-g~vVu3Ru z<}J-@VYaqTT8$`$ki8|Z443MhWy#}{6ZTffXp+@W55kw?G3#+0C-O31zEngthw;-z zL9L&%%l9{XMdGtNi0BahJ!oOM1^BXc$CEm{aVXeVVV+Qy!>xmvbBh>y7(OoeDoY zPd2)5OG`(Ttm}{ro=u2c-pR~gB75N$mc8@Oe102al?)@vTdptjNK|1KYk>XHSD!Gni4;cm~~bEXT^^QnS28MhTWR?BOnFpiOPcxv{pT>em zRKwFiI*wzc7>iq-o^)wmmOzz|d-kqgvXMqv@=?BR!zsCD5t$NGCswULX67T2w8L0T zb7rV@4k$h`M69p~HFdLU@n8dlS{v-z?Qt8YBmPM*ZKZOB2c^f7lPp74Z77K^bofWr zo_tJ%$%CWJT(>(uq`|z}bu4(av90{JGd68ask$%;E_xim;+yw^amP@dCJm7?iACI_ zxL_qP81rBi?cpbrhm2TAK}KwH-f}*!gr2St#SAtoHx+C= zV_aZ_lefTu&Z63Ze_XCyx;m_RUcR$ru+0c9GrR8|$d&af&A~2crRKrA4{`d52leiE zi_X+CIk~O70A4-p74-5ni(y){fRCzvOb`h6ldOj@bq<0EI-ViSJaj>?3EGpx>B0ua z`2wqERFL59y|daJN_Er{ZBAlCbua*Hr7v*z?D}VnpvM~UD&5L>2=K8~p zD>j%%C?k++zH7%xoN(oAQJnR{pL})YfNbMcl%p+{0&CayY(c$Cgk`dI%Iv3iMsKj# zOC4{TpV)Z#Hge8l3DDt0sCvN~V06E58}}AmN@X5!2$+1G%K?$2+%xf>A*C9Hci8ap zqX=&MrdqX0q*nf7RqvOS%Vr3)C);=zPwLE1yO}vZ)9yIHI=eGN??djmhX%Zk8DvCA zJ{aBGu2q?iy|`f4Am}NS$oS|Cot2Wry}aea!kgq*ujWI>^0>@BDB+D5DUSb#Vt$+4 zjsa%u8r?fFcTy_9RD)nTTE9xNR2VLzvzU)MbTJp7Pauz09XUP}@2v|AweD9wB5(&s zHf>co);tnN@mbZV-|KnCKM}Hltra{&dBA(^x7fp}EV>BYNr68V=8TDhH=1Mop`BvH zdIoG=kFV`vt zv6|k{;1+A)jOY8vai??!$ zUQJS}W1Yw+TB*D3uEox)5Z#TpqW;j^n+grfgoe+3^Lqlxp6vtT$Ft6&@S#xETbx9VYD*tLucId+ zqt7~_tY6kMRK0)yzP{c^Bk1PJ;L_p}aOt<4gUIzFJu#84FOld5yyx1AbkbEtJ5ZrY zNiqUbi)|b)g85N91jmi3dTY!b%!7^hXKar9PKvM2)@1-Jb&^%P$`3A{FdCy9dgem2 zX&APfmuPKXGdzmAbjj8CG(42eH-kSPC`>oE4)c0R%$z#6of*4VvZk0x=(UG_yU2vn z>PM_Uhc3p?YjzrX_UMdK!|6bKoDGZBvmSTWmS@AG>)=I3(cFEK7Y*XnG_^%t3AJF~7;T%$%iF|Ao? zyz1w+Uv-pkzB!hJGpRe;e`)NENlLN_`K&Qe$M@L;FG`tJT3Z{=+M7=MmdF=;%fgfR zOQ$<89}U8#j2Z(d5)-ln#7=~{(-b)Qnt0c1oG~6~r^eqHEjhfJGDC**!t6*oGUG zd0xznP4Wypz};N=1J6eemve87OmwGb0qK14Y;@FG=w-wFQgWtw@cQ^Amd{k`s2%lF zn3cTCXRM*!b3S&}ewZLv=h^P*t=DM^rN@+d!v&pK)*<=QEOl=;l?*E4g!FQ4hT2~H zAyOoj4vII_^OGh+8sZ6awvah?^z(Ma%Mc_@-wY6zE9elXRRf+^83nOZ@|jmS6m$Az zqm;YoGPo*z1etkqqJn{i~n2)O3 zQ>i=blS_i_sJ1FmFQeMMe6G=V_FVubip5zs@HSK4OX1tk+LOXMy;obNx|!|0oA>Jl zvsd!8W}!fFYRg_Ona%50#Z_q?`$k`0?4j-JBKqrEm!Mn+T@wNF zVY^H8iuan&huu53^|+3A_w=44zAaM=|n&KZ7SV>g5lQ>;=vsGFwE>F%mg~Ck2jgQ z-@+v-Gq2RVimBW8pEQoVBa}DWDpy7qKp1UWH95Q{4QBZe>Dk8-6wa62cx~q6y7+#! ztm`q?f?w$nv@v)UA=_&l$HEl(mqNlks{p)Qa{e6;yCA_V1y|7Iw3Fe1pi2w>vg-t- zH`n7*IE9zRqtjatqot1f!9cNNymn;$%Jju$Q_S~h`xhQZVbThbXG4+ydcF8H=3A~eVbO)M1 zS5%#CqswOg$&{q9*;4_hB~X zEf?e=@lba`b?i0sJ9sBS#*&gU003j3q_*|M-oXV}t>3gBc^=mWUaqQ|nX+9ibZnV^ zS(&;9v$T0VtVuu^EKORoV(wy){eJV)(yYt3K9>hV9v|a$0&zQV8LFChkOhJyPs7+< zIEmwsmmTTWO$FPM1GiTw+H2Comy2K5?(2?V*7_`P10cxrP1Sv{ z!rzT?7r2FEEK~g;;!W5G1g4EM7qj7)^U}VE??mNQw-N)2IGvvqKh1uao|5lFSUq4B zYyMX4*=Db>sCzSUX*rC!ODR-sPD6fhaZ8txL|rJ)Ac|dRSZob1KT;u+5R1Q0@=PIo+{^{t za8o@g@WxO?2OI;07Zn%8=ja(k@3W6tdEsc$xMlRTq)!aVc*rjD$)7_s%8%7;(LR34 zj2MX^D|pP28_3g>7>1|ux-WqQc!h9|e;0eBTo&20^4gyzA$lsa;*I`h%WL!`3=)qz z#?2nq0SSt8vGI>*$^!$Pado zWfw3!JFKeD*}P(vsiht#_|~$InaX-D5j&DK;(F$Ou$~{f;2nHY7E`#`yJ_o7>+rg@ zWm(B%oY9>N)gyQV9}rVclXziTfCYt!^MMxP*sidalKOSHMMX?-{NsE|Xg>l9p6i-v zaylilt4Lj)*6}SKA&v+F?V_!kns>|`5_KLAc~UDQ&=D!>IU}N03CU%qe2(2QR>n!7 zxFlvchA&`gscWp?QZih|l#~0ZxlJZWdllm-Aj&C3f{=`11oon;W@;X-1e{rRXLgh2 z#XVLixO&1;LOa;Bn2)PUlv~F+w$jidi72W+XS$+%ghk-the$rn<6j>*=WifEL|5h3 zHiogD^|462?*lKRCX|10r{Cy2J5zXJsgj&jgPYkC))dbg5j}?+#5agn*`%1=^?EI< zB)UPixSp}JswXmdcjr|!<9O#J#*vQW&|oP-2=ee%6{T$WV37{%uHr&5A8XzfR$1GW zS@d*$>=!hg*pSv_Wtl|1L3oE2T7^LEC{G?CJZb@ImIsUebT@oR8IF=@S4aeP6n%EI z^l{u&_c?ZsxH<=y*X%15cL95-Vq_5kk%40qBLNe0ofIwi2*z&c<)e8Fq!ozV03*NL zJof6-S_AA@T897*Z?)K$oZKEt8yimD@{av-Aw%MBe)eZg6)?JIWep9UC;~+Iam2L> zFN4V#pRRQJ@G)JT86Cr;bgamVZ`Va7!tg7`^(nHm8|}YU4gVO{w=RB0L_!3tMQQ5@ ztiGff*+dWHHWiNGwr&vpBk8k3Q&bt>tzZU-dQ#?D9hqiE$Knz?mMWgSX_8 z%kAD?GDGt*LLO6?2{$X>f=;aI*}1)p#NA8OeaMHuf~#H4vaTGrvnxueD8{AOTnv){ zR-vdnVfj?kUB!l5ULHE;ib&B&-LNn`8NP7lg%TCNnb-!$5u~Fj(qWs~hFQki zNQ8$nYRnPMK3_6lu(a9C8X(o0>9y?bRYlWMx5*Q~P{bqXku+V{8Cbw^ zmzz{bM?(MsLB|5&-MQ1Vbmn}-C4$Zg{^$`p1qHkSyal`oG6lMb3j8BBn`Lqcl_O-CMUjg=g`Kk z&2YaAqkdC#=c7)RM!L+N#+re-%oOZ&wD)iZuGA^-z5X-EjATJ|w42DVZi|QfM048e zgP>_7B$SLWeoVrWYc600#LD$Ouc*3PD&q3?LZ|>DYM&C%lJgYA>^P|oz@R4eZLCZY zv=QCQBqdCJa3nd9^NKE+6hr#tx}$@XMe+}qJOvMfS!h#1>*13-72^{ty4&hr^p)h5 z!C@X5z}Bf_7>vg0kE0cgwn3e6ijkvOJdrggaeILSkEo)Db5dThhhH$*Od$aCx$Ye0 zCR5aIu0SEDxb&**y7V;O{zNX$jJ&grNj)z;2m?Gkp-UXX^aZ%@O7HSoWK~{Nz2k;H z_WuDZK-9mIA-aWxBU^uHwVBB008AlQ)#X@1{!P}2*Pas$PdO45i~NtR*N1VEmbN|-_v)4lJR&i*!NthffzMg7bLRf%FgO33~Odz2N8f9*E#+K?36C z0wtS0PxhX(&}}e{t@}}hAr)^v2%H$GKAv^|4T}e+W7FdPrm;<;j-}MBj6ZuJwl<;J zp*OZ%vW>mkzN!vAG>X&3{6_4w%*NyZ` z-YhdTQC5haVn$9g>R21ELn@S9KyGuSFu1*XKpg`xm9iZN7t3wO?2n+m)nC4 z89gxCx)RfvK4$`Z3eIP>($#2iZqhQBWoqI!a|wcyY6G3RJgzzoHW|Wip(DAqz}29x zoT8ivN$!PqC;E%^Fu;y}c;}4W*0kxJL>zfH$9P&ir)Yv1yi@jepSMAuq5ux!QE2q? zeu-CHsR+LKw3Mi3d1l|ZSHzaBh}=T>T1E_TzeA5I?VR^pR~ke>Vvs zQ}oiiSz4{}elK&@Jwr}6$N%t|3wE+noys@^MT@>A~)-U}ZwxPqolO%#`6p z#tZO~0?#33l&kLxJ~N+Y4yBKIVji=g;PZ<|@QqMH%-r{OBMb(vC-PPJoz)W)sRh9X zzC$bx6Xa*`8y?YD_yP|)5j?}P^>-|gVX=P5W|?3lEa66kK%qxUjz0u~)8{qOF#BrAO)s}(^}X<>kdNl(;3n2v zsZ~^h7(Cus7XUyqj+XB+>o^t5v*uO`i08qAqtB%$Mp+Zryhe24Uf+o&Atf|}>YjmG z)lFAw0`3-tBb6)dkU{W3ZtQu6J}6h|yN4gKXAs?2Wa-{&J$WZDYG`uS?V=nFG?yLd*mA_5e_|`!79z{~^@= z4}>3hA%--(eR3|G(jC4zGz+6`5cU>W`tD`Q_+n$EdJ%#Z5Nl5~eM#s#Yv?)-1mxS! zPkkX=i_s6Pd;gG6c_H3aeH``}$ZRflF}4lpDsZMMG|WhYoT2*O=RRX#o#a+wznmn> z{iy87u$`EMaHY`cmj0fAFnO-gNM&C%#N?BFEoS1LsO{709IY$*U$>n4h0fVL5rD2R zMAq2gtA#o>aLtseC}*Nz#0psq%c9k@qE`^_vS*p>v1ET_#_;s)`(-dzfEN?mmAR4 z;O95xHX~or&%=JO{w|Q*h;l9Tf91bIe~Bdd|63sK?dks2bmID#6#kd~{c{~qSw`uv zwAbg)nsH*CAPfkg2r_)aEdt*iFbG3I0i^tIZFblRW%bR;;i-`Mj-J6tvr1v9i3aWu zp-!*GhTd%%=HMC>s^qh^oSc=~j-Bh1z!y9~Z9#$%cE@eUZ7tftxsXT)&elsBwf(ey z71)(^_#s%>1x!=sP2H5_dGd&TB(ngwMUYQEx@)S4??W2 z)32FAu7OfFVr*y@eOAkDJvG!7+Dtpl~NHW|83LX=$Gq$~LKk`&oJBGoDba6|p}_@*$LiDHb$ zHjbd&Lh0Zi;*=5_OS&2-iIWlriaRJPSSCo2O%l(|YwZsh=)wt88#!TwdfKp>or9g7 zk{xZ2#Nh>6SZZkQ8svELdT^#N4zDttF=DFQoGVAEd>y_=!I&p4(~QDu*H}j2-DGOd zrwfOqJx@Ve@nI)w5Iq%Ixt^Otv^b9)v_=>jFHZRdM;wSWQL8WS(IP&wi)g)5(Pp&zb!=rNMNa4gGdxE7#2mec>rcg~}K1SHkB{5kA$LC-50S zes?Q~EKqFBEH+EFR&%w+qvq;{BiZPQm4BvLRP%Lat44?b`v^g5TV1!(7XgZGsO{tR4MQ8Hw1cNzwlN-ikt@$Hx2Mcf)XQ_DM!|i_D!&~HXPZsQ4PBcU zpwoRN6CMld9H@5-E598L@@6CoQ`p7}YXBx*CGbQJ0TdAsh1}y@;}98WM|>EYM$8v@ zT%eOU4ATsBMHa~#20)P02Q;%!fx7CGiNGnK27W}rE5V|iRtEtOaYH#< zMH2@X6DMbR6Gt11zv5LpTc`gjJO~+BTN@e}S^aO$JT{gGhb=+npaR6OJhj-HL^WhlYXAaZKLg+HHGx`gL{#wu5$5 zTZ?I8$#t_LwqhshY7nW>F|c@ZGk7XevLJ_{mNatki4Osp6>d&sKYk1%Yu&p&ox+m= zNf;$yO)%KB+{vBkzh7WLQY0&U6Wf2`DbOut*c6O%)I9Tj@%m-hu-A4wKCLkN|K^8w z35(&!%7(&IF59W00FkjJ_#6*CRbdg_S{+iD{Q~*B0r&zpmsS4Sd>f#@HBSAr0sfzT z|E~pM6KfMQ1LuFL3I;34$N@3HXZMdo6%dvYkYd7NKmPXGHGUSRC$)k=Y&|QdCZafN zUUd!sX89lW!1|5}u_*XV=aPr`7gODyZa!YXJkU~F>^6Jpyoy^EQJeQN!V;E5K_qis zmvVHfv0>cosZLk()vR>4pEj;yr*j8N((PGtQc_?0FX23fuwVlOFvDqPEQd=a5hCWY zbwP0<88EMIVV{Rn%A2R6)1j;n5L(t{U<0rec$>h70^>&DNTEE!A;)IG^E51=YMMgu zK1w`E1Nk(NRZcz)eI_SH)TRyf<9YdE%0aK;cz&Dk_4v7{j7(u@AFpz32>*(K@?~?Asw%!c2j-z!Tc0;P2Y>Z8$8u|qP<~u&EHcUE zhi3)xrO7I*n`>ZXn-$z7G##_)Tu;nPGI#s9b)hm1y?~%{pe4b(f2+=UZ8+!i{bfS& zzf36epP2B!^PvB+B4lT5qH17mVQk=R_rEwhl4JDOk?TyML z#WU@dDGxg$hNUR3+cT9Kv!6K}iD|yqvg++NOF0pqrE~cV#gR#b*U6XKpPt2$CgT(f zFaC1Jh9>0D5}1FrAgb`3X>-uJK4`soz5ze*_u6p4rM_fvMuW+T37Q(1{qB)5Dkmt^ zTX7aPT&Ag-{Hh18$+`MArsOs<$jz^xraauB?1CAYNQZ)f!I*@bU@(p^B#-3o!a&xa z)60*5Z66||_ouNglr~SkCt0lX@DXprxkQcF`Mc?ww&;e`R7KW>G#1X~ME~sO@U(iX^?h)`1`xZK z;sDw5)pnoVEe!*1?S`pcS42v2a+t+n3Mg zm>*UhXDoF`i~uRLa9{v0#%S-+bCVNh?NH3Q>35YC**YyR*}>?5o1t!)#)Gs!x2{@S zi_Yp--{tT{j*4NnAa^8R5?Woha#HRj+gY+6moLqR!Mpe%aK!sOk1JG<0veFNKPKOa z{>Vw_JH!=1jih_%)HGsL{z7D=kQ%4E6^ z^c#-DWb>B~3JK%p4ypwklr?jm^#N1`EA2otLktEM8@&+CL@JGtic)(-=*P9}3IA(( zI7-N~#j4+FKsY#zoKy4sAmxB)juE5u&sw}G_C!7edO&+Bihi8rk>&W4(#H=&M5LdF zT*w>r8M-B!3NTB1f}}pZfpVp%DL?`KxZbKp(>P#)v{HnI5)2hd*&biro`AEk^Ma&002Y3000F4 z|AgW{0I^BUMrlJ7-d7eZDjI@97N0^!lAKu|pH?EXJ1v2ewy5zJytKu9N=ax{U%~xY zyfGT-0^Qs8&-`?eaY^#llDSwx zAWB@)`T!MxM*8>#?Lynu506U4 zqw80Otg#JU8e)$zM45Jx)D7B!?6H2@+6U<=mPzS8`^`%Ut1;7Aiy+NC6pZ;u1(^_N z8P6i7MPhO&U6=8cmO1Q@uX6+PVWP5!@AX4NG9_mlp-W@5(fL7yCVc1g_WYl$wW7WS zDdcFJzO4+I*_nb(Ekieu&G-bgHgQZ;k?>J1L!F%^mKJnKwR3S-;^DX}ii_g1_d^B2 zt50!_eS%t1z~Pumu=y9-D^%ZZa6&H_w@eb6{xwo6t-Yo<$AZ(_OqMS-K39N~1$?KbrRa-QO6r7gvk6c(vJ zy6>=rA_-E=S^=~<>xpSSd6C`xdhaAjXX$IegT&^Oz%r5mCP)%T_26mGDnh-yoxxThWM(TCCGLM( zEKrFU^Yo}^+Yv0IgEfsBKVro6vs}qy9LlNA=TX}pAN}0I+l6-(8N$5#oz4KZ6hfIF zDT_n$$OJ`7GYzllcx0^oQyJO)3+_#59 z4+#^mSml638mcWi{Nkc@#}PVOjl1immi<`c?h5MDkd-pc$4?udClpvHh7MG9ZA z1IHu5pvq^3DXFuR)!8XF#dyiH^7$Rr*~|0nKiPd_L}D2Wg~o67*NoaPZG14c-l2er z(TP4NaTofMYqP&kaB+TSJQ3X`Z}J|0@cz!1Z>#R`NzecQ(l`JBr2he5{*yRsK)PcM zp?r&_bTu^a5{k)slMu3pdq-d=2?}D4xbo|BiMqmo3AV>CKa<|qsE^6c1DjKb-T2De zN@7V~%$F?kUx3UzK0?s&dn!(qc6c6&Sbvh~K}i@OaA62mwL8%9=& zb{1Q5P?2+{oI8~z>GYa9-*u-R#|L-OVc{y2F7)Y2bmNnuoA#PtRlT|MD#;gl z2I~(g2TM|?o<)!~Pt-KjOYkrvu(-gGWHoP3Ssj%>w8J#CcdUXz;mN3ZmWjGio)R!I zOLFDr5mgWWMNu-`qm?;5m?oM*mx~4nSrJ(o-mhu**aJz!Zm&i>Rms4dPuA$bQYL5V z5dHg^s)VtIRQZq4N_0@dE~<%oMtoV(3$PE;9JyKy5pFj0UHNwjo5^dtcM`|0ck}Kj zEMf_&EDYvgp1WeWY#E}j^n`yM0+BS;NxmiWOPH&IoV`;S5p(B3?!?Uu54_@vtf)zt(fZ-D3(MZaAlr? z42_By?92*@ck18=8U$+N$YLj_qDi&_kwO6;^Ykib;)P{)L7l{^ebpCI zX%pz30=g})0n2$^MBj0FUcquQ-erbO?8LQE6n zD!o{5pc7JCQ27xj`O}Lg0A&T{u`%b^-(;JqOm@nqWqLmh%Zas_*~R5?3(e4HMO{c3 z4Cas5VFOE7>(Gj4yKfAUyE1S>?fQO32u3DhUUUJwBPJWY!(wZ#wORPR@Bk z+PDT@U$MKN8y|D_nEiE3o5>1A1M+jIn$@I`XRRD2!^jLnYM_q(WY-D=S@pPJr@LG; zn5j61Gy|D(+BJuQwuuxm1dEl7{c%<8%*ok2vY<$r>K+e~%QqAQ#4fPnR^kwoHtIxQ z=A$gQV=yAb#6V|yp0pGb4A9)0UQs-qGBen1>dzLC9R3rvU_x1l<5@JpY{=oNcr4}C zU(Mn2LOf&k7MsJHGsV4?lq9NnxE9VATQ81cpoC(w!=o>qX5bPz+*CVG^Kzwafnhf^ z#<(4jNc^cNN++9gYlYD>R2L=i83Wgo>HzrN8_GA1e$?_a2p$dBachR**QYnei<^0k_k#P!bU*f?WTn#=N_B@lVDZ4n*Z!j*;uTIe*#Sj2@wPqcXI~S8EzVD&zMw6(efSMsfp)4Z zf$}!ndplEni}MZEtr^iMi94nQHaRVDFQ|<(T9lWBt>LqF+_hyr2SLchm$U$rsghpN zwrPR|k*c6GZh_chPW(XL%^bfq`I5#&6P&|Ktq<*=n>VoW4a>Avmxot>W}TDWf{*WT8iMA^5^0Cv4vz((%KM_Ry+)7JvkZb zm=x-pq?Ti5f;zU+Bs<9+iqrUnxylvYY=;6{l^A1o?n=y#ysMbIa`f!@=DphMKEo4| za*$e)@BUOed^yo=WQ*=4-C`Q`q-P>-AYq1P5~F8~uE>JYPSr$lE?+04;5>V^uD&foR z7#e2P`FG~`EMMHT2&Orq$F5VM_&hzcdA)XYh z+3h_zdh3?9tZFF|P4Q<4nwXk_)o`~~VbiMmYaaJe9;4U`N%&f{`UZTs0D%TsLBS7JvG^oIHjK>&GdPWIkaKwqEG}wBc z&Qpjpw>_X}iAKE1_oWm@u$c0E5K1vXD~c!#mq*~ephWP~*2pvt|$P~!5N*j*qXx5&1*qfYlOthj>IGz*nw zm@ZhbPaR(C3j{cUjjO|PSD`&s!SObuOsr{`8xl0u16CPqG;}&;gDwOfrMN98{)jTj zre)LtaKcP*@sLw`!A24f5^KLwQWB>TGD}sxj4RQ_fI#k^>xjX$jxakuoxdo3E>7vs zG2?Z0Rm0_9(pQA?M8X-4eN`{?Yieg}UW-|ymH)vyk{%&6)rX9Xr!4t>BXuwBWkp0f z`clSMsLdcTchReRL6gAsVSeK6KdJCdSwY+he1jamuVX>etfiU6F+crgE8u`YD{B^9 zL_0w}Q)a;ta6eFnVapM=PQk8W=X3#cexH44sCa<5SSMAVq>~b&CnVqmxlIIQrJ)&b z;!a0PGKXCSEfUEl;jZVvTVwoN+cm27{J}v-q_u`rdj+xP;>WL*R!(gGOqDoUqtzXP z#aKScY4(y-(1FR=RZ8_W$s||~Aua1hS8bBQ(4rdxiqe%Ty!8rQSUdbhix8LSWw(z} z`soaUn_1Da3w$E$(Q4d-EVaX(4>JQV=mx9;39eTxbc6%{eDI!vd4BAUEpLw=GZfBX zNTBM{iYrQGfM)6md@omEVGX0z3IcmI5#))&@y%@4WTwEMCsg#ATjUnn+>CCY_!*J4 zAr-;6b{9J|E9MxV@)porp1t4xeJkXSz+0W1+q(GfA-IRDOG=wJ{~@6u%Xsn@;obWY z#ycv?9;K!^su!B*B}`IEk1~+SoLAl%e`PU7v=y65{#u>HUWLqJ-kkEzVVs=W444W?HuRQJErk&A>xCJ2}qX z(=J=k{1SgfES)s2cp zM*@+Nm13Yd3#2pk+}hoDX=&T2d_8%cj^q{Z5A^%(m*j8_5)cA!m-uGdlm2FF+Q8?B z^8;{;45ux9Ad2yzZts8;`6~r`6Oo)pNptN4DA=@;PJWYFh(g|qiiYdV9RENEQ+RT+ zSw>tT*D!fYZnWSl57A#W^O2s_(tS6SG=(>M6hm}T z@?FUCaDs{`*@-cnH|N1u%v?5eg!=MTI`gk1s$>gVUH1J0pNzOrL~L*>-0R(%KrdWM za|rIw85YPzCKNuxu9F*>XA^UrO*D0OoOR;wNM(@$(I1l*v`c4@ET$RgM$`PT1mSye zS-Xp=kGwxr_(1-}Qp+iPfZMKLJ3YIQ5uff2b`fx~VE!20Z&3jbo>vh2R=Bi(XpRn{ zw41kcL9`9vu&eXNH8k$5hN)FQLdxGa(I%^W#P;g!N0kXu%Nc=WWNjVR3Y{ETcwL4o zJ!;DIQ*g*GOla-)HEnB+lIKiZaVJ`%@9q8$mu4BF^|-&F(h2_Gc3%BYaFMhB*Hi&{IifP5lR(4n-$UH_|x*Kb((+e>R?G&wp^+K>TNrDpt4p?>K^P|7wUxP|6 z;+dSgIxYt&`GR9_p>t89 z6nVrVDSp%welJlJrSRCd?%=YM25vV~?=?$bdju$I)gp7-p*K@a&ogZ6aG)hpW*jWw z8hd+j)p<%TI=V2?E<9r%n3xFdKDNq1YAsDfK+ue>f7ja=TK2P>Zgn!l4*tCz5^Y z;HnSbHOtV(?Os8;?i@|mGk1!Lp$C27QEJ@7s6kX-*b8Bgp7bk2zyv$xVNhoG-k0|` zvn1sdox`E;Lx@irJ=+VY+v2ufj~&$*uhHELd5nYOBF%4OxvJznV`U z+WgLd<7i{AzDcUeG#fvce<`BsEFlWFG98`bCqC0YanT+c;dIuXyA6*aRK>{n@j7)$ zqAxYj8X@9du8+y&q+C@ncH*=wW3tvx2qMr>F=}+}YvCU#g&9&R70>7zpF5Ck`7+KG z$Q0fZ%k^8@<}=o}3Gw>j)I0GmykF2(HjLL4_z3LSl&atK zPAC2;E(bXosv*&YKp{GkN&*3>j$vjLPZ*@&FE7z-sSxBr<_*T!lpF8ve@HGWUFnkY zEB?_zHc0qSaFh8D)3~aTeAQ3*qMLfvkN;v$|2ov2X;Qy&SPTD>|CFE+Gvy^E6g8e< z?SfbKc{l1A&9G-=YYgMvCIo}JzhFi{*ef}s(KlJqL+}klrT7J1o(%d(4mH6*N_^=R zlH9RTj7Mk43K_Ns6jiH;L`0!nf{Lev1F~PQw9O-yqMoR9dg^G5VFSt}{2FGwj!;Z; z{iy9M2YD_&%}^0Zr++l0#V-{o=B2QySzXNQvT>gE@+v*|;@{E3(c{r2<5lnvG=|&k zb9KRC4960NRF^lItuikfl9sbis#tbL9FuZEM6JSwj(9SSabN#-CI^DJ8O!vSzt$uD z??mHo{{BxzB6S^mEisgD)dU(TRckU?YiuzGpb*ZKdVC9@@CA7d2TX(?0t(wK08=8H zs_0^>r){bcipF3>b7&jAGwIyj;1v)~BsiS=QDC~pByjYck9k?W4GXhZj*j;CRO?Em z8TXs-tdFagY@UXr{*#EKlUPHD!p^Y%*5DyFF|(er&^5r z;e604zGhvBa95Ia>2C?;f`$>QZYgSQWZXnPYpWVncxAk-#iCP`XV^3s zdKCpuEui_cXF@v_qs}NXqMg^G+^dRj)r>Jqpik_geYT5j~xu0-~|B0@M;9qpmZteCD59}k97H7hJup3iUE zMxvBd`Ii~4pkc1Vk*Jg{ucC^GEdg$s$NW395lWckDD)%DBKjL@HNAC+&kDjK1-FT-#V&|!HP9_0($c!endM_C6a{Ue z5^KtEq|39&oWFXAld}eB(q$?~ANR=sxnmt9^LU^z?LJuchoAwm`{aPt2WQZ6H;D2W z^`P_->A>t2SxWC70H*hGlRHWRc8BPIUP*MJc1@N#1N0~s^uX;wYr*P%t6_juV6-?t zG{@vCfSa{zJC;U{KUtk8)M!-8)+oT+&i3B#vxLws4Fyb=jHn&&hp)~P`gkdOg-5C_ z8%B;%>QartoIF3qFP`ggE*n)#DX#GckEZMJ;jQb_d2e^L!EQg%9TM6A^KO=aESR`N zUQ>2_2eu%CzjuhmEtLDZDpk*=d%G5_)p(RhmOfKPUbzZ1wmWS=U}mmP8RjuSIb?me zq8IV;YNPkThX}-Zl9iH;A@x*=uTI=t&tp2cSS0)yUHShUC z%zU-XHNC@cy^QroGgy8!K8ZZ)$2_-188LIJ3gZ9L19QHiLNCQpxv5-q+OvB1VGSB7 zTab}LdgK=9>9RG;^Yu=8B?w*NaSz9^-`sPV-9zC%Tnljnw`2>~j1b>{4m6S^|&PO^vgJefHFkvp4MwKDR)VE zhcjIjBo}jNrup>?d*He~d!$o!|D!yIw2;!q?M?4P?BD|p)Iz9>0cYTYY#OgXl$3#| z|KcTlN#Hf7Ywubu~Mf=9G02%dK)Pqa<6fPAr@fm3CAWbQXq zp!Thn=~HYuF0qpzImd;b zTVfufSGObakg(On^)p}2I0(}xfkDc9qcBBWrg5XV>WTXHLv@imRf8}s>z<;|u|KG^5 zqKT2C$-mlP{;{2+Sn100UxR!8VEvKEVy*Wr!t-Tol0a6wOO-((CWojOr2g9L88fyn z(J-4ZW?M~#f0PLV>%;T;&8vKt&D>;(0Hm|p_TX^ccCy{(UKYRVEfw(@ETm*Gz}x7j8FvGCFl|kNEv;c=1XFX2cz6nZp`=LG0wk-MRd)S7z|is z0*%I?oppJOENILt?;tsRCwGXyqr+0-?Amg+B6}j zBulLn@jhwrgSEKxvjSS>6~0upf^D5)i#^ou@-aSPMO5^TKl93s@@!}efC?L~Zag0N zB(0BH48bIZ(iB6r1hHTKoy|k?*19qq(>+G`5V-Bk(Y6D zVo}p1;dC)ovf=Cr0tsiA;GdJm=PlW!_8Na1*?3h;*iye)dx~?coo~9yBloa8v+ObAPD3?#}4B^CT&{(8XE9T zD)C36ouyvaaKDMQNkX$j5l^@<00fkPa#3-%Wz1N*M8|C6(zecTn9T=G6ZF3ZiAmE6 zCk2b6xgKlxI8A3UJv^+u-~n9sPZ$BJT{%|&rmjJ=2d4UE%c<@nZ$$p9P46Hyv>TCI z(ciSpx%E1o|A`yXOU|?cbs(V$b@Qb|8$0ONGWs~qlWYXh-o!J1MBuaX*e>siW=8YO zfIQ-ddBjH_l7GCBGeUWOM2u?@eS(;OIZ2+v<)u)u%46D|3=hMAQn2|YgYmk6+#|qh)BUxViORGXkE(FsYzke)Wu zv(|_AC`Dqa=Bq%N^G|RTn7~XQ4cbLn$0)%~!EYwo2y!m-R`Y$iXKIC)a5*gr zrvs3xHje=12dsHL(U6HoP4r!&>ACZmQ^M&3petrgayfn6xTdAHDI-A+(Q_(Brl@}M zQ!?uP2R!y`5VB|~q6w&qMl*X1wK`$tWah}hHes4xUk>Y8tUu{fKmUd>5Ur7v+P|3T z66`-m7}GztquZ!qi6HxuLarHW;6ox)7)A$6>eiJHv4K?b3&ep^=Hp-84b)+b3N|3Q zk@5RQ`1ShQ#tz}mDD*r9_KY3eO^0Y2D#|&@9#3z#y`-P;GP!+!eyr>ON+0C=XG*~2 z7lmq(?!VGQhHQY9$an|EBE1d{mcB}JnZbD15Shw68q)gHNpJS0f^|#k^ZJ7#MYdY$ zkM%MN9S5zDwia$8sqw7Wya%X_THxIw=~g)0)HSyG5o5DV#4W~4;zGv~@Sb?qv=7jy zU%*^F9=f3$Mm7+lgITX2VNJbv-?qH@%A8IW4Onq)x;?!FGnG`>_Uc!A=G>xLaYKOk z$gXczzRp)?C1amOBHA%aKA>&31PL7`Ka!P%TQAxnPMOQzOhVXQB9>Q|ly0`Gb24HLSmT#_${($*<;nA^D9kb3e9_Wn;*6|*pUlkz?aR&DYDfjdL zQ>ubUap6gJpB6OA8svxn<(d9l?-*nC4}AH`mn4ei>nffz})1^Sz zy)gXUZ=w*x7A?R$dy;Eo#)#o@beSt zrJ>YUDsU0g^PA%u?$4afHfqc##4P;xyP;flREl{gTud$2l<44!$~QH~Qj*wKNFM!o zYTsFVBD5YAhtD`V1H>tdJ0S773TOx)dmu;F|?{?sKBIl_!wb5u#+$f4&;>_8VajXmZX?TS4j|F}o-awSe1N6av^ zeh_c^fLc9XT4{+zjL(0j#xE-)m<=Y0&Hi^iO$)!#psSed zM|iuS28}It7zZ18{}W`P^mLGhFAgWM+53@CYKE2}J>P?Ox4#V~ggnnrw5(8VLs4rrf;(+D1uhCfZTsbY@FQzM{h5d|$3;DQV=l zxr@1 zpJLJ3ba+-g>H^7qc6P9ro?-RJ zXylq4s1Nuh^rK7YS6(SUz@YCA0z4(<@v1wAkCYrt?c~{k6A1=Awx=+7Gu&=d2}fdUz@a|C7sO({U*8r^nUs`- z2u^99MO~kt5A47$&XTbR>thHiWTWXKr+MtwBJYB$Y0iJlU6M?(9!rDs$u)H~J?VOx z>39kM;dvzg&Emck=;)mXl6n9ImvJWmhq@<3g3U`EN_BLLz~Q|ZSb59v_UPbojReJe z<{weX(+ajSeszJYedCYD=05r)3YvSrOS*a4N7K3#D0jdLntP`YXsc!)8o%dv~}sfQaO9{0kBkuKg~~+e?}7 zU?X(PUAP8Mc!q&C8O>oOm=g0b!*pQ@#g*L23EE_CJSmADG z;d|(@%13+2o+}x--6W~L@#VR>iwEJlJOw0$dwY-dj~^U}U#c{m@N+UABE0DgM!k5E zA6Gi#4%JKrqJ~|+3%m36de?BV@_5IAM3rx3V=kAccx~K-Q^#Y2o5XueF&%B}IFSax znmV|r-huqsP0xL8oELM!7Aix_yM?949W%>8DX1=(>>K1-ShI-at5=zz-6cUO!1$mcb)VaT8pd73%rBCxslH+1IAPBoh|r_|XFYEfr& z2B)mOxQ!HSjfn>-Ql8>TbdgbJmpRpG!Cl<7nj)$xeK~KTvX1uK&oe)n6DFv_3f0n? z6p9FW8hQ!Hp{Z-|(cEL2I(~3y*wQVf9yo)GF2uO)GdDBpn;mKcSV&=>b(Yn@4KCCZ z+t>_&)anV1Z>I}I=VW^d)E=GHlv^CUzI(6EhZiOh`)ITk23$0ITU2p}%5cW3NbkrL z)4jCY560Na(WfvEc!m-*sWD6~s7ZMCXPvupY^x@&YAHnHqrZ>>JTz zV-?r6ujE%WO*f4T@3hsoRI?QofN!99iwz~d=0x~ftHtvxiU8QD)XV(Jc3h31fyz<5 z^ZDc#0dFpI$DDy^><;fuDexN=SH2_qR2D&NPv0~huxl#%OpnMtKm*z?&oAChrSuKf zqk4_b@~hl+qx6k6GaKs^Vf2exo=LPd9W#tJz5_>@k@B7}73gyx{nO(80BYc)j9F*; zL$6bADlZolnht9TR(!Ioz8p*SS{T8%HzS-?8dl#b?Vvg=t!i<;X)X-ztTd!In^QQU zJf?Q1_9-*8a|ibf4+@1}86=V-jgH{g8^)wYCm{tfQUF=PIIO=pvurSnE}7wa#ZIdS zlw{(}n5FWG^kX=OUB950EYlD{T_E zw);B*`UqY`T15NT2mFBuG%^e5k3n^sj5ozA-Ge)7O0)zKqx?os8{6ud5S%O`7)c~~Oj;Mu;mg)WD+Twr9BZLhKDfH-W#01#(WkuaoxNusFx^fmyzrD| z56f)Disij1Z=4yO70(hXEhL=MrU5y9OeUd&+=*Z*;~4b>?R+gOOL9NQX%1!$aMt>d z>>q*~Yzq*NUoxKT1?lhnn)z7w_S&Y(=*G}mIZ*{*FD(K-?omU_^SRz4hewWk$nI@Fgen|X zccYL*AK0_Q$@Y5S9Ak^#9gw?XbHl70I2Nx`vB4#SWLzeT)wE|+qu`x5;{{_9rpz}@ zCnrxkO!7oE6yAnVX3L1t+hKR(puYTaw0lnB4!Dmiq(FC!&@W5#OEm%-0TqHOed~+M zCy&ba@k1J4nf% zfuk!DwI>MGm#s}ll1o=~sRxeBfrLX_X57jiv}UL)3$ORd9i9zwK_}7n>I){si{Wjdm_Oxbl{@6GwI)*#K?&&*T?3^W`!2aSsNG zlay3!zH%SGr8i2|1NClTj4!BAtpRUPfB^?gAAT@lwq@)Qmlq_*k)_;1XjYb72^_PA zs$J)nD^S~Iv$8IV=9)LiNNk~J=!1T$UHwhaG34T9-f^TjCmQUcIR?ve+?+LzBzrgi zRCfSGK)b(~V&`B>tv+CkL2z0un1a7(J%H7qpcEDvLI9Q&wGHxJ(#(8F;Cimnmi9P% zIw}<4a^j+YopT+$$cX%KWshi|NEXw})95rg3VdtidJ1<2=GpANe4$-4jje&k|_H=>}ECFVH~(D0>6YT4jl=QD~YJ1`^ah3e*9T6#a1Z5Ke_i&-yI1 zia)f9LbFotwn_OkWl<6XEE;Ek?0iUVj%I&sBtb=JWeQ|X;1W*{FdkdhPA?cwBc0|> z0K1VVN&xH#Z%u(-3N@=pUs0)%tmLU=#{p`m0cxj!blG6tw~%*Fj)6|V)2=kEXjb`y zCxuklCajeXdA?D}r@8iuE)I=Z9NLFwK|@#S{q^!2vYSwDqpE-VQjL&Xuq;jpCoTup z3Sh!uEVl2cOmOX=sfcORTM9bLlM@X#{zY9+Gp?l#>Scc@xl7SH+~7TTcBVq6?& zBv9?E^Jj;)or_hh2R7Nab{84#R}!4uEB67Qka(p8&+Grl3btdUvLNXrV9AHfat0xb&9??BjoMp;%wh$b0g=T6_6eM5GLo+fU1n&l3Ux6ePhnA4 zw@*o6Nz0Q=&zVTiqk`NA=`SEc?WXwdJ>J<}5n z?YE-t$Dn3cLFHys(zASCe<*$>rQMJZpU@EQo(Ot3N=eCWmHhWkt<+;qX!5_(X94iP zjj8*eBWG&^N1OkoO{*zc%MMWhdE{rHSnIU80ELPM3bio|ZP9ZCt9q%b*?hfZn2aen zxrX+SvBvs38=oZ0u$hm1VK`ndTt0&+U&!60pwti$FFA4OA2ZYGAGhhrU%9^BKM?xZ ziGW28!hLi2+@m0SBaonEf$|QLyirn4ni)*vdsgtd!S%DMJkIJuF_b7Gb`hf z?L0GRG7*;<%}|@#yUhf-SOUp*@h0fDv4gWGtD@nX9);3WYcwJHE@PVIR!mXO07ek% zC|k!d29W22Sp(3qX70s+@mbZ7p$V3TYh{?o?GrY-%Q#!pkOmyr6_f+ru>MOhJ5gr$ zDWfaWiNvlGV3CH?%+<+WQX%D5BI#d-p}bbvm{+a~9*XfpmWy+uZyaXB^fH0JJtgcd zlhMjvM?*Sb`DaLk(5F$r>?(2`C1`mUt4j3O-tnvxRonVaP6C`%r)W>vVA8ElXDCMS z?o4X%EB6`qVT`UKWLV*HNpUq{fU5yjkOCSqIyILnDHB=?3<1bJUopBD0O%`ovfxb+!BHYZO1o$ido+ zjJf>xbdoiHD>Ap5bpbVGf-X7mi#VQ`Mo-O1lmQj5|}9^ z{&K50+;Ayj5yIuIZPh_c0$QYL%J3>1fhb!-Q3Rn)k*IxuK2Pl%w!uEm{b^D|Bs*uX z&OTDzJm77nelJ;aI`Q43pI#~FD_whFyG+<`X?Hz{BPvMmj~92`w}u2f$Df0=%;8+$ z$ZoakyhDg~j2@*Nyqa#!+#n%zr;{RWFZ2-|Q#hY5cF}hW?V>`ASJ1yZ;HIL^EFCBS zzy{nu7P9T_|K)dfwkEdDq6S8P<*xtqe2gJgEw=?x_-|HMd3wp;{6dI8L9Fa-0r~l8 z5VK%H>&Qmti2cX_DqEu&7-%96igbFCe=#` zCQu9M`x!=SEu`qKr>1LrC5296(v~s0OW9g5YN3u3o#RYkY^jVIfvFQ5k!V3Y2#PbD z&9<~Mi*XR6&Z91->nKPAeL>LI9i)S(Q~Ik-{(d1-8QxP5DyfFR*jKUFK=jUbAX9Oi zUP?$LVl9&m0W-+&kM{ zoQubbe^iH-2a{;MMBSv#*oj+`4E(IEnf4zdY$NZDB}#8KD>uu+Kv+h2QFu;O9DqJh zkd+~*884%(fGJ}PquP7Hnu_+38H2tDtJLmjW9Tov1h*^P!4H)287N8&Aw?`}<3CmM zjnWOYbbJg9(h;TlBA|dPVG5rpHl#Quk1CE3(hi;z>;onXAug6Ztp3u88R$}T6hYLk zeBx(EO6Il1CQ8vhZ0Gm#BdjmsKbNa09*T|=W4ruHU%ZVF0x#%s#oUQQOvRbh8mqBvp)qqteBYDKLOwTuNGr33w;odn#>AUrxB))G zaW!Yf4oKBFf_RuKasZzV@y4!B$;@c3_dSTuz@4L_aIv+7CWMH;`R{!PCk$35!pzRR z;^k`hS=_pTf!X<~4wWzi#o=jZMIF;rqY?K7qTa$z#HqMcxCmLAj5Cp1nc< z^}PUAuYpAke$CkqA}VQTHIvIew}s;j$EzD=>hvlj)4xOw>Xy!Is~c)*W3xm!opFRS zcyP^HhQC(FvfI-$yu)9G>&?}NR1-H>8+34Ye$uUaG(9BOgP*={Jy9SvEu?admPS=Z z-oud-irDy|joDHwA=ZL8Jj-kL__J+gV?Yq%{`I;g@|`#k$Gfo;Gvqz~!zb$~cx@8- zqlk5;_($AI zi-gi2?Cpp^0RGbSf1GY*Z!c}&VryjnKaLIlaa?b*ijLBTC^AnZY(unS7%(wGesEAT zn0ANFJSl~RB7w9+9c(?M%xP%HD3&~-Y6UgZUg_-4ESm1=Y-qP@3DcWcy7bLB7%*$% zBJS0B%{7nLb=$|?%|_2Rm_76ii#N_dHpun9F3irO5$X%lE9#5#1OLDPdbbol7?D3m z8p9+NQKX}wQAROHi2SU)ajUup^LX3axg(FvRmTcus7m$zn!AUp9hFzz}Ex{!LJFf|Qd z?i`x7hDCeq01W411JLIfoXd>vU4O;AY?znM%ej-aa+VNuI}Kt{H@c9V_7VF(fu1Ij z9|g_(kth9V^N22vOWE@M-lu)`#YAOqBFW*-ExM>}Xc0yE!WRMgH{CQ>yMRK(#j7HL zG?|V$)+g3&-RAcXou+M*GzMMByaJ@h!6(p>jx`GNG#o1#hB@>0hlA}FBjiC58@Dv| z`jri^x!Ht;1?aY&nJ@$H6BJ5z?l~9W>3?W3Q(UTc83u|yPoRi-oRbvh>M9N(#UtXc zB^je|r;I~^F;wK$Od~{d@O^ugU}v1G4n~l&G;=5~WL9>jux%i4`1Vd>K;-1i+c$7a zElQ_BCoqaR2DB@h75o5K>hcE!WkUHyN6bcN6>ZcEJPv~EAYAsdBct~2IlRIQ%#}cN zfUZk8XTm=hy{b<@2&UU=h+2yfo%=M@M*8Giq6gqhcMm9wImx)Up~vSSCPdW_SC5pj zxVc2VL_U{ye;u)TC#Wfn-6oxvE=*Y`A4RD_vvE%dPmu=raGYyvwt4DG?q&X}T}gI7 zqaEZ*%CH7QnpymKPiWRHtiBqkS^v&W_mc27Lqo!cJ;OZjBM)H^Tt1prd`?DkMMfBO zNEY?7j}|>1HC=?0CG#Q#4h6`stMPL3orxW*Qr&72lm|4?f`x zTszx?-GFD8&`-=;!YjI+yQ@^dCz(Sbjqr9x-*JisW0mF+*c$Sve(#(kZDR`5jv6r_ zDBxN8Gg$m(bcDDVI9))VlOtb^rr|C7g(lxacXn2Ir)98sRrdwe6EYW-HdU~W_VaJd zQ*zC2d-_)nb_nsm2m$5no&KXFEM@Cok6s$iO$?$Af*qVqF(g+FMie|-SFL1K&m_$s z4uO>+)OGzehM}Hud3|XcH~q?>`_5Npbi+logyGz2?|FrH^qM2XS|o$M5vgm>o8vR{ z@V)IcZTot%^Dhd*VFAS(p%2bP8a3nr3z0+K#2hJQh}vt;Iziry_tB*U<)9ol73$Lg zbNQo4&O4eskxUl}3Z`lpc0#l8)Ou#~pehzb0UgjfuhXSSgIY8URIOeOrb#{vH59#x zcGSMu4>RX7z}%??v-dd8Dnx9@0y^NlMjyOwaRX60?WS2oJfRxc(%fb=>LC~9?iDgo zr+sX?P#<-izg&l%@367#*sN2(C1ZQ9vv*kCJk>=#kVKQ!yw@ILvRoZ8Wly2AeFCm+ z<=~`N=@DaaZK@VR60$lb3CToAsQci4ut(bBWnXSN@)*@jo(>*j6_>;$GjV{+0sqhs z$#ip(v2D?GXxX6U?eK=`=C0-5?=gMSZ;m&Sq-u;rA~P!KbcUb6I`$ZJX5q1h=ef3L zDM{oilEaI)sX|$A$I*C{q-o*&g>ft^GX>uOLA%M20h7pTgHN+uE-SfAvQqt?W8@kUz!uTz%@C9k$+J)QN|0-%=+YvTRzZMQ8|n zTUlOFK~!)^q;rbiOA^r8ym7lh2PJb>r7Ew#?om-qdx%B(uz@C7_veGsc9&OZzvy#( zy4&0xszO;TZribm3#V{Ndy`hxsyITHYz42JWP$hr)lEmBMW!6(nuq+%<$e=I_bUD( z+*O7hTvX`ur(MxviB2aYUbDE%$&EYzAvtVDhLUe=>UR~xemwW2F2w%!j z{o;gY_`Auw60zF4Tx$RfNdlx_-upPsJlt2jyGHy0N_q6x@a`K z;g96o81v7hTVFp|cLMLz7Q8tb@WUQb4R2ApkwL$|Gsp*`leFt!v5Pw7-<}NnKQV}) zi>$^Ut8>VN(qXy9b>zqm4$t)iv0p$h*UW7mMw1|p;w+PrIT5#82G0iVGSu?u!S zsEx_>TVh@{Ma~+Oz{5Db#E--ezZNoGf-~EqRL$W2eVJ{H7lkNGUoYCP5Mva8}OW0Qv z>S*@3AmK=m`^lkV#SAXPT-c(z=p|vk_s2PfxPP=c6dBtMm6<>{=A+Jmgs81BVYL`8 zaYXDKL$-%GTbwF06!wy5lKZ zwiYo^70Cn`O$Q!yPnA77agOdv#G@3uw?np>p=Fwmp&W05$1j>qF@rkhLo8ZC$ESl~ zd~_P{LE&C!ly?HE%fPWDx8_FA2rDFuwyopUKkbOy9pFizlDpWywlqYcO&1j3GDsP( zY|vaZHwlc8jTjSJWlM29;=G!cbQZx&H8@<1TfKSZFkfa=541Jx;ZW{moPIb0pj5*{51 z>Y@-7n$5ddrWivQ7Il)9;z}i3D%bhVY70nj7(uR?bG%hkl(Ka`*!^lu%+cxI)4mok zU=;&5Y6>zw>LsospYb|dZORVGifz_2a>g=MFukYJ+ousaMir|xj^zwP(1x9uU261U zTGkI*d0avo%`k76=O%Ru_~1_Yn10LMQlRq|vf&vE4}H$^QXbE1gm%3koNURFV`|;M zZoUO0kRXtK;a)}~?L&iK7M>6Tr3ps3HbD2Yul^shH?1RMM=__$sYad-kGR7F7QNSgJF>?TByWkYh zeZ32KT@Yq+NpL|gy+BhqNGsML|!| zxaJeA3y70;-zd@PP=rAQq)^Zl4J2_;1*@83GndCyAkV}JkvC_w=Li2t|j_K!`TI&w$~@H}o>?aj3E zl1r2YWg;K`RbhG(;o*6tSXK;4ajyk!Hg>oD&$fTI5E+Jl_7iJ&ff4^lBk{qe4UJxM z-PrVG_GA`^({*#t&*vwoKCT=hd#E+`LTh#}&LLtLQEg#BOa!T^^d<|#M4awrSqN21 zr)ea3WG79Q>4Zrgc5zV8;k~O?BZeWg;@B>Q5OJ!WQ5dZUY#+U5ilj2i}69B&WpFfgX#n?cjq9y9$H_4GVC5xlHR1k7yFf7agu)KM+OnvoQ&Tk|18nDjpw~Q9gOEOhX z$~c+5GMcrNB+rs0v|E19h?I8MI^>&^E6EWT7q&i=*p{9>Ub_hXS2251@B?>AAqx}D z>~2PAGbPhF`uBUoCR|z1I_L0;mAi}m;>C?vobG%Lo`Ha11Ed$~&5_PygP7f3ywg;R?*VNOz zLy0viwSF@cjgB;3f)r%#C^iZ3e&L8RKB3$RI>5ze3p(Jnm$ZNRu%_c;;mGWPP0e){&<}?QG9JVe8MiO@PR(xj zzu6}V5X+qM4Ou99{JQJ;JHTga2BUod{}S83K+g2v0{s6j0RLZoOvEDY&W;Ac2F?cm zRE1F7kOXFc=Q*=!TGpyg^%SZPgKCH4r8KOrMvh3SMjZl|Xb~XVD7q{W`RU8Oleq1J zyDc1CqkP9Vml-ua{tM<9qZbH}<{Lgpfr z_gfb%A%2qBxCQ4?t{iKpeK3Y|^(Qw+e;d@fn|b?=!kURECnNgy9SGo)o2a!~zH74H zSgU>XA73@=%vLw63Z{2j8LMS{Y@+#v5@;;o?4XcfKuLd~q7%a{8n>#k1SqtRkfY_?Nzwbm zkTM9HXWS!56G>z-n=;hr`uy9))*hpFAVn|$fOoim>Q4KAnfITJs%GJaq=N2SB2^Nt z1OYm(s{!Q<7*H10NT`#q2t`~hFYl0{z3x9Ioh1#Vq7C4%qxK2s%^yoGHgoqn2KP-G zJ908DO=^*l@+@R}?Q`?dJ=3u>#`p8}P4?T&fi2=GP1%7qf>WB+2xq!7EusJc?eN$T zxptq$98|`NQur7$or_3a&^v_{%B++k&8Qj0NE#xLE+Y45-=QKdmJ1A zlscA_jq)IEbd?MP$$p#_B|+5DGAAglsL z%0hdgSrAp0$DKv(*_rz`vk8a%jpc^q{45k#=4B@qb#6_$fjpaxCOLM+sv_1vGjUW^ zK8Av>5O8*~%*sa7WraGza#E>4Uj=3Hx=caFsHzi1bd5+y7NV6CW0jC7ZDmLK8j_)HE5AM{mQ=7R{a};(T~W&g5VY2-^abj! zLLINpd|Fl$4%^W1b1>#YKu!u;DH-=zC^h%8z&WK^F&Y=j3i9B*%CbnJ>$XHV!T_|L zO6T(!yv3^jFVKx#?i3bl0WK?V3Sb4xt{MZZ=E~h;n$GGyu%Bd@}J+a^bvLWpF{-Vrm(-ZgvB-sSsLuzCkrum|_V;WsFk>H)H{ zDRoC4x`cLGlSfJ`?jnvM)8J{TXNFr4r9>b{Aiq{9eaT}l2p3{$R8)RtWo1V$*P7+C zeH#{+u(S9CYaGiP(1C2VXZXl()joAvBV$wAk?S?LWX!9`RN!<4jW(={Vf&CC3=x{D zCwM*Hx58U+rBCo`y!?O+Yt?jNtU8S;K6f>l?QE8M>QqlT8FT-Y1e2a;X9D zZAFT)#l`Pcn^AXJQ`68-8S|N`TVzsbt7QoIntlO$pe^Em5Lt`MLi7MFt44r38J;9m zB-{?|G2qiC-n9~7Z%IrwJioXu%XjY1D%~MTNp1@*WXVCOT!*Zr%TGv1PN?~Q?VGlQ)*=^=KWdam#=7@4f1>tPpRVQRh)dKByWa<$Ai^ip zJ+{s6C22sc^2wNJhZpYM9lD&#x_8Kr0OBK$MhG%&e1W?^?wdH(t1kop_#VBdgc1tk zd#iceiXZ?d>hIyxoOi0mQ1kd(D$4vBr7z?GmwXsbRKXGSVM6Dio7A^o1hJk7S0nrY z=@9r$_ytryf|tB6Pq^BH6T?U5ctO(SX)-WINGnX_k6(d%e+NQ7aW*C>f3>zk~(B38P-dKqCd>)vV;_X-O`+ z5`4p!L)Cp8XLiij79P;8d_|20c*5JBb2RL{}Dm&}y7GIce?M$TM?nZb_*7CUOC-xEFbd&+E``f8axc8fp$`M1jyezkwr znEwhyaQ+HJIR8PZ98LcHG@AIo0&g|PzrJ8%{Esuxccg#>;J=6UQcFxsgF)s3g}a^M zo|dIZF~9>HQBinCJ!u^suW`L97kie4{P_KpnMGgm6=*M~FWH!OCfV?E?QQ_39d`3B z^90GGihbw_V~Pos<*>5D)1cW9EiYX|kuX-Jrq3?YA&t4Bi1U}{MVlX)mnA7TQ2m#V zpR5%`*dNWtLzK?SJ<@^(#95Q)RafOJgX}jEERCJnJspM+-F(v3k-(m1ok}mYg_+Ls z#%=j#8D6M7B_$RjgcHO`Io?8xzIBF`mtx$m*uF~ps&~3>U_HNOHoTnc#9GxEL8ymJ zuCDDe&Y}4~sm+ARt3M|yGac*X%4(T#C)Dl0`sa4MIe-X)hw@uoL%@Bi%)q??4lM`1t!0NkPe_9*86jdA{IJVwfn z8m1WXNDt8|rG~U{WxhnTMK!3jpx>%q-#R{mkkBF!!}?=ZmP2|1Lu<#Dj=A@h-`o$O zPs5dv-1~g!w*pTW6A+={6LH_bHW$;&_RQv*7x>THODrFtcfbu%Yf#5|Jz}58A#7De z9}h4nNe_d)-dKS@xMU56I$NCspn|tmo^jqJ{1k^5EgY`Lri(~&AN6YUt)t8JN52`m zW>Pau3c6tUA*m4ii8AQGP(kC6rjebPJ4&}wX}bDcy}M7MmtwS5;@)m~5qdabOJxpG z<;+6LK{#{#JclCkT759iVH*njwr_}m_PTHH75_cIaWy}yN!?6cHu?2EsoYANj?_gp z3XU#{Zi!Vpw)=dI$vQdV8ep(2TH`1&7j(q-FPTBW%4vERN$(H@DcF_QoasA|m|xnd7XeAZD@mwbrPXXYwAG^#W;`g% zf38#VvyR(6F1R}S6#-?X8PNHfbPT^zgr=uylZWnP*WEU@kSml&$u)nqK3xL3Y5gHG z(fH#rdn=x+TeZoH;Z7kCBXNaI!38^m=uysn@a1`%;%L^YXgQmI9Uici)J-hE+?>s? zhRX8zR2Xuc{pKw3xf+*q`=>^E%w8?zG@*T*-YKF@?xq)t@|Ol2t49|BjCH(bGj?h- zn_I|ARWs2}xS>H?5{(U?22C~Jrh9{e<``PDbd*v5;6|(AKI**jQtgk-eea8yGa_fj{FRkiHAYsV^#M0$<=v;tZGG~ocw}1f z8-=S!)O?|1Fg9!Xs&Mp5a|)?4MKNI;lCsg+)9m8Xq!8?~-MpYYGe1|gMR2aoBAIML0j3Z0(w2F!00Y7y?}G5CwoqhoAENUHzLNu zpcuXVEiyuJ?OFah@HD+A`(#bVMnjjA_HgdFfaa*858)g1s3I-=Csy%;H2W7j=r6qz z6yEB+Boz~ZJZfho<2LatkZo}}JF}$VsD(HFA#qO#2OpX2H~e}}>%68m!8@g|uz~VZ zp^9JL(mr&JZ^YK74FIN-2F*S-O~T`|F@xa58A8zs2CaC7^=PP=19)6~5AwghMx}pq zGzI^2{xg95yJ(AurJ;?z`TsH6;;Vcm_diB$)9PwLCs$bjs#j}KHAb#!6dss0HlPSg zBLB%SbT1Fu+UVRN;`4_;#Lnj@SrGY?`6e^!Vb*~HxFb88;e48Xr*n38N52QKJ@Cz< z#Gu?BJ;72-P&c6pyw>T+8$*WzBZEo7L~>S~cwijrVOTjDukoZiFt45}rLq|Vi&*^^ zHjV|@bnief23%&*HIO#6Q4eDK(&6 z^1i%&l9mA`*E7R~SU>0{l z>;k)eAYR+LN`Wo7rqxtB(M^w%|G3}@6_st5G8+G)CbEvoc8>V?OY-iFXCD?Za-Tlk zWyKym)`QA*?jz3K%q+_OFU%r``Mw!g8-vxp8`yXH%sh-aCRt0siKA+p%^b4p?F{&{ zn{c^<=NO_auKz$|n#>wHZIV%Dz&c8RLM%f^1-6OQN@6X;bNTf5I@i8#XvD944B-}J zZ)XE3j?!};mVbaZOi`FspDAr~$=Rv(l(njN%b)>H4pXZVk;aop6=^xOnCr!cbXTKX zm#dcz3~|VxYaugbsEf)4Pb&nLQ#5#p~X2_#T#*NvM(je3AQ4wGPZ(noDgL;> zCKC>XlfQx_*oV`o8gbEp3p(PQsK@}HI+ESXsTkAp)>QugeZ)c(0w%OsCT zTn9>w=kbdqv0GV8SYb_FuGCUYRiL1r3c`71vRtlo25Dn)ZOT9`3D`*3EaN03x`|{r zuSlSf;CYB(AKDoZdzG99w>gsd4 zlF@as3jO#hR|o*syEqE-ocf>=Ch9T*40dTLx!WbXa=C z17yC_|3`@t5ir^WJ%IwXg~HGUQL6%jH>6>B_?&LgfLtssO-7wTQmjxMbFhYPbic+( zF?4>WzUT)I*^F;>_KO$iga_)pIn=R{VZbes#OxfYw~#A!J=GGI+69z99(JHrjILG* zx$T_FuBk_u?^ekle0lKB<~Lu~W`UKb=;|%%2Koc>&k}5RahAu(3+s3ApL27p;w_VU z+*0o35`BwQzY@;Yvh%i9B&Zy$-#QSx7^CW%WY6fMA_ekou0Y6G(xH9;rKAiQHf~l< z))C>2)^0M!5w=-;UITvpA|B>(xtE4|rSmT^hM=Q}<$rkvRTkVo&Hcw4aS;C9WT5|! zi~rjKQA>B^GgQA?Qcn}l{@MoIAROaxSrcrcLA6NO5jJTNQ|^ZDVG>$Q=^%`Fu}KRO z0^1}y7Rfam5=v4@;l=${%}Jyw+3ctL5=r^ZIo>k-Pv8%5uf;`gap)JpeLQ0Px$ZmP zyGNeap1Yh3`k&8-JOCR}JwdI3BR-qp5&~u5z#4)pVOE-qW0dTt0ZeZ>RU(K>YFVFuvyfXp1ii7h3$zhi3S>eN9mQ z7eiV&cX?ZJ$XKx`oxk({sqA!8vy%a@h$4+VkQ%-+G2daWgfm2hL!(6tQ3NwD1 z8%(t+GUO1J<1H^&4TPplo?zs|KEuR`#PPQIy-X;C@(~P23?`@7GcDyUBC2nZxPnIm zchAS)?tAC&2Z)is4<5eh4rDYkaGILWA%~*zB`h4>E@jbr1P1CPC0^ z8d}?mXDBQ3$rX|U#m`8nIm9)%jp#Nbvdu`EFM{=yh-~OTCon%I_KOWimB_hM8IA;2 zd_yhQy&-M|%B=(KgDNn}%IIv;KOERNXUazc=Mm&YTZV(pFq!C~c3v2RkbB!uzEl`8 z8(qi+qkzVaQt{TVlUEcQ@-fDsydQ4YEF0E)t4lV-CSf+b66@(4wum@L&U-3ErYSiB z>D8L?jO-^}*t~?=JY8OqQjTde95L~YG!U~4VJ$C+4AF;(s^L^>K?4N9xECUkgq%%f z<+@AAl{wuyj?`vTX+D%t=oAUvvNmr}38G%^TsoV>w$fCep!`O*@*0#ag}e`Eyw@z|l#JpO2wvp)ClnJDMiRKz{VW zsa^uC$NprARIUfqA*rca=u){ITKgc~!Pt#`2Of4u_F$+q;AW|Ihpwr12k2Lw57`M# z)ofy^uh)3?R2&AzTeoj$jc9vlyZ99u!S~i4;_9d{6dks`;hG<@wNQ%nsWZm9t9FOI zb`Yuh`16;y2TuiN(TADdK-E@;9|$MRIE~e)EEG;!ccrED0>-qBZ(NT~9@b2q&tz9) zZ%yOQC)NiK^yj>2amv@W<8WHOf0etHH1Rxu2+acLQ`YC>i>$9kbCcouWokRgZLnlZ zm4F&5=UX2fRS~4>A(s=NksImc%ePwxJOp;vzgI#T4SL!2NT1T+XskNdFABevnncUs zuNA%2oP>2aVxGiUnR&6>6ErEuT4or2C*M4=wK`_a7B>|4&65{2-KT3LzRjK>xF6`!I3)v?#XYBx1TUlSFh@Gcbgkj)zy2d+-`nwkt_bZjFYVC;i0g+3p?3 z53l@oRarh)xQ93^EDL!Xi&I&YdF^*MX>5n4wg>1Bo-NPgtnrP?9M0xn4R+6iDOfKC(}nxo@h!l zie&2!ZePek*xyqfME5iC$Yp**;)xCa{7K{Q`O!EB_yZg+k9ooN(3YXB$Mfrsa4yAz zhtLU3l{uYX@d#DCSEw`T>yevzi=aW4-H^OpWBog0Vqbp(-9fa@>A7xd({;a}Z7-BP z7bSj$P+o=LZ(6)6A9@R1!x~2M!w)1q&^X2gb9ECzqYUgew9OS1q1+C`48Ox{}&MaUlOEB z5@qGL1Q0^^80CbPP=HD-1JE4z5fBE!MMyxtB?QYQ3V0P951Jd)&4|ZZSF_5$)lXC^ z!hZaJ$}5{jV+vPM6Rak<@wxAgG7|oLeZAoJ^RZo~4_U!pvGS0s#Hm(KQxEERe@5=- zk_3>@yr|IZ#fAD-@JIR$XPoFAMx9Gpm>v;bWMZcvs?9cIOhQ{WKQ^@yC7lhi5V6c2 zXPLe2CJmsPhmgtRkDOs?PPZEM7nQl1tp zx5$tjnwT;v_Vp~ihFY6auV+UvUht2Sf~AL`|Fw1vE*_nYkEd~o{9_3%6DZW2<}i32v?aPX6bLil>9=zm0n9 zN&^X^@G4)FT4rp7L9PTz$lnCT^_mnm7*JG+Ed)hh)kjw|H+D(=wBUUJewUxyg`kDA z4w;_jemc(f*x%9D0ZdY0a4EGX|G!d^gz3JskZJCY0Oa|y1v`W`$ge5w=k z9l>~dR|;{Wy)wlE%d4a;62h0L0S<{WPcrh>>Lk$vmC_0o6zYc%vK{RvOGy1GZfzmY z;Y1zguF2J{N~*RulAcjha%O#M!QuP0Ll;pF*41Tn5W2<{mk;MPr6m2z919WvNl1Sl z8JS~3O0w2scU$qh-rKCv>)LC*g1s6L$SvqT-?z|D_hDjGuWNVJeG?1muQvBN5-r+2mk;q6aWC-e`D+Zoj0rPDPyam z{Ln$tKn5t-P=?nu8)cQYD)xUAg}4z4uAPFD5h7HrN;j5DC+$q%hBnB5)V&>7akWgJ zN7uQ1RL33_{Xq6=&+PX5h>m|H1jZF%h^fN3kK9LKv}3f6C@3qKbF`TKP0d}>-74p_+Dg}7*191R zmSL9N(X(|LTfhxXYTSZycR45#Fb{W&IRUo?B0dq)oY`G@yqHDcb|8a8cZOq9trhu6$SBLqg*U(UF@e z^F7LU*iu>ZokE~2V#jkpV~){jm>$|SjUc5{$q=kw z!}T!Q6k2h{U1PgL_xFZOldMrKhMjtw4dfPc=$1Dqlg9I!LV_WCK3Ji9#lEkF%$~z& zLPxJF@5nYTn+m|6 z?~I5;y-jtgS?3mO`4Yzbi^gLwcT(G|cj-xOa#eek&eZot^I`j9i@SC~CS`NG)Rj$l zrL_aXgbZUG@VhDODydxqzQHNhx&_k=SsV&>v$LqH86B&0t14h!MQyD1!aB5kd-~wH zqjSieQ~0p`Ir;!hZKS?9A2BFEGW6tkIq{pACbUhElIFW^H1+_u8(SFe9b;FVF*Ffl zl43Cym9jK*+ol+5i`y$E)$(9n>nEeaAk5IJ4<jGou1IKnf(Orw;N14($Yqp3< z5`4!o*3C0JHb6PObdRK9>F|6Q<-ih>U*1A&kRE}L_@F6RKlz^Kz!`~8{*4rJ4$)6@ z5FJ84*&z^x9=Cr<0_?B@C;TkM|0kvYRh=}O=&LeVpO}aK0CX@4$uH-g6|zt8O%}3G zl-~;5kug4IGhx(JD9XhA5KJ=kmEk_-%sXk6Vy0i-<&1BX)+^GrC*NqK>%6?m8zztV z`dv@vmhg#o@JLzTi0B;{tcuwi;{$F|9fO!dXGb_VJ|4moDM zXD2D^TIuC@Sb0;LOnA;1!$WEo7-}^gA~`~h>Fjh05_rsj`8kX*o z&=H~$AS7C9B;$5cd_>0jSeSDRSce?WgsLCfnnwK9B%%)R`u!-B+`Lb&6`zFtDB(}- z!iwZyXO_Hff}d;ONbm5ke}N`>?!PgN|G*Lw@PBvZNZA`n+PRq8xhR`Dxmg;U{>Lk; z?LU80aI!Zxb$0%@M_7)Ew*3DHy`!|!Mxmgf+y`ou(4H6Sbo*1N*nusB1Tpf#Zb8yC zbGy1ny&3p0j=mj6@txz}qau%-2R%%H|Azbym7BMM7Wk_yy3A%UoA>^mVK+bfteevZ za52^qR>$~sU<=gBj`A<)!m2q})T?{^NOsp73V|@yRT(0M6;HWYW5_>X5>8>a?`WV4 zT_HT4B?PmOJZ)CdPb;1|=vp$AFTdXEpoDqb8OY={ zRgO zKU)ZvSmGvwAUV}78~`bAg6TDRpxGEjU|q_4$T8yFOULKd(yYAACQ3#e{_^vNwo2kg zs!n&&mSPgqY%jTnt%+u~OI(7@2DF{6i%@zd+-$#SY-?y8PRL_Bv#~wJ9n9A2CL`QA z8vi-ZX7B9on4dgq_g645MrNwpI8ssiSy;G2&3qXyv~@>y1yM97)=Ou>5mlHgG-1&Z zmY7RS)dohr9G4Aw-Vv$Hg=Bd?aOg?$reF#K&W0RpsN>fjG&HikGv%_mJrCWp;1I_5 zVR(0wiif;g2u}E~KEmLAkeFc%lB;Fhl2NGuLqNR0Mm=e-awQQulPOyoVrA8(lQmWJ zqV&OR6ies%Kt&09lxWeV*!a@9e%$vH7cPN40^kQ=g2@;-NFu)CL#!Df%e;mtr$O9; zgr6}XH24C{Tdt6?N1`3Ys}1b=jH}vhTMA7Ek!s7#zG4)_| z#0@=1-FFv0{73*KZXlI3@cF>l8-OR(o=g#Lnd^Bz3Ki{STb zSR9dMuCEKmXEPS$*XzBInLMoXzP^OdnH>PX{X_I$ ziciKbmlxRX&dQVK||Bv~oC%**{1{MVsYGDO2a0sV}vDksP zt*;1SoDkZ5~Gfqc>A&_LUzKosq$LYua>n?)1$Ydfv`?=R>t z5dE)w=Eyn2U=>3#OfIgXB0mR{(KYa#g@u9N{(-R$_PEgIlIWa^p4V+}yuQEOuiMw? zzd9cn{c7DbMRQ?h!@d;4e>gK42#)g6!`i>{qlcKld@05d@$m)`^kKap81lq@?hh&2 zJch$$J(i=4bv$H7kN7|wvZ1N;W1Q5n(8u2TCkcLP@z2bTG%I}mqSDEZrzaOk-;)`a z9@Hzx28Xs=MQfJwp{=~79*8)L=O9%kIkMVXBn@4nL}hIzM^iS=NFycV4H>A>6l}6J zk+PucWVk)Wa}HJettgPEuOzY)=1Dy|Y^J+6Frf>vlYwQh)>z8~x~K&5XCT9CmX6wF z&5~BH*I;)xi3^!KNG?a=kSLc5Rsph3a0v?|@i00^52}p02Ei656-{#$#*$f#$)_(5 z$6H^>Rw$W1F8J%E}W|kg|^=Vc{nKe>mO^JNTEaD|{q6yex4Ex6-X9QGw&CWLv2# z1;KUsG$AoTNcGQ|iJPT8V^~V(n;9i(4=Nz+G&|m=qs^Z`=7NQeeNi^Nk@P#oW?4!d zeYwj1>{Mdfk}qGP+G#$qRG)_v4v0t&jIl^i=o^knP)I$Lq2hq7lBfwb-I-S?GCns-1=QZO-AT}?aHD}&Kem#>C_dP z;V}glmuH9>ug%%xVzSI&-XOEqt1giKY_$vI^j5A2uC0i*!wUJRfep2L2w#a`*|*#> zoEQXdqQs!DF*T>qi%hXu+e1QO6zU!Mn}!NJFfTN=EImxid~Vl9i~L$@EgGsfHf^Wq zj%{O>yM{ZEJHoRw`d8bU*=p6%j8WK_k=Zsp^a&)+DX=QBxD8|^~OZ2?QIL^`lQ`7iZtDd*`@%$-|VA@Iw+5wx8|$+W*7&J*#kbJ zLw5S>wEUm%7%CoJ-Ll=E)m(9+3C6${>}uSb9B_I(Z+* z>!CuTQqlj0nq(!+`$C84lWtp_8eQ}N)b%%pm+58le3P8`1zjzEme1u(NhS&J6&WIK zxGuCJ8nz~Qb!(3c9Z`d~TmUsk-LNFRN#i?ke$MhM@z6I!%ZHYMGH_V{4mnOAe67#q zJh34UK>!JXr`RnY-~iQWl28N$L@<}Y3APUa(1w7DBMp-!RcK2B-#Y&{KD}w4O`!Av zo9jC@UtbuucL>WzUgbx^{iBR1J%K2F#bHlCIe-}MJ^-j+-5H?m6fjqinEox}kjVKK z)@*i;%b$sn)QCWpKDMn z0sN{^d(OK!jYe>zGXkETO?e`7+zVSxnFW%ZXZQDCZh=}!az-d10D$j*;4k}s_ZEVzDdPQbiss4Z> z0Y-rH`Ns)ObHSYu5%74pzg%ZCn~#2;T$RlMxH*gsK10#is3?xY;~I9?RL|Ax$dkN2quT19=7~azTvN*a}&Tahl3e=`vz< z%q0yZucci`?n{@Z;ek5l<00oZpAmjdgsp85qjXLvAYJwlq;`!h2$a%~5SSEiNc$k( zMzGAE;m}x=1#7WKhza#bEfUL5gd2D}(k$6gj2ch8ayzeEeODK3K|M}r9&NZ#eJahI zc5L2$nHKU@g(x+MH`RPrz9bzjr^y4`dcUt7y2Fn|5ZHWemBwIQvSDeoDUJlfVxQUA z7)3eU^<|N;xEQjdJoJ7VIZ*iCUj5)O&5^{h-_N;R_7R>mNQwDk_MY}FpXx{1`sJGX z<)Eh9-XoX^!U_`@sE7PGd3KcKf31+%LT5D&rK()q>*%M9eshZ}Vqw2C-bpPU=kqAaP zQ+#77L?^2;d=W49yb{ zbthNx1^b`vt$YIAZTTOG?Z1xb#7*r?oh*(2F9sJ9-}fJgZnRIZn;RYh3rorvFeb~u zQZkU!NJtRqxlv~Ppuu}XJK}%gInMmVK}xg4J)if}xw*SFc7Jmh<6=gx;4a#*X|UD+ z28`I<<{ghT`(#J*^4T7AA*1bH8V-g7GY&1J#gNbY&@xZLa(?HlCYOPqcx=DTi=bFX zc?^9T{*k4oMbnC(NPPW`#<`iv_g9+x-1#1&n`x*Fl+Ma_q9?0Asuo?Uf1hJxs(O^aD6N>+F)ro&Vo9us0b^k2< zFY$k(;s22>^FLFAo&GQStWnXGUsAyEo9(R8rrg57ry37)zUMgtJCjb=gKEK#{J@U+Z%`Q9Jnv2T=kU0`W zf;>hgag^0qL){i2j6jJrqNJoKA~Mz)4UU!!4Srs(sN=dt8*-3sThkrWS$k5Gw&rl9 zg;C|T+c6LK&NAcXr!I)_)oam`1#7X|+Rm}RykWCvo_0gfw+=mW z!cT*$Y8|tsr%t`oz4XL9jT2nhb}Dkln}EFqMSuwkIXqwpJ>qU55F>>g zBBZ%R6s;f_z0`YjF}7B;e;@uX$~99+&9+_JmzQCb{&n<2hV>O!Ux>j&)r>Ab52QLu zjU?1jbHsL6nclCB)~(t`(@&y{AsMfPASea_Fm4h|a&DGzK2exf=xfqb409lvHu-5#0w11C z^%?Irfhx#fL&^UIEh)xkjFDg0kPm|H0C`UfIOAg-pD8*{))GQndQNK;v4~gv8s5u2 z91G1K^`34Ok8HF!YDiN32U!WH%&RqQUF$~LV5F~*ycx)%!{;6?V&qZq_G1QCsr0y{Sxq# zR!B`>?3#K?#6J!_S=;4#&)#@<{l2}X=>ukqZ}h9+j5#dzyWkM|Y(fN7TiK0lY^xRN z;3TydWoB^P9_r!b9rR|-jxvUUgPk5p7!35EfuVtJ+I37dEowLYb(+*{z|Ejdi2^cP zbu4CAZ1&Or0Ez&eqe?4j+xLoV44{DwJ{>Iu)pDv@%}k-xnw2tRySFhviR@p1TzdeX zf;_D;5*?kVLdeL*`Xk`ofKrIi7@cAz2MXqts(i20bx)Gy&YMwC1S4shBfup%6Iq_1 zG&{q;dGmPtSUC;;Wtn`dnX5{)bc~ics_B}Bn)*WteDU5Kqt}AV-A?Dg<%%&E^cUy= zvQ3~g0_TWXnUYr8epZW4N_2Ead&G09X{Ear0}gM~#OVUz9QadI|Kg#oFloH2q!CqS z%3#|KY7zNd0(O>CL~9vqMXjycU5xiaJrZy( z!Qx%qy}EIAWSRLM6nU;c4M-g7@iVeoA_W1gmuSv%BDmr27N(P7)|nvUdQ%+NU>qkJ zM?;=}XGTC>g~w`*ho|R~nxXw3w67Rxq`>QUB=S0GhU==$UTGrZm?JQCeMSk8?-owY zhu10J%0~2%#)eu&TPc#Jsa;xtJ&4%egMn=Ja2wE!H?l^JHd*31t0T}|md0p(1m9EE zc#(n7A$RERFohb$*0At8nc6@~)3p$S~^p4*6r(3sg3D@EBxHr_SzX zvWM}>aDXJ$d?#*IM_BG>yOv>?cWk^_J@c@C zgm-RMTJN2gjBprwap#ChfM%|i5_c@Bj;bdz>ReG7XwLhvkt3P=^1C0Z!n2ww#eB;U z*WKla%ric0mPPs9W45)WT~70E>~*X@%k4UTsC)>0Pz8B_`FmG=r_wKQ$uTY7Y3$A~ z8jr%)KF{nUCg*4!C?bwH`0mjghjlYx&UM$kZr*FY<_hZAOy&48ba7>rZSbBX%={y8 z?CEO$2dGfg9HL*Sgx5J{A-`p{vW+&vDfa5*&YuF!<^tX3qvlQZofs6b zmN>ZLi!+{1+uEJi>Mk_b0!jzD~hWX=?>I~1+c#`&%&3OGF+!j-pz0fV#M%KY6L^`4v=MX9?;_^NY2__T z3afR;`b-^s^+5wU`2*1w{eV4Z1Z2x)V<<wJN{l`5gnhT5jpzvFQIX> zF$fClf4Bh;_022oa^I*s3Foqxgl|XlSVACxmMhpe~RFboMH-szkjlmH^Ty zB7RynVLG0hvE51+|CanIJX>~<<1H)8`&P`|-3Z2Dqo!;$mzje<0-1hxFsOtmN z8KUR1!$|Kh3`lyD8>=zYvd5lRP^lw*{?OaF#lRTQ#pQ=F)U>_3&`^B&zzr?Y8C!Wa9X2(oDR-r(df_Nv@s;dyEgOw;`@sxqJyho$(vXzs#apA|@iz5o4J<)m@_FZ+sL_gq46{cnTl)6Fh;GCOr~5;J60tEPqqFIX1xLCOZAxOboeGNx zb?B`r#qUIPFjWuzlzZZGy-M~6H_AV3%C$hsjze!+x%iA3rb)c5e;CD&NpUbU*7fiS zLQBSGKQPkM=Fr?Glj0~Mf<`XG1M1MQQGQMW&qdoKUk_Q^W7grN55>+1sVpK9kFS#0 zZP*%WJTStx+o1j9_hi%nm-sw>lK(sVhSh6_Nac`#FvPK6UE65cX<}LS#W2&b`DFqX z=FItpu`wIQvw2}(kf8F5&%F{ahIvTGj`a^rO&PUSmCEi~R(B&ek5=s(?*ZB3)l)0? z5HLR^H~^PQ3r!Q$YP^5hr|3BzEKVQiJ!BT6GH_3QW8z97&bX7GQvZ6M_^mSEIIo2 zrUNjufD?9TXOKagGY3L}R*2{iuu8#BV4Nrrm<(|tY>TX&f}W<3n;5)9cMQF}eR1@e z<2Jq^Mik_&A&@UTl0KEF%aYk6ZS5lJr3R#oX^tVQh>bcWXPL4ReR7wQh(S-z1T0u~ zMDp3P^RJa`PxSvX4iE`%?d2aDQS=XuVEwOo^nb~nx8#=$P=0;2H)5O|oe}t~%os*EcuZl7_Vpqaq^e_}&hS=171dNIq`yO?mX$K`q6=Y*1zL=hBNz*je6^pCc|h<*gD?=@CJE_4?KigTLl!`)f4AR` z!G^9HEz+dQ1Yyr6Y8}J)MpY&>$?&Gl%M1}ZAJ+L(h8jH7TJ146UElzFPwrFSQd=sO zx(d6SVSE_FLc!89OGq+{^KPNJ2GOTPY1;9sHGwt;qsz+D(p06=J!L97t-53h`Wb0q z{~c{&qIZs3ZZ>qF)>N>~N^ zJ0coc1Tt9iQnj7nsBCrAr(MZcsL!H>VidXTQ2Xp4;l8#~r!wS>Yae}vDofl=cgU^e z#Mdevwbf>Sv`dFLuW+WFx4B_GfHs|OEO`Lc^}pbmw71c%DQD_rpeVv6HwkuB5(DS5 zq#aD5C>P^PphNM{qn*}zcS>+NV`tTKa!C?f@I^>=q_N^rUxnsmyiVl?*;TNhlHw{E zPakYXV8<+sw4>(qbxqM$k#SsA5vJ7aF3d8`0y1}y2I#yQqY*yjS0A4D^FJ4K%dv*z zwM-s`%^b0?d7#*>DBx0#0kY+ms`?J&-cMIWwxv_Umq5%JV=dNwVJ{`6d6c#Bt)IazRera!pwdZMsy?`bgCllo(?hPwV;eAtcJAemw zLx{d6K(Q+gg2?|1cdXm|weHjb!O}zbh<<-WYSK-_R);u(P4e)9(723mLivQOAL{Hv z#)E5&#Nhw8m{F(S0QRcBYROe#>kMnRL-eGwNiCUhmE+;NAwoC?nI9+VTyQ&Oh~ow> zi?6&rv>fH_Ut$|9=$A3VFaQ8R*#E9+>A!l`zvCJjkOn9xs6Rgwc4QkeLP$sw{szZV zjevtS2yntk2819a3DVj)Y{nYv)1$l`)ivh4UTv#tw$>|34QRCaAgojuueX0ZPIty~K^T-TxOxwVD6VHi2h~p;>v&#Fj`)0J zcW>7oT=5(0wcT!39{k}sJrvY>3FCaZUOp9~fcapCg!yK9u7yG2F3%So$HR;`HG;*1 zM~WK1(qnINXaygkrQ5;K0BJJQoYs9*EO|%1IXX}Lw>FaWPxbz5vj(Olo z-I0eYzL>PGQXf5*)SSCCk=bruGE+TROxo6{j#tI6HMX0NtY;hsCkLybc0)%;&>j0W z(*@_2Bs6hNa)KGEA~wZ{3tDqn2PBp&8M(QwO%`Ic-L^w`3gB_1Fn1U5I|rW%7^L}$ zJh(5B7g(I<@QCu2yN?MHX%{RCnep1IN%1bOn>R(4maFQD1|mm_5_FjubiUA`U_uUy zNs%8E+DqxMSlwAej2xL}>>yjV%y1oZYah&n0n52r?G)9c>2q;oiUAvP}wzDCWLn#czGb>SG+TiE7 zX|CIp5k-DJr`N+bH!L?q)+=3l#8A~ru0JS*q1LyB84(WZ+loPkJ8GJ5CA4G0GjgJi zzGw}~%&f7H4;m_JPUAM9hk?8-3mU4Ipb<4>`d_;(QZ6}Bi!JnDnF2?}t`q4J@fmel z7RDQs3JVkp8cP15couRWwO$HbkJ#Sq&o9U1@nZ0lDR5DUg=scOPo+8^%d}gc%rCIz z;l|OaDI0M8VBn;cvIUPx$GzsvKXQHH4)y6;DLZ$~ZuyD{sBEH0*VLX)zcxJQoe@H7 zNJ|i3cU?RmI11rH9jks5P+e5+P)vmu2Cg;@GpcYW`xW~TaiU(FXv8HwD&7ukmFVkW zOvN=mkwLXQ4V}Rw4Utbj5v!S%V7V=>h=%6!W}`E#iLg!R$Y!Ia1v*oKo6z(9Xh^s5 zW4KK3Qc92f%*~-%C}p_qDZyBe&JSp@V5^tIyIQC|f(7mqn(haimm2~< zM+a*qEO*#NSjIS?BvATeYrsm!QV&KebG9Uw93ThOr(j4f};`PqmzFsMJ8P zmgN>Q^d}0nWzs$PP@5>iqeF96Ng2+`u*N^$WZnla0b<4Mw6Vv))asf+<;l7;Dh63IRZsz27ZST8p z9rN^+AA54a!>v2`>|Iw0`3R0!YKm}2i^TJ^k-38wieZDo^PRTxY<>XLP@zU*monj+h9GsbuGJx^ zun^0+tvH8yx~++d&c^Q}<+HEGe8ZO#b#6B+!zVR(hi!5v!j6Ek>s`%GS-m^IyoiTf zBQ1@4mWL@4VoVu>C4mU=PW)M(?;N^ii@ERiz-9))>R<4FE|I4U!6i7Y1Czay0qGA- z#ub#P#c4hCEmLsq84PYi#j8fv7+2UVwK}bp<_bq&<8RTLs@3tHcJ{S!{`Bin))?*@ z1EO0WQdEuEu9nH$jN>rb6K|X@4}u;rAThvPjdQ4}4$AQoE-P1&R_UUWH1I|dzde(u z?5VjW#V?5&K}aBt*#)Rr78b{Dq?w8bD!vV{6K^%H0%1)G+{x1Gc~?5!yLq3BNuECq z&ObKWSMl-VF2iWsR|3GB&9}zGeA0&jm0xF%{){fhXf}qn z4DZviAZNsr8dDSau{YL+TCu%HqOOlG_o0hUK*?(gKpqu5hAQsnr9jWziZR6g`k_0< zKlI(atD7D70145#gMRe$Sk}Y11WYamSFC+8EZmI4yaYfi55tWorf>!GMHUMKb~nV* zfp30f%x*zEpes~)A3xSNDET!!A8SY^se>LeZ8pq3E1$PRvAtKv57X-b@3li&@*$pt zGc-Y$T7Bo$rJ#Mr*$T?`)LT@#JDBd-?J?mC47?g|hm*$1tQ|g@UqK#M4r3I;9l&u# zX}QDzx}>aDAjcv73YJo!bMd?yK8fX`MiiZ9yp|e%Pd%VO^M56w+AqO(Awl_Wz{SJm zZe)o31k8gi)`tx{)L?S-3i8Pl9zCk0)2XfkabyVELtz2tyLHp|++%DO}v?dxdJ zyBBd~1@@dy8E0_qNB&2&S^i1g-YDIRdgkE09d3>LWqd5mF^HH8pS=@q&b(A#?%XKT zNPdz)c`zo$oKp3e z4ZnZ*l1_%}AI6-kGzUrJ0Il?%&aJbh5^3A1C~D8x@%@*FCUvLWEt}mlR~#dmX``%~ z`uS<}odgR<3lOFT0d&(L*-DgRDN?Z@W*Dai#dXu7dVW%=l^`)0G*cP15;N~m-g(!~ zMQO9&Xv_?642|=?I|vFlZ}zXLH_sc4UBG1)e%?q;?JV?!q=)H;coXtd1cxnO_hz6< z&T*{@m>E-3u{)(tZVUHB)hOnWB-Pw5N|j8;GS=eb&{dWSn0GGSkEQ6K*x~M@acp01pNUK+Wj5UY>S%I?E@o#)PY2t6C%0XNgY8~UoPThIs9Tg;$vf{5x zU5-0BHaD#j7kDU+qn;vg%e>39uy+lS&?pSGs1J}kwZPp`5;$a!K*(;~q!!%tiko4c z8z>eF_0o(+#+l@Iq~xTGqz+g+z+j*B4yx^|N(S}~a;GHUL!S^|-pMBlf_~RahF6GF zRs5~8H)n^x9*{@&smk7FTrOy{&K6n^tF=U5RT1e0mhAJl>?H%a-jgAu zMf%ic@&}zl70Oqd>j1J`l*S+ygn2#E*{;lSK!1~o3SqnuIBw1EX(Gj=}sIfTQvIK}u!|fFm zb$dkj0f!flwS2F~zLg}21zcYKZrgjW=lAh@?|0Ap@Ae-&Z=imyZnXZBcA{`<#}tcQ z++cY1s`k-1>mU#KUF=~fow7qORCW-=;TXSd62Cq4Va;~VaBYVw{I-aUtssbfxQ4H9 zq4^v<`V(kNe1swR$W!6M4r!YA`p7tt1`vGIptuNCeDs-^!Vc{bUMjwWG4k)XWc)n1 zLuL*Nv_0y~PZ8%ngeT2{`v3yGVPPsfHAjkYGaovC@dwX^=ubzEaN@T>ha<*@Yd*uj zF;uZs_b@KDN(vj^34E1pqpsHFEqjugs|sC#i*{R5oSi4v^GBA#179_|TWn%rFD|a| z!S2D}Zj>7FSglJB>o3D>#F;EEV;J+wpD5K8cPlj-i)_Xwcf677sjgQ=z@T}NJ2rU=cgmV?N|HQJbfzT@Xhw5<~uP4E+{$tzM>2Gv(xqT-N<3+(apXai>4M+bmr>=1cYb9(1VzPF zO#$U%JF+B$(T^x9vZtNNmH9@QL}sE!N*<6M+zBzx&&SzZ@#Ci}ffa*XSX`jfoYNHy z^Y(C>ok?;|-=!U&^dvJt1Ff1QGk7za!Kq@<>WK+U>36g2)8n5+rVX#Z_08e!o)L(k zn<3a$cq$I23{<^zgu#0Y52`$*hSnUSzo_sK zL8F-QwPZLK4pSdeduttnUDbw`Jj907vg-^)@hTm7>|ib)YL6AXg0rBgCJHM&a+BDO z7>O$m0O&}Sn*@Scc%sf&c;e7iy2}r)2FJIA8Mh=t(pL)%eU~9F2-zityxh`8@s3ceL4TuFC+EMzQop?9{G!-k`-bj3D{;t2sebYg{$V+x{73XqlYh6j8()ct zFJ&^FE+zxDt8b58XOdUC`=*Z(Y$KL3u*5%n`gX|gaAVCC`dB)d=veM9_>334_7?!%yFS;Jba<*0*bj>ONQQOx zl%HVuZlzoZePtH8&=IZ^aAV6qhNUFz8+o5HOCTmv)|{Fn4Y}m+8|ifH7Fa#znQ3%) zKxS|;GgfT>-qst78osE(nj(lh?kHr+CWn-z{RYQrle*@t84hZg;=76P5uyt2BxW}T zsmk|5f4P#nhYzY>_c${Kx|ftd^mJtP9;#XnsLJR!hRAXCB{Au zm+m1&z!;@fhYW}%gVA!P%eos|9x(kQj0GK<`6o(a@dguh;Uhzu8*2-$z)p$3OAw7s z*94QXgW~D(Hdx{oG)kUIXwNCZ9g6$DjZv?N*^SDWMWD}2<5SFVZbp1t)EE0J6eFxI zk6KDcTwGqfsRv}Wy_mG^pw^Dmkj~hzyMsGzO9R{pLpeyna)Bz7zgxvuv>L;2EsB2d z6>R=FiG4ws;Z_*&Z4$j}&UztltpheB|ikfI~n z4{Wn33jKILa*!`--8tO|1AZxeL@v6pn&)bWZM~&DnX)3xi}TYPuDe?F4>q~M=FAT| zXI0NJ6B4y)4bM$IX&o;7X#0YLe-Y$Hhb)FMaJfWU;*R(8jn3DpITu1G3XD9-!$YS# zOl7SEGr0To3PY5NjEng5`Ep+Z~ac1i+33-q;2p%*u$G}Tj;#Tm`Cq5eNv3Nws z(bGQqrJK|@Hwlp%5O9#na^I?RiTUVKvo#!LCnnH1M5K8VI!Kv&74$$|HgT$ zv#(N1VOTD`6~lz&O*L^UlVN@{nd=G0r`_5RLQGb+DA(3a-uH~P5c=R8KB69uifqUn z0A*EKNGR)r)}EuJ6oj5s)*9i7gCja{%f`4KS?He4pu|pU-4$`DiX3A|VW2VU5Cc+L$Rr+D5&p2lw?T?MxK@|FW}$qPc+~4Y7_}V^g-mY|j>Ju+1 z(}WpULm$SS8NVR`{c9)=#QPBARShV&3)(I!!Ynz#xmHbC{OvGmR9*~~m1VV{PEtMyNBaV%6HsY?PMf8Qt&IdN0^M><`s!|UQ7-O29AcI_!?{4An3fX z0vOCm@G#g~?*K*KH2ARFmWE47NV}AUlXMrc=S?!G;A%>JCY*1Ok#ug;JmV&!U>IR! z9Qe0z=4+3H)=SaVXNi!?tEtG&SG`-;aK-g- zt&*eNxLg#AjlayS!j5W;p*wxl#h4gq416>b@&3YUKv7S029TH^&cPa`S-v1i8pQmv z3p^)D>jIGq)a%2So)`a8&^;~@EY0(eh==m;s_Xv0yY;`OqWnkiZF@VC|FvQNW}|vE zG(D8ZP=CZzT}eG_)ol=JfgN)Qq?w=?IZ!BK8R1YNux)@wT)I+gZ={-NCGH@}4>%QJYa50v+Mp!C^{LgSer&NFn1b>yEiHqY>>1w(%0 zan>&%@bpQTNJH`2h;s8O0h50SEW1}F(>H!}1r@fLWJmE)9%uupOiIw;A|)UKsy#*= zk~s&uDkN_KZ*~xpmJR+SZG~RE?T(qFBj7X9LdpA*X2&q;`7WQni zxlCM9ku6!3`S;~mh8Xd7%A}cDk$6gqhj>&(irE>nv7>A|Qy27Y=|F?4NINxE;BH%% zz;yzVx1vObcom%)_C-|L$%M(5%G+LT?%t2-NGlqp-3^m+Xq(m{jlVJb&u%|yjyP!c z_XP*xifBwSU%GVcMF#OE26s1OW~^mIk=E$Gz4yGO99FZZ`Tz~4WCHUivKHG^tjf!A zw200egbj7m)IhUkG&W<5=;zV|<;?Z?k;}SKvvZkYNblyf_>Sp%LeEeimVmW6-3(i! zwQ3>IL}a!mnYCOs!sWtvxoNqbdG0igL_-Yqgfg1d33De~7sVf}CeuZ6T*j7lU+@-6 z>dw`N&(^>@1>Axlxr*wMqY&YSJ$>e(J76$d5u%E5(O@x<9pirPLMjt#H`gB$=4}rR&@~U=QVin(MhV} z(!&KEi1fW(jjHsfT9RQkiar1t{87~$NEG8+ZE>7g4poX^4nbDeSE|49x@DbM9`qR! z0<64n2|q>G*rSEMI?bpMy4h}o@HvSR7;s1RiK~@kGA7BH8h-MI5!32&an8cj9(V-} zthxuiv6$FMS`R795Fx!4OdIA4CiU~DMbd7FA@`$rApX)gB%+i20-2Mz7HJ#Kkr6sq za?muwQYT?+I>ucWT2s%6QW%IHR-I-#ZbIU1mo@^Y&NhafJMfHf>?U|n?v~Jtf5WW$ z>6>efPB!O*W0a4^-HI#$ezRt{wqRxvbZku@Q^ZN$$Q86hL6f?6OpGx~ z>#KyD$^@OiiM-{SV1>)8xTM-Hrq8+JL8UVKTCYncF+KrTLM~&NvuQNQg$sq*_Fc7K ze>KZ=6eRcUPtUmB7!VmW2^R; zcKJ>HF^&#bMO{IMt_StP&eOA<$9{3|KMsAF8FcgpQyJVe$q9T$DqWsN@p~TV0~zy( zbz6ETparfykRqGFlnV_Sn5HN@BPwfHv)pCA52+WB zrUlC?DSQb;t)(EV_65fG4rQ0p7n1ju|CM8^D2>-wyQG19zu@8AukMQ*+3w%T*^Kk5sz0)cS)CP1KYwks zVP=YT1w3OHXntblw=jOrhwcY zZ3d-fy>GOD+G11sh2C+v7yrmlYFJ5Y*RZ-7TpwMek}#Z0z<-PyTyeIe&ipoFgw^h$ z@Uu3U^bX3F+t2+#r|pq_uc3|&`B|&n%^A+@fjkx`Hon?wOghTeNKWYzDTSV^6{5DH zY2={2u+PTDaF@Z}o}dA1+&ZhbMGRG@qHC~ga`jaXTdsyJt&l=gX*3e!jxF4cv;IM9 z(1x%cYT6H{ZAqM;)>iEYsS)2VH02Mwl^QctKk%|{uxns|*2dvr1G%f#zG6%2u}hST zPVSf&k|waomnN^Y>i9CdK^VFDEeN;F`sCyeiVfCf)}Xl0!-ni!)gNWCcksknw?A{H zi2lTBz987D;}3)Sj$H?0?ub2g&uIs@xOM|HSLBP9g#)sW50f$*CKPq%&T&Q%n*<2E zoLOFTp!3ApRbExpnyd8H4I6mJ{H^^yI zSVx%1U>kO}b{2W%%rXkO1^Iflp1%)xb+>H2UcCQQ<S^67d~D)Y(yf}PMj$vgFa6zGb=L8N21PYTm^E$2ty z@A)ye$Tmdiwj^7;JZfpgbbXfdF9~LhsSr*u|LF1hpRd4wQC{v^BQYzCu5ggrCv_d7aP7oh&2>PtkqKEmc%%oM_CV{aE991O8GxtS$sa zUGAUm_WaA_>FMX`1H>>0Cmv@!-Y_sPtE(#ES{h@t-s7UTXGPiV#^$C;_w^6o1{u;* z(yU{4Et2MCwX&)CYhRgouwS?;BDUTo;R9DF;%RE_GB~dVp}YWmK)*HnH9TrP2AzBKm8$4Lt zFyT^PWWN5jaC>);wGAEm({2p$QwWENfrTQwTo!>k3EMnhx=Eg^TutRNKjL35i&d+5 zi#!BT6PBa?pH<(9#N}`IkFIQy004yko2pkgHFPpGvN8R?m~)B7l{2TeCLrKx8f z33WschpmLt5>=xytF1B~+kmyETd{gS$BiW*qZq0VE_(w3>$NqwOD7=s1 zcz<#MObs*3d>rmRGP94r;T!lq{ysEtc2`&8>LV30dG124_bl(L`=7IH@7voq`QPt* zVt}|qT*MRzxc>7Xe=87jMd+gmh(m^bW~4CH7B;T_l=G0#5pL0WWC8ag8lp(N3jX| z#Z2e-=?oh~(ODWQ>B&PT_Y1`Oz8j_@l-X00+3=zJcYueyiP_0BrzqLkf=L@q+LZ_e zQO4QKmBfmbD^6EcYUEUMzzoWv-4ZFWl8nZxP%>BHHaW<1 zSv+kdgmINM3iXC;JBxQQQ&nd4m6gU(WgXhe6VjFCj$16?)lfb32i(Afs8l^x2t7ua znd#&eFWn=ZIqS-aoF;Xe8I2_wz%r-G1~awi7U~P5mE}dNn$%f!T3=oIN*rS4nq?L1 zVL+S<9eG6F>}}XV5P0h1&ZpQrs|x>f<=dYnSmT(m?lQ>u+SR4l1o94pijgU2s~I^M zR&dggSq|Ikjc(Cy3W039b5m~66J1e;!`dtkH}xuuqm|Q9@;f9#4H|XWNI$9$ZaBV` zBIY8kk*)#dcik;(<7BPun3TZKYjj2!W>NQRC5S%&c0)H4C8a^9(dSg|rv0IoqZ~^?KXC3euEy5*QXdel|wIn|V*%KZT`FEUGPI-N6tJzGY3`aQ*{w2@qiJxa?~ zZfv66B3=cX3{jiav)+Cd<`1Ksq5c!zl+D2`c&YJ&z(~DOcMH-(qS*F&Tt_!)*}-WK zP&v`AKXCE)RC+~&=Udd&2cK^N!HUrfygE-RGJ}qGSM;sYB!<~pU~b!HNPgk?k{-DB z5+2C*k{STEwfoS^nmG~3_v>~@^M2sLS;C0+&=@NI^w_i{9`lyZE2}*3|O(LA7?Y^g$ zVt~fI=epYLD%RU}(4A{W#|^$wM|`!qcdSC^#KC6wl6@`Q#%EJvx5XA5g7`k*=ja!TkD@6wh@^up{pO#A{0wX+w|%YD3J#_(nG@YY4&E5XvC4TyF^-13xWE zG>S)yDSD$Efq2;h!7Fw4>$yXA2k>6Y!ZfrwB=^KHzQEy`uQ87J*&uUY+uR}@6+uG9 z?(U(yoH;}aeRLy#{W65;Au1D@ATGHfU`}@meq|_d%s$c%r`a1B&^_~c0rLYAKl-$X zfJFSnbri(KwbqA$G{GX_bB3ndhCd==QXqOG4>ZtTWBb;jZgYH4w&xK|`-O6J1sJ|K z;~4h!Q+T7t)$1E2enVlt;GM49JLLATmK1e+%l;h|yQGul~QiaH_al#BiAnxoT?Z8Le(q5bQ4H>?8 zlWd5ywFrW5l%SOge}TlDCxLNJcYG=z+SWNxIoy+lD%n0kv^DV)4F8-9Lbn0I632OB z-_V3y=FhZ?vzx7*Z@PvDU_(6hZcRFb%Qy9T%-T+a9&17shRH$(3*N=3`DGLPocCUZ zm!(3!>@z3lU^j=}~PIUM>r$t^t30-A9vYj!lsuNKt`qlkS7*6xX`g>o(z5-Fs8aje&RY zI^GVe_DY&#rQ7+g0-U#g=;{z)V=)`P3cG zgZAa1{mzN{;~BZzNt>6ppJRqyC#=w>UM%hP9nYm|p3}LTFjTupZkp{c6QAfKg{J)B zmIuz)uORt@rPtkD{B$A?*}G8r-S58+o#|y90|fxcf&&0x{O?`w|F%(!rZciQ!p~@G zOQOaWPO3bC089h=7Lfpfzw>xwG-%_oL?bL&gr>BycT6+28g*>&_Hp$gZy$lDWJzLW zxdf@I=d`e&io~20+SN0ZgH&b4yV*z9ZSHMu&Yz#}BYFVy`FCPB4&uzN!VdDx&%$>B7JMm>{{6U9+L?LGLO6QqU|3z{^E zGBu?OmFxgg3@+nPy#|X<(H4!9n_~=56t^k!!@m<(MhT2KF7&ga%3u@ zLp3I7O4>>{Fg=!;>7i=j7%Af_s`M!D zq)>*GL(-um$X*>*3CjuC+D5NLo7MvQ?>>t5L6Q%HGloMhorU8Ol(V zX!Ir?9p#Q%22;g7$vX_UYG_p3GUsUQYs)<5=XAF6@?d$X=(=GgnxaVO?jAT>3Nti) zx+h+G8gx}`qSvL`F1NC;!6Sc@CtP@*MUh_QtvbzmCLH`o7ObYsZ5TQwQb(c#88|C0 zcvNX?oS4b2Bt%BWt42gumO<=fKB{43bnss}W|9ppt+n(}SI452G+RQicA>djLb>C9 z(sJ+!{q%V9+Iq7!&~`sPiDOKhwdcK|ayt;zdXx*Q4kKTGBE_{_%xGEvSj*9Fg-Nm( z2h)@A6jLh$;U+fE)&%E}-4GYKz=A@YUA{AMFl}-fcS_QA(pthLyfrP7NkrFtKysVp zpf1z9J-?(*Yu8ro_;HPiiRI~=eTJXb#`0zUrR%Maf8m%^SS`==Z0C-tE{!uFvyhGN8A3ZL@8MK{qICdEuD^b`*7 zjR|_v^ulU?x+I%Z_My8KdanPhCvz8e`-6lzdmH+b>}JN^d@AnNJdjzgGG#i{Om>;J z6|C-xV^4bZ*tgb&aE`sobaIniVukOANRBb8H@;Sy=M#Ld2+k+=W(tl+=Cd6jkKi{FAPy17RWI~b z3>=4u=e`d)hzQOn`lbrb7vtykn`3*p29f8y|MwVm1tR7(imBmKvdbQMga}Wwu=m=t z68m!o)%Hon)J;A_>>CejW}m60DcFt(1pk?La(?|S&tMII$vEnL(>Lzmb7hy8FqdFi zSZ@^Y9jq2X?Gi^vba8dt_{!)-!os>q+__ku$DsV}YI7ZRkT6q{I&Puh&FY?7m{nqO z{SIOoL1ok$f)cp54-w=3J6vHX7wd%r7?*W?(!VcMj+AC)z9cwep(Z$}If9{ihwX{Q zgz1UQ=g}0z6jk?;%IkzD^cYBP0_W_QRc7)kJ&~P(+S-NMb`!2ooEvUjf0wW9|-p;vMhP(>>bC zKSG_%$T^M6)_NtXR(r+2wokzGOn9R3jO*Iv;d>==j(C!5x>@@jOX|Jy+}O39-tkUg z=Vo&6Wd6A)vCifD{6}~pXfs^0vtMW-s2q}iuQJ9rJp{yh&W0e8>1n6=EWdjNw_J`D zw4x?q58wZn(F>r;Bp<5(kndEWe^;~lzquxa3{A{UC5`Rv{*MiGW#xhXA>PkHswkqO zh?2{|2j^s7PecfeSr~-S7%|{VsZvs@ZcW{ng5>l%>IuF zw#>)0*Ba|B^<(ii=Z5DIl~16;FJjp56ufrDYN)&r?VJ~X5zWUtgiVhHwkIXrd=!%lg_G<}G9A!b$ks5VvWut9zpW}t)mFz= zMH%}gC&?y(0kNbtXelhUm7ur)wI;Qt445Acl}-XEQFUaJNwQ4JaA7h`i90OX>+cNq z(wu@;nlpX*nc?%!>sjORds$%zm@PmXCX5DO2r@yi zHzE>fk|b0Tl7Vzo4Yw952KIno<1FQ72-+avVjv%eC2SNr4jy-=aiC#(qjt_TT9HjD z;3vMKE-k1Tjw;omwUnaGU9OJQk!5gEOVnZ{&JtyIN?(b9C$BBd469C7`Y+_X9jO<8kQ z$*GuX&6WHDl~%R#7Hw$h&LY~%BAmxSrMdxi*H6Ncis8{%o1(6gbRbhK zDl;H!CL+n^eEHp3No{3x zZ(we6uL7G^@b70Y0 ztF0v}dsU?+TeRb-%T9wWdVstBk$HVP)?_uqG*Qz{sMJQ4b~W57yOeFDav?ze(g3yP zW#Y||Bxg3(Bt50x)b!VR%6Vg1<%5ir)qGi2G-px7#Vb#KslJ^A>Ej_X_!Tkr9*{4& zKDsLU#u49h;0z0<%E(~Ly%1HF^xUk1_*Ui#Ssi_u`J+nt1zA!~fML7C zd}F~n%FepOJQoh;c9GG}t|w1pU#bOg(r4R}8kTTn$mtps`Sv8LF-PlbPhs_)48Cj9 z_hA70x%xiBH*fO*F;u!4p5oApgsBWMIC6;mWBGTQU_{vhx-ZDfyqb54Nxazo*!`pZ z16EB*C{pYKxB>7WoIxZD@1PJsVFRp3D~0Yc*qgh^J09RqkSy2YyqkoP8xFY*xg60U zLlPbH3+U$RL5yGLP!s;a8UM{7w#f47h|aES7`l^3Z@D|}jqH4A5kK-1y33<}RzD#+ z&R{$+Ux*<%&#AvBORJnwSz6z~*dO~qNAyv|vSNsJOLVuH07;-zbULtH=LdMAp9q5A zstBqMm5Gwv0ZlLRau)-`h-GsKH}^k*4Rs3*D4$43L&Pp({9*3Ex-9pw!KIckJ}{Qy zV!vRW=$1C_tG%$@&2RI)nu9qMxQJhnqSyA3>&j1m|1k9D5l;V#PQypP@k+dHFEaS}F-$mPG~~#2$d#P~b<5J_m3e~m$TJQ;%pya*f^MFdqTektdtu9rkm`^fF>;fs zLx4pqk$5x2ts&;~AA5F-8iO;va0O_$dz9o&8sf3{9KN>uqi*&|-$~y6OYSoCh1nPI zKPO@jy=a0)*ziJy8IXU&Dc*+D>D9$Of7NXh=-3 zj>N^+$gh|g2ingZul&)e$_8}#yQ&tT--21#77mK;I^JzCdbx zCZ0<*;I!XVySpwkrKNV$j2N%CYB6^^HbXhUY!i+@53rbEP_31|eWhwUMNYi>>^41v z%%cHz7tP5mFiUO@6gv$^HOs4BJae>NrPgi>D9>C9Q?7J|G1Gx&YLL#A(kkl@MeEcX zGE{lf_IK6CYkBt9HpgkH%=8#QpiO#9Z;f;iaCvqc)fVl6Q|*NWVTzzv>k9Xzp(w{8 z6#3=*z%Y{QD)&HJNP0{%FDiPFbtpa|_8=dzfsWm345T6$b)@Ak$8)}=7=^qe?X!I9 zbJ^w`B-c#A-W6P`>N1MXU|~~UqHSAaWK%J`-gyVJn9eH?t5B+PGi6Hednlk=_|VyE z>(Y=|J0UYa>1x{r=({?T=uB6fSe?dI_b#sFNz_UzrL@N;ju?14E+XZ8-ZdW*6pEU} zOXksLS5BGHF0V*`bFcmMU3&lrd$M6e7nj(wd3o)1)KPE~I zN!|qExf|*p3{@3?*!7!x%Gc0FQRxH zpzT&hp}RczDBf{DwFR(+lR-S;fgOL^_79*rASBVEGLr{RsFU@Y0Fy4SIuwB)bF$ur7Y{3uX}Ba1ZXMmV4(lJ%gBR zatUkm7rCf05}7lS)e+L1AtbFalAqy986V@99x=w03)3wSrRCQShi^s)O`JMJMI+Eo zFVg=&MIXWC;KH9~`yjuCKk<-ME<%Z&!!N@w;wQZvMg0B3Y;5o05W=ALI7R)_munog z+E@B|{Q57=h7+(aX2($h0O+{^0GR&E2hIO6L8(R?(nDnhmCt=QE5qb5Q9xo4Ezn?@ z0g%W*5iNnlhBzP?B+wsA&kQe#ylGfd!$wr6;kJhQ_S5c42w+6Fs>b!EutvJYbuX>6 zc|~fj<8C%9E#o!*fqL((V`}>~?dzC#k|6>RFC7dC8(ZB(!Yl{%o1MC_QIl z_OYR9gLC9s$1OMRJMcTv>+EwK^je4r{e6Ap8i`0dLPyFu4RQHI&n*PLG)c3z_=So{ z9l0aauQ%0eP4Ui)h#jFLVO&5h-6D|}o27?21a$+J8dbbaV)gjnyT9A4!GBSBnh z{pgxq?**hq-fP1i6GnI0MZ|q7urzkILppUvcbloL%k}o~T^gN10EEIeVl0u8HT6=7 z*isg#90W{MFRZ-_Am1=6w{7Hbd%sV0n=PsC^Alncf?!D`&tXZ&Uzs*hs68w2&+bEAaXk zn85XmIk?gWmc^aLwfa1FZ=toir>n>Kw!0s(SW;PGTzSPSx>L?prtC?=SedB6&SoX4 zSk$o$FSeq>1*pS2dIjcmoi;ZEl?+4PBF0Kz|LD*|O1}uaLx=XkA}_O&nZayY=z3tG z+Lp;F8EZ7AB=xca;t|KJKC-;Q!C1O3^L#m0*1Ca!vLs#lT`$=*6j06)czT9VakE83 zA}%BbpYyNhg+wuP`h2s-X;k955^uYjw9Cb&7Z~g5>(#S@hID~p(L=HrKN(^_x~(d* zAuR$)lnE|jw!){^vq58nro8A1UsZO%dL{?3y^AB)W)bOp>pvtLPyW0jX8GV$VY%rg?5`j&_`O zn)P1n%ua$-1;r}7gVb?5+J$CVcAv4gr014sZHajM%XHzzMP3Bn%`$?-{Q(g;d(2At zDi$kN3D0(Q2-qxC1l_`lqNCcrpN487>P#gHM2N*gO&If)vS3HPIPe1HTP4^IW986N zB?ec{U|UQUkv73<)oaC-YeFBZ1xhrs&H91Q32G0ghQ8o{XTvJ{TXAL!iYsnNbojC{ zLVYDwzVXduKEq2!e#VHQVV4o(vc@XW#hWbi%_2SHy0o{P;fyfPvD zAT{X{IHYO*y)5YpIONY&ti@F`L?=ij<2{y!!W~LFlzAc(!4!>5yZU&j^V>LB27_h@ zaF+mPxqEanD6~p650iQzIT;t)MYOf>s;4ktJZ!h}{A7rC07?mf-m>{%@+I(4EB#cq zp!Ij|?ZDtnUu>^2!+2%>fTiI#p51jIrl$*_^e&5dltpvc=rlt1MBlge>u|3FHFb|y z`#10G7ysn6FSaUs02r)&(}&N_LlY1(em zzPXFjcjX{G5Fou+V2TrDOrMigyz z4CeCYZXORh^u14ZvUOC*k;k#ZtVe0tJ%eGXpQzvhI}ikE7!SSG(BD98ygAIH#8MZk z-NHkJJJdWY%zNO383xLFv!(GcDP6E{l6baX{UWq00C zC#k4HD<@mBdGo@s<+ORnzGa1STxJ!nex*#a@jOqr@SXY$t2A@7neI**dARKTHXX8+ z7cyqv!+6Pj?MArlnS5yYp-g{b^C992U8r?K6m|a ztX2o@a-lp((1(FwSla|;YG#Zhg>U?MfN~_kISP!pZE4t;$OrLZ;UHPX z(`794c`eKLRZTFLP-m#RA@JQnV5+*n6GI3M$;M(vdu)y76p)&tg44onCA;GHC|$|1 zA?4O|inBDHx}D6``|3?}De`t36m;nrkX@Q53b{<+#t=;;EWkc0=U8W}zR3C+5?mIS zKlI*UH~eX@lK!_n+Yi&|{6y21WKE+$o&_TeNH8=e)-(_Or7v!;2*%qD;dm>`s|xd# zBZJ9sGP}Yx`){2GP=`OsAv4*_>$_S}G_7$0L5@^w#+44Uv+7_WF<1=sp^+SZU6Rj7 z_gHk0@DR_>M?feuGswqR$C7hAIdZG>KF)F^CH3(;*h|z7@ZM<5Y+2%fpsNF3png)v zXAYr2X-FMdE}*r9PRt2gfb=M#vZH@Q28uvVqFHHu6wkkk0j9&_ljcdah0DsIKi<{Im?~ zn%GfZ+_Aod4ec9Mp}eDN9vjfJZIp}g~a^XuU^#G$^he})YDqA?4#B-F99 z772NGlLvJQ$a5AGT~CEa%6V&**T=4rLwu!*b9_td=QhxxKFMMGhTjHziMo7bkFkk< ziDu}Dt90d#q1rVJg)hSXH2qRIAi^CWeHcWvlvKTJ88vBwcOC(QUay_3^XEw2hasRzS~Zh zu~giiFyKnqwXMSM%Drim8knyvF&6d<=E-4MJnQlEeu1`B;#h(*^X>T9C~8;B+1}1f&9IKx8QScxY5KMi8=YxXUWMAZ!1gk=Tp6@-C|cp| zxne@CMxU8qX6)NIZy7;zE!0>ZB0}oAWz|3uSC*vhJT87q{dX)LZkHX3ugdNoIcryff3WS4+9Y}y)HG*dbE@s4mA7qRDeXap26@*$`ANvAc zv)!+XbJhS&&fk|YLsjSmcrs72V8qP+`0<+ zVh?{2Ti7M(?bEF86ODejJ-N9t`hklbqPPHp^qV<@x!QqrH@q6yyB&3dYfVo&@Zpc; z8)#ACdwF;FpX!4yM&%Z`1$S?~dLVxIDDk5pQj!@KFAfe5gqC(R)Z|b8#Qrdh|Kr0C z^I{+Ln4_=&FI;|h878HrodR0Z8ztR}d%=Sdy~8f(rW++~ABtG(ZP0urSnkXVcBB(G zB(kQ=F!Bt8bLfSprDHz;w6;}0{)|WC-UGi=3r}$TfpAzGX8>+=V|)(8eZW`y2mkso zSEA>0!H&)Y;Io7-+bbS>D*v@#_>C~*h`~m8-Rm3H1{`Ka>Y~VUEp6Y?cZ5?FdrC%5 zZ(yRnYh@P(FH}4p$)~BlHExl-6QM(OL#k> zS)9`#5qmpvOmKTI-y3Ni`Nd%9vA+_bdK2(k67WU)EvKRaaFkWF`@qw~I9~$mD*r;6 zCl_J&4s;i>J(Nb>@X%0u37(jy-LzSV3&D|mfWWeGgqTX^8Y)1xr>sG|_8x{Oi`;cc zPJoWpQ%PR<=>krPKMXOr*l!onUIkAN`H+=+zlY%dXFps$D{L*)({Slo(25CKSh8BOH|MNIN6oKXv;H7Z=E)9njHz_PlNOlP>^GDR;L)}Aj z-?Ck7)Qtg>eKjt(sqT*o|FWh5wMBpnPh!`P#0E6*Qj7S%^B%kpdB~SwiPB2z^Nz5Z$x)eSogYguo%_YCQQHbNDBX zSjrhrVPt?T?D&3wDX*N(%!TRIE$*2KD83U=#Ivf`Q`W-GYr z#M;89qW0Uh+}lK|N6Iuf_``r)I@ipOK%Xt zhVJYrhCCP~#xb;A`EsfGdZ`71ZbKv+)*FMArBur2xR9Xlk;Dy>I*s-rCg>4C%mR&A z<`Y(}!bv?QPOMUFD5Th-iLl}mV)-V-ij7#w)vJeX?}>_c+<22TOh4$o?ht4*9Y56a z0;|Zlfg^Tek_bcmbO|oKQ8e4@bcku5QS+W~Ef^_hN?ow0Hmpn&whZpn9w%7>sil)F zhBC9*Pv50foPVcI{nE`F#vz=@-wjZ%5SqtXn#WzziRS#--WBLh1w#Q!)1}i%0zZ(* zqVju#J36{#1GG*D97vq6_FWzJZCbHI1Gc8Ri_zMN&& zGVEv2_%x5*<8UyjVY6BT#q~@YEE6bg5UClF=t|Qqpoj4&T?S^#vV8^Z5R!uSQ-$}F zSfMM83aP49@>4U)WraqKe)Ea635zU#(m`w2gQ?9!rG`SmVLn=mK-h;YTa$n+fWzn9;R}QE*9lzU~utWwjeP1{a{7 zbU4SfJueCMBX+$|lPA=NB;K{4s}#wq6raGdV@QYxMC0}Y&%i(mj&#+VR?54=mn05d zk{kyf8m@|EIh@tuuCN71l~pMBfIcVNG=)TSCOTtd5WtJ!qAHk0%Hs!AHA6Gwn&*J3 z9;e?BG9L`VnO8A139wCXC8GeS1s|#&@U+@_;O|W-QuQ19I5lh5(-vN`wll$B0Ht0F zf?Pf!>KR{d+bH0#twBCV0d1-s`h0IlwX>m5Ujnyuj{(%kNw(r{==+hH8Jktp38DqJ zT6iPy>Y+E)4SpJm@i*-b(QJjI+%&rDGmQ$pA;xc|C>+%XAYK(PuJ8;GtX#u@_o)sd z#;t?V-`BFfz$une%cAj9EFBa^{Y`Cf{zBKo<*Eb2u%b{NMPB>M35{k{fANfWlm)Eu z;!$9ruX_aaVbwuR-cuva^gyT9VsQEm!fBYD+1|Q==owW&QOQnF z&kQyuq6gCL7Wt?hZj-IIH*c+$>Lv6s-HD~)kjk2(kR0%T2h$RX&|Sb1EptVdgAw~MpdaL5>fLkicR;#egN zJ%(aCd@iJ=F6~3kx_12G#z{EqF&9qw#G!D_gHE~qn?LH?E9$SM?638L%)yQ=ZXN%i z5^YfXWvrWBwwiL@tqX%rjH-Pj_`cJw2<}+QrmP z1P@D1^DYP8fa!<}o@KFK1vH?39>5cA7{?iaV}(*>o5r(I#oKU(c>945z%_$+Gr`-a zhIre8511Vz$nI{1eUZw9euE3@y-r}*nGd!xvyKfHUNh;t!6jSrsP}i_$4L$Up(OG@ zBQR@ztQpt3xeqFS9&iiBPS*Br;5?$su)cR8?KH?!0-<(Z(Bv6z^n5dr!qb2aigik` z=>yOnKs!rAh5hp`+y?a|9BIZ!@qBBir`Dj>9(hD-W_$FQCMI6^ZNgPMAK{-DnRY!u zV_=JKeR1Cq>Zv^1Q*;aL8tMo3Y7=HacdY_tO_qH2-y>k?0v)sXmrSviTS5Lyy(HCv zSI-E!?cE3#7TTFvV9w>i!(1@Lj4bA9rl}EQmiuE*IZ}IFDHfRCWIEK{{AC}U+L<)h zytsczZ=sP+ds3w{F$yX`*B;8lgx*vQFhRTl1t{4H?<=TT?_T{V&;lD~psC>#ZmAhO zXayZim{v0YTQ}HjDy~PpNrnAbZ8wkjF9T?Ve+jLL1D&aLJ%P>*#dkU`jD%lD)Pd$3 zm&6P{ytKoPcumRN*gH-K2CMDeNEB6o5$+vj*d=3f+`Ngu5k2tFd{KSFn&Ica;Vbf~ zGlpJ)0RWhx000#Kr;TD^L#O`-vYtfM&dJo!MA+WW&D6=+@P9DqTC1l2UrME;VOc?Js$TgaN)y`(1Bn2sO8In>Q0bF*XK(DdYU%kt54!OMeAgS9nPA*% zZmWy;1@u?t4?XT?*+NL#T*=_Q?>gUep1J++Hk-ev`T6+(902i06NW@#of$(M7^BV| zB$Iq_?v3@F(n&jsCRHV&lo|>Svvi`d%2;W}5=N53uCdZEi`I%RJ$<%cFv6m^f7s?% zeHCX>L(k~5-e_U2N3)Hk-3nN5ncr*~dOHCH-rnM=4@OXi|1 zIr}sltX-EdX`Q-{xQd*})!lTM$E{m+qJc0=CIZycWV?j`K)2aRUn0lNrVbJkWMG&o zRqxw2VKhbWvh(_>Xo_~K7#l#t{wxil{lg9=%9!^aUBe{yDivUpL=Cg0U9G2G)IZf$ zQ$9IO^>okc621=@j{J#uV5wmqdEC$M6YirfmG(fl*>-(Wz4K^1tY+OPYkQ3M*>vN- zhZ-?kq+JzNx1x2Ynod5Bj1|?oJjbgX`FD>9cOf(24l0Ncv$aulV$`VyOPL?+KHoO# z&3NC~E;9SNQahc9H|d$=JBG_$MC*rTR^ZyDc5H7K4N<+s;qQ1T1NFo+iZHmg+&P;U ztoarH0rc5R<1y<@zKlQ@!fVV%8r!(#!nFni3Q094DZ5XfnG){T80X^6OG4n5D-aC? zBeI@%{nX_sbHTt|bA+9<)?8@}cf}#%tUDsnUvLmkMq{ix0^=|FSj3BugV`~icqeqn zI3^!z!P8$W46L`i%{0{?q78rkyACGINp!Y*c!()C&O);_Zag%%%9%oX94RkrqFwO5 zxIxT0!RlCOLL!v7`Qnef{W zN$W>o=o8)fr~_qM43Qx~7swm020Vef46$5oPVQbXsR5>q2v#!V5y*dJHX0)i^{Oh| z7g>G8QVpfN16rjP`MLHW9>|9kQd?MzGw>(9*w+eL&1%pBn0_GJvkD4Lb*AO+iq-(% zxCeO~_YdfmWhWcl8|(($IFF!e(A1Rqydj=@Kz{Kh5%P!_GzwwEHbi<&MY|{NWE89s zn+M=slq728g=s~kH=OzCF4brjBp~L9rj$_zFjlE}k4PTPRD@`rSn$eunLh&V zk?E2=8YA@oN}3@0`fpQJHAim$*#47r{{E8~B>(@DbpBV#CS}qN`MKP*?7!VReZ-vI~h62nNJ&;0`?RGps>l_4uAfY3L@dCnyRM^KJnV<+9 z9b7xh`>y({t~qjLV=YbL0slp_g=0&XQQtOFM~XRbkgzbk-e`3%dt?FJlEb zOb?kan&XInghJJ;i>4CvoO}kSLDx0W{Zhfxt}QZ*7RuIYqJWg%bQNo#R55LNX!}mC zdGrtGto#TcXw6@lN?Y(DwqZwVj%z_-jz#ZMeAlV$Po(SUpLU*~WC1}iKs-{{pGhK_ zX1GdXI~w7P=eZcC!=BGuD6?I-`e&T2di z6sq#mc#T&(cbN6aHd6a6{L5)4twSx1@J_ ztAcDlGo{Ri%E{1+w$99mu)U90Vk#+=&-HHGT%5pA)g4p$w(N58_SSNXD4ij^@&Z61SH*vyU4D@qJNx zag|Z{tcW@(H6>h?GF7>D@Wrj)^zyCp3g3w_4y+HUaUTl#`m$5SY;rnbHudZ;TNs{+I-24Z=|UdC5o@dClCPdYWbY?>2~tiNxP>859sq_p|B?M&b1=4R%9b2HyR zAO3h7&<2$pv$4yG%MIJ0;CJqa)*b_~P&bPY1<3H7hl6_LeRX5utUN^_eTO6LsQ+lm z`)hb6+#-r_KhT&O$79!JAZl>*44pBulBaUS5M?wepG5pm&|@- z6z3_g&ZE5a6#ErcprgJ@i}X}h>Q|1}rN-@3;`Xb??@_+JMSleq{Z-=mD}(#_dG6i``~YR^rLCi^tB1mH=N8(kO-VPHqYKu*F;xXfNal_zT(UlI}{%ad|! zc#ElVE?~iidP}sp)mpNw|);<(`oQcpR$doaaY1z4}W+mQAl^^?_vto{XlsVW$To+~3qo8iJQ;A^zkzhua zfmJr&(W=ohoOZZrXKuC$kinJ%jQTH)ePTNExW6g@&VAN(DQ*#;g{5Y9LZpiSXh$_9v zv2CU+C@dzEHUTkDUn4q*#=7_s4kJ!tEWWp52baCh@MG;6P$6cl<4@yURjyvH3`{J= z@$n6kB214g88dC@Nc-Y$jzm|h{T2xyM&yyML{g%bC7AkCULtc@NT->+t=;tFau6eN@s@y@r*r&#DkC&vOl4usU z5UQ<`S=q~On+9ON2{mACB$bIOFi-xp=g|i;L!k`lQW$MzRt?GALq`@l*_A<5b|n;r zr7MGsclz%#CNF~!!3P^aSiDMVpv}!d0ljso+GT!al!j3o-Fd`@Xst=%%BU`*Ji2(q zM;C`S&ajorc_~q*?1gS&w6RDI9XeDVJvu}m{k2FCJ=Um^E^7oy7l%B{wNZsP4xRkM zD3e1GojlV0qDYix-I26zX%x!wDMO-e-^YzcN}e4rjalsQ0*8>*QR-4Oqu`oM=ZF}! zc|8KH%EY$QPO9KgLaCQbj#km^DDfFuW!}#1W{Uz1J?T0;C<|5@NeW zgQ=>px3=L@a(9_04}q@LzYv)U#nCtOF8|L#!} zyelfHSRautiwTICxWNMpN*QoDeC2K76)LRJu<<63+7T(!?PG@zTqjpfde| zF?<506&HFNWgc#W?(#psjdx*W?m}uMD^8AW?6<*t`-D229r$7^bQh-8R8EERC{U%I&Y+t=@gLce?Aj5R}TvuYi)_YLg#yMZRJ_}))M zkGjBWr%YS&D=c0&)>j4|Coec=qLb`*biJ;&&C$8wcu$+{LmQj@Om%&0uj%c>bmnK3 z=vjL6%#$0mZvDAQL%ZnV>kaVs^~QC#Vy)BG`{5zpjP>KzbB7eK8TI($)nklT4Fb30 zjogMvG+X#9FRY%d^|cGvkJBL>pYBGBj*CBON0wcG&|QC0oF^-l>DvsNdcoKpG(AsT zv*~L^a{B=!PvW$x>;{>;0V_}Dty9{Ily;(_citzr9LjqEmA%l6A1Ea!4D<XIBss=cu+2@5Ic%)4?kHs+f zL!m9M?Dl`d9}$t`>N5qw?{AboDCmqU$&Vy$igiH*5=TZpG1PPix1Av=u|Jp}9DIVl z>5pdmQk>v#&wYMK`9@%h2M|S5jtT4wf-DvtGQ;Jc)AGhL`M+Q{b^d}lBT5#e_Vn!j z{K8r8WA0gD^I4L@x})=zC5S`kkDzi7#%c#p&q0sLi4{DXEa1_7mc2`iMDJ+ zx0ha&*v=Y4g~wVpdfR+88^LFI^|axo-Htt2@)L%cSn@N6B&>bJ;b^RM^M;~unoFG@HLQ2%m5Nq*5)RQUTpAbeJ7quQQW829rAr~y-(vFDt{pJ6Zu&Wkk5B{G7UPi0UL`GH$?#^!*FxwgaY-(-I;v3 zA9aulvT}@!XIl(K8&jjDSYWfK1SB?2P*{|61*fq9_pT4?2J~xE&AbnVGL% zJ1P?t^^1%`5AKABTG!#xhc@r};lKD)n0=|D_D&T#b!Ankslrup%I<k=k+R>4zQf=sjFG%ytJUX1#cA(a;2+o^o6!IM8kDlD;*QpV> z+Rv}34C^&Z>O6kw(Qw3vZD%wvS_$QrMc<3#hRVt&mMdw) zeqgJ=klRs>7_EqWtx}0)f7Hm*P#+uV)(lHU)gMZSo|39v3Ln>O9T}nutT))0N~#Rk zSQ3&>OK&{EBhtL}q3^RYoLqTK1EHm<9PmAJMqhKZDO3XQY@O+KE!on5BmMyIl6yV^ zo7w{1H*Dd_3{tfU4yzc+sD1hpqHL?dG0RSXX0RV*mr=M&hrvG_r=wfOj z?CR`dZ>wf$>i)l*IVjbD_CQ%h{Uhh@PTtK7L1+?S5X7UTBQ!*0(E^gfBhVHSN=Crj zvLo*nW@_L@b~6VaRL3uRGi+R|+E_!Y1*>k$Sc0ur+R{=`*#4?oT{CZe`)#SEP0izG z&a^>d1N`l~={?``p6fjSIp1-FYdK(X%X-3Y3+sT+^B?N|y|(m5>+t@iBzTZj4xfzKZ)-#Fj`+{Qe9jX4Jc zWN-RgmbqfK`D)htc;p0RXS|&MZUAOy-qkmlrHy%wj(JtXcl3>{-8&n-?HCTv?MROF z&usJwZS+Z{?23l%9}CkrU!hyup*_HZ3#GPR3$wn`5|)iU+*+-zm5rsv=|BkY;nJ1H zYBFn?Y)m;KlF`B8iB^$ir8_);nz1_`Sie*Z9qs^ARmM_&bR%7)Y9F^KYY>c|Xk_Co zY-;44#Ll%!8b0wNEh0A&j$A8E3d6HkPNk(4gFj9X$|@rOJwU?0xiWHMszf+1g>6EU zy|8kzP9RAs*jYujS%Gy8#!7@$UB7zqNViEbT~?nRlqG7!gNp_>uBei&Y^+GqD8|ZV z(?pJ>m@LVwFpGn_T_Xt(z1KxF+%lR-l%+nU!%lS0QqC$IOHEj-B~#6+T4dQ}cun|T z25V2s{WNG!VnMPRu~^OY-=*OIx+88PEpkts(=?Vy&GaGBUO}j`t+Uia@2lywe64z@ zIxC$PvZl;%^h_3NWJiJG6`VA@{RXrbVCfKzb)x{oL|TUprIbs84Yg_3YBiql`@9_{ zlM+)uQq^2*K*U9dL(ZH#jlz+wyTd9HyJ#WfjEN^fk;;H!#i;@=zHRb@5$Cz39A04M z;-Ui2Pm5X?xuJ-fl=F>dK3ZFrA#&dL+0?RbW(p7vWHpRi&9Hh=SS_${r8ptMw5_aa zZGYAfhNB*XO7hj9`D;8nO0;cFH7`vy5(IC^l`9mJ?9>&Y4_quNM?y5sobt(LQF6Nz z>(owjAglt}p+5wiL4PO+34gE!^ybLnH#mRDZN~EkgqOY;)`Q#^)e`6r@!g;=1g%Aa zW4I!CgZ{`1xi{_$A^r#qz?bp}f%S_iMv6OB1dNyDh(iX#E8lwTi%JL}C*g_Am-wLc z8#A2K9H2Zb{>TU^e_%1a0f5;p;h1QV_5hog@`&5~b>^WzME3|BPPs8meIW9qJWxl{ z8=6MaGYqP4Iuq(4J9HKM#Udx^31kQT5gW4CB=I9ZeE$dz;Xjf``itq8_@Fla!TzH= z#P`r1;@^DG|7Z_!e_#uLVt$&Zd$+?b{O3Tyom?bp9!x6DKxU0Qh^Do~1@e<_mjYP+ zYO+8hU}`I!t$iU@%*-#*x>64jj-}11^P^XdNy==f#qEF!0jG+F!6Q%nv~pH8*Wkb{HNSx8 zhW=q`XX1$dz)$rfd}~P;J<01eRba&?AhXPL1C1@!LoFuGhQkq8#vOx5Js7#w=3DmH_K(}VNg=15SDDnDu=BcF%hK@A}JxFh{;-iKr(%_ zNxUOPF?4m*Rw6gPzG* zDPpZkOt;Kkn_?Pe>>w_5ccntCay)D5c0kcBG-HZ(2UA!>1VilzV9RV^C(OE`%fbn~ z*(JxhSY#tdsTIPTGQLPxJ2Jy&$r>tU5lwSr6AlE9GMjL@9I=xl!j;w1m4UU%LUPWL zlWll6kz#W7BU$dSMm;GZblcQqcy-}U)@;1d%R!NRxLP;f$H&S<&!X$G#V1BVMEmml8ywf zj1U(6Xe5R21Vwf)w3zdIll)BZ;ri=PeyBOz(j`;-xgxw1r}OBA63w2KMXt5fW+p}} z2z#qwE#){`L0l9-c6HhQ;^Y98MlA9Y-Y~>w*lar_vkk)DUhYF5!r~O4*~07aI@~?p zXiDS>{Akv6iuN(0tw^#L7I}n=$u{d^la*)CKTe|Pf-QT#*MQOmzf=}fT1)e-;G zIpBv=q7R2iA1;|*eC(z4^Y=4pn2)rkXT2Rj^zo9`a2a9=U4A?_IYep#Df#6|aB%z7P96b(_Xd9!pgG;C_506i8WJ#z3ZP zZum9NYj6HOEgSAY)Dt zdld-&x2hpbiye4S&^tVm#$3r-k}iB|z^#UTk!~opBj?Pc7mhv1<;1~fs<~p<- ze)*d*IMmdPGf?^L!KVPed5MEQRsgHnvNLA|QCM^`ccR>obUANKC$03@jZ=99ab}=B zstMuy$;0urG@3k+lY0Kb)v9u;YWQEy~{X)=c(p zfaq$w5)S?7xMV5Xv;#ezmNG1V%n<9jg*Q82{Mi2C2EU;DQ5Nf(wlcD z%@ZSyr8h7nm_$o+Lj)B}BI<3}i#0rL^1i7(YSugfd{Q{d15w)WP@eGt?*GiVfA{$U zWEd1EAbt>t__)|C0pbnv*uJJQ6~Ca1HDsSwQFIX0h*zH~nY((SK)%+f;z_?>yRMZ> zSznvEaj*NixcB=~fh8Zwce_W@yNH1t)_!pGa z8;>OCQU6S4=mL+22*H{v0xN_=RDrFvwkL*qW~=}+Vj0F8D#mX8Z+|fpc(7x&{$s5I zAOHZ~|Ea~qo$Os51Z_;6T!c(54BagMH^lA#2S0_Xq39sI$p67lfyd)e_V@Jl0C0+J4TgrxLukWF>hVJI zITHE|DD$m}?n}pFR;w%Vfb8JHc+O!-+)846QPh}|ee_pSmds|NFyH2o<8Pf^?VsvH zZlQ=&o~sy2jPK$m3ctZyi+wM7k_mTh^t)!!g+G=z6&_Wr>cI-rgUjx7&M}+jToFSAX0lmtzf08dh8nl?N9( z8$9sGJ2YikAuhO!UT7Hsjwg-FbW$E@oqXByEqsU>)>{dj4Kp|dCw$6}|0$QfNIQIY zW2Fif#>w?8u?A$TkRz0JhjWOQD;fxs)*!Qh6}k!11&WMPYn-~kBk4q8blM@($pf`I z^WR7+7?Q?!fItBNjG_Nm64L)~yeMgBWbg66=cm|KLsrKa|A!3(oS9faB*D9)wm^b& zRJn%4BLI?(1Z)Nr(Na2W5>h(}Gj~JqVzS--(4^jL+YPnWrKVp04dffdC$jF;`uk=A zp(rvCeY5QI-Tv-A^Y^^J?+5OHw;#F~m=bhtxI(xZ;}#QAi3wYb&3^JCyjf!UoQQ&H zEe6Jp8dIGyP|Lt_Vp2R!Mh{A+Dr2a{){Z(eamo$Fr}h9TY)oli3lV>)aF*9-LoyYF zjx1bfU1Qcko&+6Lc86Pq;BDUOwiuhF{FSW zE6W(7Bp1k$2-99`)5&7r>1o_2K@H9nXNgh{lRoX)fPoa9V}~ZU{X7>%r*@i^)@C~` ziwZm6e6hV5V~DO3j;@AOcB}|%?Q1a*dya>zuFMw1S( zxQiGBD_I%J)Zf_cZ=WqGKaVu*LwLF|)Fhe*UAe5`!i_xkR)Z%TT%iDO4{mBvsC{v& zH0hvT`i^-e(^P7N0=2{#Qs5j_4U_K9Bv-J(f*w8SFu_7Q?@Sd21)0Bhpz5>UE4V%6 zsTdr{&YxD1Crn~XOHdun!OcQQs!en#d*Tzt8Wvfica zCTpD{z3pP-YTf^mA6CpU=J0?TS$@dC#hSrUTL>UMtovfAkuXct5$4@dUr;hQm=pvK zL+)#W#+Q)i+0vjR%uyF44x`)cNX98k_5fC0JRz;KVwK-`1KK#@aK}p7Ypd0k z)|LWR`y!MlW>wxLN__*jswSmFbl><~yrFleN2;TYA#V+4WqgOZd|A zNKi(>N8C8Gwo!;_s_4+v*L@)$E0f>kJGsrmrW)Al_=@##(&6XzP<-&Q3BJKOIaZ_eKhE+-9jy#*rJ3{70oJsd5Yo65~O7;KVUS!(C!TKY8~NgGTkqG3oR+Y z3yZK78<8~%xus0?ZGlqv4^!Nc>p(Wi1@|>v?`YI}ZLtB8HvmEK7_bH0)~X)fuHFW2 zzzIb(WUSmEsYMhlfMoL;Lf*df#?|6V0=Bty%BGTO z{s_l6d8Yq@4tC|-KWuC3i??aMVD^P)lrN0@PjHHhh`rL@52iN#tIV}UZW_AA*uU+b z5{`lAKf67S$p^44aN(ZZmy5+$_`kojyUKTawDNAj*`%@Kl1C7(Rc(&4vxU;D3uW>| zwQ`0+Ibn74pX_Af#4sWH4L&T~VNsm{?>@HADmG82Q_-bUU#xraU*{Lfju)J$Ao#yR zT3|l`Mv_Z*4rsGOsyalY3HEgcIVFAp@fKsW`=U&|k!B9j-mn_}ei&f&I#;EI`J?3o zA9QrX<*tHzlK1~cd?7Nk5IX?{05F0903i53&9btl&d!GBmUia<_e}eLF8`P9C{0ft zoK@U^b4?7>#u5`r0t5yXMj^UMuYD3lAQI9|I87j;wHyN=>`mP!?rO-^yj5#j+gi5P zy;jy*(%SVNCXz9c6|8M|t>Na{-j>y?YPDNlEM&jGdoy@8Xb;OjgW2!jz3<)i;5>cj zf4Km01A2kQjRl7gi;Q;^y|+~!1U}@A8`TD>rYR*dVS;&zR>x$N2lLF?1$h~ zcCLl-nLi7mjDLRE6_7oFU~Ie5qNlSpfeT>JUbNy9h^vUnO++=tKvssgHL|i-qr=>mA%q| z1{@1pi%VOwI2aa|SC&`y<=DTxzPhzgEhtX1?%6?{FiAakWdi@ASaE6p)UqYjt=$Wn zg#|f*adUZXskgJTy|%cxmB>E}@r;8j4gA82X3Z}b0~-14Lcn2_)I+?22!m1JVyP6= zC>4Zt#aPfFsViQt4+||wI9dkTF(R?}d|g(|a}jrg?mRX~rrI7j2Q?fFMl7JhiOcN3 zCcQwxOC(=W_SO;cF&8hbh@~xe4a8i#w6c1xqDOqFj}8ev^>C~fWqWf$UTknk>AOgJ z$goKKOCW~AE{Rce={2xmz-LdP;_9-eR#cU>mG`R$HgPbCIGcY58x|4aVKEl*)KY_S zFjvIAUM&&~u`gNXp~h5r3Juh{5u-1MQN9B@6XRRj95y1@;x8IA1kWnhIB{vF3kAeS zVCrDuq~2M?g^Ig0xij-&o1}BfVoVD&lroaT@HQ zjKn-9B9xk1Fp3p}S6IVPR5qBrok#j*B6ABo18!H30xIG2 zcI)D&PLv)?TytoKtGaabBv6lT45y1Nsn6w_C{{BYqEVBoS{zBsEu@fCdj6?8b^o1}56v{7GdFYowk$md2@z6BWYV zQ9Z865EU!ovDEZy=MNVYn*Pn?M@fw;Lj~n$T>fRr6v}F+v&jj%>%!^Z*n=y;a1dbwT-~$$AoVLfT-TU4;$p2CYsC7oSbxBVp|;q8cen5W zn|~rGR4Y8>fB9 zBLWSxaZVAy(i_xg{ei7lvX?xMp3#uQVmo7n)gN7F`N6HX_5l93@F3q)c}Uw+d#LXb zE@rz_Yzc1ZfqrlK!Twi#=<8E(DC{G`OJD73i7`+R)~vbu&xrkX<`PIQmfUxTvtbT{ zMb)R~AmZO}>q?9hJiHgC3>`MrKxLBvT%4XYhugx2T7%1!Anz-U#2FH)?;n7DEu}eQ z4lfovd38I-`cLi|VgVAkKZy*bMq03ws&9Q1uO)VE5do={_a*JtSiB-@FLX=Io&9wI z`il+ok_jRSuVNZw2H9+Re=QqGTVy*N88qBrYkkY ztLoK4A}d3BeTN>gk*yf?o6izjE<9A93e)g$j)a4lZbewrLk$c^E1eq9%m-L@?oMZu zah5wCdQ|EzXRa0Bby7rw1^9U-xjLY!+|ooOP3G>W>X(E!981kj^N`_d^u^)})(7qE z7y}0ybR6+y04FGZK0q4MZYJOyv4;h?j?6<7tS8~%6w?8AklbV-6(m0cFnxFyIR4Ep z&+|#zIDU>__8aKSPi(JvlA^zw^!9`~%TBXH^QH7s+*}tVH=gHYxqXZoZnPOUuFvtr zHgNfPH^@hR77fLNDo49ukG3;c#G2GG$Rb3U#h^_is?!LQYQ%{Kg}fkpj@N;SAH)HQ zz}?p*n8>|62^FrBJNCxm$Yl%tbkaJ_sbu#|WjOE_K6t?S<&bqvjJ&G4r zn_;?{lhhq8Kk{_~T@eB?xyicbn{pE?%tXP%T!8|oML*hb`;#x|gJ$0u|7kf!6E)(Q zRCu<_fLUhjk*3lD;o3&jH>q*7;vkMj4E@}o6J*cMf%hn$Rv-dPi>e0PYIJ{g9v$6VH)8u26|rFs4}9X87_55GD#2A`;v% z3Q~svZ_M-vQHK;S6^^nQrWN;S2$e(q44GV%5z4JtXf&+2B`FDsYbWCQ2G5b*Got!e zVV=!LY7ma&XU$G?@9C;aw&Fp}yQ=+A0Gv#LDJ~c&{fyGsTR$0$gL!N7SY=S&AkG8n zc~rTg_#Wxer7Anc2#}9ln^bb>+%fQmE82mOjtKQ!!MHy|4);Tds>$aXiMu@da3fd= zHJxfooaBxP^MqcmiU^%VxJ%m78Tcu6HfsO4E@cC$vvMCQ-XBI5&%JYmPNJ+;#DjdH z0X6zkD0ZAzUXP-^JTxR-19`X~m(*8j3yE^-ycBck&QV<&ib&TYkxgQy5Q%IpoYdiC z63;!hR8AO3T%v$4kQkfoJ9TzRvNXkA+>j10LBE=AO|gVfkF3342>D4hC34+Ds4oue z5iBi|-Lc36n)-5^ZcnV<1Kd2yy-}?v-1W$}1|9!E=aG;OrQ5Oe14BKUw?pw}l=h{! zRbnt#6wZd;$w*w0&kYT=L`Wlyky9NNYRd^z2Hb6FUiG6(W(rbMSxsqe;8e}6SZ8#V zRkho(C(8Ql_OwsbbZnZvDQk)S^o#aos>P`YJl+`g!yks10}~ZxH`{^v!yk(Npq=99 zzwtOlP0Ua0q5=T;G5vp`H}`+7oBvnvTP;W*mDSaM`6guccPF4jAppZ>B55W`2<#PM zqCk)w86YGA8Y(#?@eEATIhh3-?iFpVM?%uj7TPtoEv-?|kkYNSwuPt8Qs0k^Ss}j?_uSC?hlXv=8OI;KjX0&dy5Zs*qt8Yg&6-< zANsI8J;bx%OFr{y@ZFDjgR&!>Sf*SPhhu@9p3tY3C7g{xI-evHwX=L;T`r+_empa> z!;}jF;u6M+D5fHZ-wvX@6lX&AJ@fd}XqnO}y$@R+(~1 zx6RL&ak8k3pHDhG?Wzht>9h!vwK7*MTNYxqqFY3rHa_W|o}p;hE`Zq4l!IAfmuM2_ zrFUHjX_qS~-#MmtW@qTrQ&F2tO9?E~7OQ-;WUE=Uh?86Cx+IFDcU>TBosDUAr?`p& zAj(8H>{1o8qhZi%-4(kT8U)jV=(=RSVx4Rx#0&xBCn%_7!&%ayePjfVm}D(hBr(MFlM$kfl9y<`pE!N!s4s0tlPwh1p8|*Z9pRoLmb#J@Ey2{G3 zL|tV;o{*u?M2H_n2$D1~AzZOKXPVLrhTi& z?qKR8uo;IoXfo2U8a-Hs1o9Y`dn3)smQDvlAPi$fr6~|B>$MsP5v-Z$?pcUx!G`0t z*DxhPhQs)qC^6vMLSnKcNU|8%nd6a{#X*&>Rbz7t6#@i3zb6{_`zX+EZzgzB6;d1z zek@o_KtkGjHU}jb7}FE9wc3&nG!Sf!kHXf$iN%b~J4PdD(Q9UeeOp)&v@jz;P3`Ep zkg$Vf7GshTiyt((5@1474s&TXw+woSQ8sokAf6rXw2Fz%803m$ZAa0Trf7(;QUlq0 z!{u{!)SIM%8O3rLjC$YXC+LnWL`r5X$Wq{H?3AN&%M?*qNP%jxv4L>QIyh`BT|lLq zb|q>qrnfehngVYHo81w{m^TQ**qH1{nliSM0#ALCvalDo{-q?|YQnpNZ*3{T^%)9C zq5bnuzL3CBC)@ZH-Nj)Z!o?9nYwjJ7mB@~GY7&&d)aWFal+g?C%ukpw;}nMHB=_z^ zle03I6X(iLnAegU*Op(hVJ5x{{YB&V%0Zo;Lt37r)OBtmqJ%PoPHGv83E7b|e2xUw zLhfa!ixC~p+z8z!0sM{QvvlP=Rx2VA9`X&#l$z2(h#<8yEw+uolUI}TX%q!q?pVaOk-qhG_W@EREe=kMp4Al9Um@R zvjAUaeFfp)m3X>=#O%K`Z6e~<>Q_|Hg%24a8HH6Pj7EqL>z`%o_4HOJh^h(wLEA>&`)_VQ6E-IEtBSFt7*J zujsFBL(DQNl4MzNalz7=WC{nKCWkq1wP@Bh>G-QyqUWRYriKbUzApZf^5}q0p=>C$79El8&M*?@h*%pn44O-j zaMcfw&2Uwj6w>l|_%C&{c$Y50x)jT4JEX^3JLJl1H%b@DUAiJaG9)ckzl8~lc@e52 zTiwHACAemsFw%f*w0cB{#3ehJ^C%4eQCKoc#W;u?J-d`;@Kqjr?FeMNBErZ&_(&DY zU%Np2ij`|yVjtEd50o$4x^&0!cIX##yL2VDU2j00eKfyt#=2d+czy+mal3AbcC&U# zmv=jcis_s1d2d2U+doZpnaci=#$Kb*RHk}s2-bJX=?@ii`DVT~EZx>FAB$P|in&gE zik5p{Q0HVPAsp(BL|M4@gtB)I;L>bfdSt*43vW~}_Hy~kO5732U>gA~T=I44gZ#KQ z)@!@&$nG21yadSYmw4U!HUQ2KiMUyZ-2wn_FO?lgOd`Vlr&Gc%|hXA805g30@Qc$`lNDbR3&3($_hg=Eddu&G7|>nB+LiwQU&On$L&(D3q0wQc_`V{LqYG z{ceJ4%F5k^0cLhl4?tVLsqNB~d`p#)CIb|+pG0eM<1gm47)sD@h2V@|| z*)f4^>967E*;eioBRX5DMM5xJ=iv$nD?1E@lJ3jrK+zg*rj5+;;dT<$rE5i>KoYL4P3016if8K%xTHR zXIar}oZIW<0q&(k&@mt{VqF_AU5cl^^&OPvm5QaCX`?IaIT+dF4(T=$9itjR9Ml<5 z5yV}+swBdsJQ)nR$BHd$;UG3+Yi6zLikM6Ok($x42fAXG?&og2q9M!iH}=1y&To=G z>X6Zw`}o)rAX*q8rP-$;Y-M|G<8_#|1FDaF2q~u&_C+LC9F1zKnV=#JP0^68+7BnZ zCOFo2TNr5bA98OXtkBAo1&yC93AU99Bk7MXd6&Tm={rSJx?R7j1_kM=!VqG@ij6kF zgp}!?GEw6UZ%)Qyz@Mdl$;bFVtV6{!VA|80s*g--tF z0XFI7=$;ujdCJb+$AD-T+ln!#=Y}wY7upU`d*dljzgv5Td{h8ULt`esjet!v)_8wr z&_u4^zeh{HNTd0zwoRRp(YeD=`^r!Eti!`hgx60W1^N9`c!L8SYdMUY6S@DYW6Iu! zNAl5$v}gjOrJK#GLcvc8p~R)BdhsiN$cm#;er64rCH+OQ0wKF8p#EqS5@{ASW)W#$*JB=XeUT!))tqJK`A1^vQX{)NSXAl0Rlz?k} zC=Xr!UZD9DKoYmVRnIZ7#urass>*k1KEjab32DUiH`K^T3XGjr=PJ)PRZSnSS)SdiI0$ zryG4e^Z42kxNd*qi1)5N(^~r>lHY2i*9*!1e3Q(R9j}827}|$-@&QNa?h23dec-dP z^Gj(L&IqETec+%Qe7NI}_2gu5H%R*d^G*_v#%E;-vC?QWydU!X=>OcpSZ}DJiI-#dCMm6?%+@UkL766EjwraNsaKFEIX%( z?}P#K^Skg~WRMW0<_+e0@WK9j%C^c$wrY&Yt;20g3!a{!1@>ucYKEJG%Y|vwfZU zGQr~uus2)mY>uBxWsaV!&3GfI=MCwtgfMkHc#GYRXZ$|6r6y&?p;OHe%;gr%#fCpd zOpXYDtcblwh9NeeGcFp#JDV8THO5$veT+90I{ffv$WreS-}u^8fERXl8BF{RsKFHr zblK$?)w!ajW(6HyQAw#_QmLAP**n`@i3mZtHo%+C^@oZ#%%>&4JpG5E`uSE|()Yt4 zmhLTgJ658Lp?1ePi^E}gPl(c-DsNYDaKKt>WdEPCh^znywFWdA3Evrp6yGzOGEV7x6e-ITFmm9n1ULoIXq`6en0p~_@TB9NY4|V z3ajftvi{_~plLAeneJp;`vpo-oV|>F8+w@9Cc{o;6U~>au<;3CF5$zA8h(z1%u=Lv zc#l!{XjpUAGu+|L3Ue;Otc?900=$N{s&)vX6-=)c?exk> zrTVo(9lJp&)Uh#&pn`6EwhFnuQg)-TZb0`+>P9j9F`)~K_X-O~W&Oy}71ytzZhZMl zjHkTqfYlXQPo4dk_EoZH`j_$5a!R#bA@2(YwMx5E!nT<4%8g3dU7@ur`K;=;MZ-6Z zP9?us)e2m9$TxaR^m^6qO2vI~^~$a*Zd`jM{SvJ;ysg^XqWueMxBRX&_^SFP<*KOo ziqA`VSN^`je!s zwG#Rt0d zZlp4(%vSy9dvmMfW zMh!!mrSAGfm*?%N;^MvPeKbkNV>J^kyEB#)yAZhQZO|)fFz8S($M^@C;(Z z`x}F2jn=2hEubw6F7-}!)+5JePX>VhK1S9b-M90tFtbq*L&F=~SWnNK4&4x6503gs z5A>O$+J;c*L&;({y@2hv#D1!L%cDOzboGZ)lWODE2g}85y+9J03q`|Qc%)ApT z351SB4C*uDF9Kf}Ob0yM;VEAD&ztR0_bm`-PH@55yDPPW$7&fTYl@e21Dbb+9P7M5 z&^vfEZs>-c-5A!p#SL@3ScdKB**nIKqr7~mBpLN76m45Y8q@8U{s*?q>{6?jIV@H; zjE!Uda5!`SOtIGc69amLE^s~~W3>%I;<*k(idCJl)^ zEpgtXD^spI;{z>{g%x4%kMC7RK1%YZ9P~rK{u}rqgmcwS2@n9F0_gt>@WcP>Ej3GL zOCw7gOBc`oC0KA!?*9M_f+`{+iXguVaCCvk>xclEArqM(7C#zXDalSQCG85Gtn+*T z`u&%d)j)(rc3CdF{h93k_xLq-05gu(Mr(sP;dp}0wc$Zz*9)ldpA_~d$$x2CsqW%C zIBy*j&nY;BPfhf7Bo_L-h>B9$lGP*}mLNLX>&u3_sH#^Gp>uhxPZ}M&QgstvTt_F)1El!`m$B)I!p^k7 z8_$0!kZGz8I4Htf+r(F+XU`+I5yvPTR!<;gI@rqqh4M>fZzbQQKy25FjZ>;)IPDLy zvT9P!s_w5h{rhUxHSoF2YNONQAbd@$7B9i8rzHJp8V?o#Da?F5`H2xTTYBA!Rd&Mb zZkH=wzG2IiYJD>xoHm%}?$|o zVSogNv<^rhK%_tnB0z|U0gI6QPyIQ4LW;>Goe^4l2YrWKM?ux0=q~FhU|CxmRqL&* zP~FIKZp zUH_9?{%<(n|KZ#}bBQ1HCmQi@HviwlR65;9lp_4_y4?p@A1Op&1#wp)Fe*_9TcBGW zhll)W{6TzjTyZqwjtH!?N7bVXf^aY<){sIS^fN<##IXW8oG`pFs2$D7;m;$}6oeSw zq)0Rf8gr{+4^vhliA{lpM%(&BD-qDD$N6u6})Y+Ft zpM4f~`7zAj&p;@1<5KMSAx+-gnSAO1Cmj#odDkII&NwwWM9zH}YDWM$w4|@b>;lo4 z){KgE#$Tk*Ez;k|hjY?^mY&`i#I$A>*I&*M%u06yAoeZ!&i2++H}%c4+fB!2EVX0m zz$(x>0f#U&a-cypB5DVkpawF?EIJ(a;#C1&G$vz6Wvf>QDHddlP2Gcdkyz;7re-4z z5_}8Tj~5RDq`J6Ju2;_p7azExi7ycjdHjI{GXyrKgP~Zm-i1y`4D#Y8B1hgWq5;g?(G*Y1%@m2-ft1QjiKJHZTYgnIO(YM@6qDBZ(%tOkwIlkV$pd^6@N-0)Li zDxfj)(A7V9Zp%b=P_3;P4o+hVB=!u47`o~6=`P>7p85dvbPO+P8&UJMF@)aIQI_SS z*~bdGJjDdFS|X%sjSPtPgi}q>DnmnptQtur1(Ns&nh7s)t&Dwb~&LVS@f#paE z3WU07Frr0)oE|Ofb>r8-Hn*ep(S*%c7phznLjM&4RCVznlLRznX^7EMzWo!wl!~T4 z4Yu%nc%qmh;NQH4@shk8T1DSv%u!NtqjENCG)(|bE9NGJ#T?I_#;1a}Ema?+5 zCQ;z3@QF^5tlA7hGTYmeek$l#C%mkHWlA0>hUldvb;g$RlA@IY zT?BC5EHVdTuzBVd$o_24=Ft9aL$@ZCD8bl~=}+fOe>!m5tUW=6)Q?oK z^=Fr?JiTd!w=lZn=z8^su{@oS^e7(9VeJnmYCDti{I~I!$^n7)OOs-XlTCA||jEBE3gqisZ50E}dMB2l^B@{o9J!B8% zSbs42Wg6=b=O56p`Ge-HK5+0#_HH3>S41v~E{a91s#l3WjB~nY^sGLB`X>FJlEdkb zsW6t_C8%Sbs>ACK>sWnrIlY1QRv&2iewccT4+!Wo?3OEzZtm&R+3VPTQLB{urSixh=QABw<=3Sr+v@M4t7ZFM5e#+*LW|j%N|{@f zzfw>=cNE_W&5^l3y85Vd2{Pl^%~}a53TtaQFlyd5ibJI&X@nmeF<|ZWdWHUq2$LK!aIV{}finnp*~Hnc#A?1eXigadUGf-v>E22NZo;t9a&}L&)+is4u8Esc zRrHVwys96{8Jhv@tmY}(hrIJH?V!TV@U5(qM}QC8>2q{p`4%H&-=gi@RO+dsZFN(fxC_WYn z6x>KW;uoPv`0ki%8Y!c;DcD5Gs?FU`36$uJW-)EoK-sYco4H%kzB(t)z2n@B9S zS!FJ_?nt#(&7IEf`YXzYP0$RH8opZJwpHRjK^+9{{Vn)fDZO=)B#jkjtQrE0#1YY^?uP6&j}`}c55cI{+0 zYpV&e$u=@w4Bj1}G8gF3bJf9WL%aZCVvZYMo_3-&>*A?Y2C3^QxVOTThh}ltKUO^ts zvbh##uG8w_Zw$qkl~kh2u-LPRCF(OQQub;SrP&JQH!G$Sr%4FaTd@uGt$}&Gm3D6= zexmgen5(yo5*$cOM>TIa{%17=#FMNxk%}wo;KYA$Toxd&a~XoRd3Y!J;Z0H{k&>DN z`4M8J`e8Apfd&cwB!^_BY(qFNSp{-NZm0A_i4qG7!@dQzsr*YB=-Ptl&=2%%O4!UZ zI=i}0WT|g&MwhpUspeVPbdjJx)iVOK^E%o_ymex)iM3J`8d{&5)nx$dL0`z|Y_moD znEmOmjxqi*jQe_(BOK{991Deidd75>(oz~V-%BaN6@?-?e|ij!FBK@n5A-8G{I!OY zN}s`*yErRhUshD!D+xG~J>!|2Gs5&pZz9HZo1@HL3UuGSJf_`u^`yo1W1(317G z?Em!AbuAIZ-j3tm8W#Ws0UDP5UrxY6C}y23V;1*6Dg(f5f@WLVK-+-+eHOAVQRnt~ zhKRNjX4S4p55m%fC==NgFm3NvM4S_l!#zJf#7)48g z8zRxgP;EoEJ$V~=Xnr0W98U@^cu+_O`JyVfNlt+t5KN^9D)-`mRjLm#yh>51)hD*2 zWTez+V|0l~c~8cT(^Stc~8aqpy%eP<;bB)Je|kihd91o;IjfwMiLrS;je$ zLww^kY*XdxGElI)v*%0{pUZI!9`67e_r%d*|bWi1hMnr2?K^e(l62c7M$Y#XvpD2 zjr+2rOd$8L(n2mr0&V*8&oG2?jb$4b>ZOF>zliB!y<=GFAUmH4RO0DRs#hFxQkx_yM!L%3>7vfgZ04Gbs9kn^oQqA-(cyRQ17I zufiMjei7Oz@drV#${$d@GIuEcQtuS{!NphV4*a}9;5G9a9iIPKVbAjwugAS)dtzv^L2Lp+2hs5cTi4ml})S-KFB$pWO z9^oSs1>~cJa#TGOeIJGR5s49*AE_9n8>0pm%_!A~Q7waVoHA+DqeLi`vS}2gL`z0F zEn2xmGnLB5D9WiUqe_Q_Iz@VEjneWXpC$WNvprIB^G(w#-wP@t(Rk@O><@IS~R#ufMr{b%e_7Kxh%fZGe6{A72RPhI}%Hpps$T z0ZFD|y{$~1!uBwb>wqq}+5mEQrkhP5^*+!WBFxE=+7G!UObah{As$jLalxn69B9^! zeisg2!4uPH8xDR*XeBweT^AN^sU8~HMty)71TxcP8!8UzMCIm#fk!++iXHOH@TFZv zE(fR^L2)n+^hTu1n*SAsd69ecg|$Y2_5<$J7qk|1NX*;A82TqCexIIj{sooRLAJD~ zRR2T^1LV$zTU5gEKl~qJnu@4R_X~6?Pz2-5>r=fZJ zvek?7R^3z7%}rxmj(AO|?lNG37*a_DqDll4EehgOguE7s(GtlKA}SQsJ7>Z{`xe%+ zflbqh>6Ju)4Ou@7_yJkz%(5~pZ#fI7T!@uNBoRu*0p}-1M_Ul<;eq8R7iGLo1u||( zf%E|FmMO@A-ya6mbj&RBrRg!ZwBtfF5aW{KI%pODi^g2(d9z~nQH7&q0v=ssW}TKI zOod!h!YVpS8)s0uOwA(~-@I|m6Z|g;tv6`3++|Qp*;nsSRnvU85{c|-)ri_-B$Gib z2b6halR-NN_<6L`A&LXu#gVTi8k*^4HE~T{TuUEUNjfUTP1=`ngsVk4qCObXP~@VOAjPtv2Tk1P;|F#Pg?38c#eqD0*WsUTH<5IQY>Ukv1PXsYSS z*TKpYy+(S-l1HJCj~7xF#;gV3lV#oZMZzjA^rjK7sw3*I3yZ}O7A4AhGPZ4)#E}<= z*e>9bWe$biR7A#93pMqD=oB|)K^lazQhaWPPx#!_W7O-bhFD}x7tv9TDq7RCiV0bP zF7S>`y)STt_5i6}sBZ(3c+?h?)?P8Ilqi}s^dISTS0qkE3TQ*ccB<7S6o2YhCrjG` zM?DYZn4U$hDSeCer|oy4uJtT@h&gAAkht|?+iPgtk?nQ%`|ua|GES^PmJ#|%#4dx% zjwH@5Ea?&6Q|UK}`ST1n?VOVV+fUXK>yo!ERuA2;8Hr37d&z!Eg4KS>i#<91WNr# zkN=LS1F**-bc{mX!;oQCKDgdY@go>k_@cxt>fFfjL*=I)4_^Mb{_OkTf5S%iC#oim zp#cC$@B;vF|4$oy>ZXQHhDJ7~{~wqOO0^*kuvZuJ8cpj->VHi}*&Kz02m(LcBnTiS zArfsj(Guge+MEIFXzWb_X)rbC26gSWmY}@^EIFs-p-$=CfC5=iBq-Ijy?}TF+EBdo z1tcw>=WEoKq_$oY+bs68H$9*G*qQD3dSst={PDQ~0H_~;A$gJVC=bQBK^CYD!*QV& ztbs@5{9GQ3x$)_Of$n@m@Ogh89*fuGZa2(F{kUg_Wz{@VwrAOPg0wYf*&yeS-fSS} z4JQF1`K`e5zeqi1;({?6ju7G%YC3Ya3qpo#*i1slHUD&|(WE@^nupYI3=<)c6{(@9 zEkfl+JX= zF8IcV(w~o^{B$S}Re$cRAnOgkwET3;!_gm(cfLbH@>_&K_2%Q{ACH&a9*)dA%AtJJ zhUPUN!OHASzMg-+pnpDyp8HJ3vmeaJ`e)*`F`}bhsDD1F`0Y&hY=1g*hqy_8u!5TF zm(TBT9a!JJy12l3a%t~oAua?d?Bc}6j{YQi_VMx5pW+w(A(-TwS9=$X?p|FzznvxT z0}k#L#f+r{@Ylf*s=URB9~B~&^0S~}!BE#pkYK%!3zt9@4tdx4hxaqy#Dicj8?OiXu= zwg8#2xK|bd<6RNV%$mWrymox?_G&ljnSM10`L3Q{-(F!T)GqBFlgTeXxzHyGZ|~-{ zz3JJKQr?a;tjaZjGu@UHmbkil`0%B>4=g9?NXD0!&hjo?6EWvaut^-RF}!v2=&e@i z*4FCDmuKe`OjRzocx&x!6`_}Pp47;4VZ*w(dU;+}1=O#v77tw$rL()fE){K@s)dYN zg4X@f$w%u6H?J@6-d@@mD~ciH+YG}56!j;<4*sH?sc zYh)D*pRgXnil)pxCJK_SU6-d!a*|;^gn$1wA}nJqBjLj(!s2G5_{VVG>4I2GL=x6y zWs*08CrzTMWMbzd8bJs?kqb8%Zr2Ef`LJKbgQhUZOASMdAuBTYXMdKM^hd;rWw58( z6gE-gJtt3bQdUxcf{03K6t0tUx1y4B`23k{xV~E~wZSTblTqHv)r!PU8R_Q~H4XDu zQ7J&@S62`fW{C%pBMnT9A^qWR)?4zRsQtRgtrayw?N)!+X6(&UoDk}}nU_y$e&YPgPADDsx z<-JtrQ6QHDKDW)5TFY;YIReRiI&0x@jdQ#zlf5XOM8~ux=LMkxC-u+`TDO?DP)#Lo z8ZM~g;;Ws=KT5889v4oT(J3YjQfLsaJ-X1LBqlMfUQ_g+i-RNhX3 zAm`*aZ>_^QyIH?3cxJ8^xTwu465{weMGa&5jWd`_fv&15uaP2&BCL}}@KMeU67T01 zQ$1C)#bWZv%`}ar#vf&|i8=WfK3g&t5w<85w$cTAR%igzk?~VUzvi{%He0v$2i_9g zg&7r`$vn6I$KpiQ8ZZG;_XHxurvP9lRxjnU?*h{=M_qOfeCH8>{Q zZxaVDHcpAGGAx}G(0nhT#G^?ajRhqmdxVtC4jy^-p@cwtf8bumHDU6R4N zsmVlZ?gxa_`AJrv)i(ID4`;@MG?7IAq!Om)$wrmFi1@GZxrx;sHm@4wqoAeR9W+I; z)gr+G-rprUZrQYgb%ed#*lB%bfQ#gZYp7D(6lhC7^VlsUB{x>60py9nPkhY$vD@W2<&pE~ z;CX{)IR22FsV{(j>I2D7e(e4j-oyvfpW-S9dmAMp>Dc~)cgmuJL?Oiot@a7+Pi~C;F*nm6-amq4{6~4DKh3fJ z1AWsU>_6Qx{{w!^@opTU`^gVJ1qOS8bQt?#?vvgd5(eQ8=_T%sth=?@vtXc6Wv^$i zqn-{5#`F?I*5}z&ln*2~g)pVf$PqIp)Kjsk@JV^_Smw%K=02*&ixcqDQf1P=7)4Yo z-Q1XJ6)m9(HWkB{TJ<6SOCn8GIX3O3`@6#(5l`OT=T@5&_?48+&a&bu@(JyRoN3)) zko-T7b-MqQX-F#Y`ef8FJtv1;{T##fE(kK{h+QX16pb&}in+YCsxW35PsvuD zh-C6aNysEal4ph)n&uLPjPDZ^>4Iob~Tx1u1f8dz zpFOuL+=%{h7qFwAKRq#5EuI_r&y?r!)QJG{Bubp5pP%NcspB#}Rq~3zRm!o3kEA1} zE;mZDGtjYO!&jQND5zGsv*`H9psros4={Wb&+6+Zh;4pTGn~MtHa&SU_ebO^s`BrS zS$31kPzkba;~jg_Ii1&4Wy%`7tL-01TJ~X2X;jLWn>4)wzrpY!qpHlG#^F-Q%fY_Z zUv|}Bow;{NDjKHvdk#zlAQ$W)(*;N<8*;w{|6IW_$hbsY`o!{~&mZ^O0vLXwB&|ZW zq#`azio%eJxgwuoNsYK78HFP|m@5xsUOyF4P0ej#yv`4;n67LP^r>x=nCU&>uy%p?A4;{I?J z*)J}zBmaEXeDoI<-HQ4viu*>w4EuFku z-mbO0+t>DrTlW{Xyj#=if~>szx9SLXUG~e*g++A58iQBrYBr(MvVIjBOzBbN0#uAM z0j#syRyl5w6;zVh0i9(3Kv32>y2uMo2vzTgUw9yG0E!@KiV#CIz)X!eameLDkw>K} z5UUFmbHK`@%s$8_ry?;A5i?Z&5v>3>um_Uedo~1!)HugM$=>oI;JStj)H!pJ6}rG{ zG&KJq%vHK`ksHooO%E%aIqbjFcSDfo9z=?eBLlO3)=Iyv+@r*3J_>NQvBb%R?? zSl?OptU+0eV0(msbB$y!(6R~TKMWOI1TzN3v@tL0wvQ=UdZNgQOJS8e+Vd^}QCPG}xUM+=aWJU5KwsrZXGkzu^mmXK zz7n*^3UN19tq77k(lb`Pk(sGD(-*c)SgM;>9s325o>%60-H~yOUR8kIkz!1%h!MXd z#UP2db6uF+k!w(^WS;IwGpJP=$Q|yHcvNWCGO0PnV}M-9lo#6}v90lCME#TGiWkrU zP;*4&7#(Gh*8y5RQnEl#SIqH;@i}t3D1WnY1f@8ViioNvB&!SDJ<{rs&;eJEkRKu+ zd42GFw2bVVusVIRgHrG2RTfWkp+SDM)m zD?PI2P~V9pkLaejdso=mkG&q@-JrS~g>%HWLxMlxJQBn~gEv<3L3WRp>=C+AeIKGk zIlgT`=>y*{*JE|5<|fDwra^sIAA~3aDTJnS8CsajQ_n?%Ojl}0`#qZI!A}b8`%YC`t zg5K4$;&+0`!Fk%*h33WeE}-ZHzRKwxxy=sogWK+G57x;pV7ILzWw+fESwWlHZ>aIZ zw>kA4(0m@48v039>QvG50LKx|)X?f1)6$j{?6F-=MKV2XpPV;u41QJxcOSxWdN@`f z$O|xX3_#iu%%IOJIe9~&L7yLxa)gj8cFX;MYl$$Y9OM<3^T%V0Mn9l=BqHrhpIF={ z7VigHk4#q`ZeK=hO?mmJ!g?Vp@(ZI^IKm>aqkhN=McV}ald}V)AU3*Ae~@nSaO#l8 zX2gu^+aI*fx||OOTGhG#k$^ni{2Zq+X-ayHEdDy4jr5cCCoIJ%UXj*tp}+XBzfd2s z@-NNL-t)kHr3d!jBK*4_LK?4i{SKTYJO8#;mMpW^0S>piwddbu$dMZ(uH580+iPp= zrm72`qqcN8V!Nmdk|VWzL%+rN66VM)6IWmd?V)o9J83TOPF+cI`1Y#HT?ID1A{~n& zA=FWM%cCFIc!c`Jf+uQP)cOQIfB5SW`T~_7WbToA%cowr^9Xi>ZVx2lqxA-%A8>la z{?O_X?J7EIm`AkAE_R2w#Pm>Lq#WW z#rSu0>L27EPQ(|ND-$Xl35pqcY8MFuXAM~tJ}7@e*U8w7gCADahu>H)e|b-bR4&#E z$c(t)cr#-6l%Nxbt12q(s;V#WALZfg3Q9@?QcF-DK>+bmJBL6vj=&S$qh9d)er|Krv$1e_`;fu3q`u zFur#iLUdbJM@9cCR)ZE%{*_WRoQMR@azM?MQqD1F9zEtzc;v8oI4P|HXRvaf2DrDp zULFsbp`de9(79oagbrpg#1oAs9fNAOq1Umz3IW;rrD;K@tgV1E5GZ zq`F-`Y$NB$%6?0a>t`T6?9fD~M$C6oBFzO1|K4Ot9 zv+l5cv#yk`6-1ka9}?jeNcb&~Bwfp*FD7V-nAvd4s5=^5ZLnpPEOL0)OlS^6r|{~r zOyW(;G>=b)Z5oTZy?MC)=iHe%i;lVV<8JcYE^E^_v~pISvEh?gIlG_RJ1fsR6^I?9 zb|{jN<4IPn5gCcnJVgR-$1r@8Qa&A6{n(N-RhY(aW_DbRykO}DRHyjQ2f&fGj=2Iy z%}h0B4jG0zd^t9;W=?QPKmtoPp=LcH$1uXgl`TmXOycRo9>+4+Sf%ZmUsluOM%Ltt z*5vv#ebLnqo)j~6qWcGl2ww_wcXFRB$9nKc2fTFdwPB!BFxOB~NE+%w$VQ1B>3NUn z{H#*0Q9#c!aTwIz*m-W$2??xuAe|=%8c$n=H39{Hql&H!wom95t4Rs8ZJ2i8pIQ$t zSpkw>!JBB&xe^QGzH~2oB!9@QhdJRt=y&i3!iL}f21D;ia$Ai1&vJwj0D$U$*f0NI zl81nMXs^EVk0;S?CL+h5lgtr7mJCMXc9RgIFqvw$=@%VJH3=u7J=64Wz_Y}Vgon^= z34y05iCGpRYe|5&P%4mz3Ka(16_k44i?Z7mvV{D*?|UcFooqVx+3(l?t@At2^S;x3 z-$CqidkPGXv@lk!jsDiH>GDv=WqqwjhO%(5FZ5CvqLZadn)T z4Gwawh)@nxkUD6|CI{)LiBoeP8{OoxI?stF-}O;gpm%>JT*Rw8rv6Yh zdQyjuTkrU64f^3S97#QT_G0fZguBJw^+~ z^BOg=H_tj>X8IH6oq^ZAlEtGk1FA&e$0xWZmn^;xjqU&Nu^qwNb-nRx)P0 zHKSOtjTwCr=FEPQD+4Wn!Fb#;5o?cZXHebd-yc1>%40z))4Mmbx|%K_C+~seO}<_m zZw(g1deP3j>TX?R)Qv4yZX8C&aK~OAQs6SjVK~ZK@SB*xA{HB(z;%1{F0f=tUu-Qo z2o3l8>D?O?u-U+dU}%K0>~o>YURLTPq-Ct+)*JaJFw-nL99)P8{*+kglgClwCf>u? zPoO^d#KT$e_Bvh^bOpkS75&jWXxNS1cMt3F9aj8%$je3y!yD__0n}A403Y%`!B7zK2j{lk^3F`#Xo2X@fb&co1{};tffyS~?7jOF7-Yb@g53u0 zi$HY(n)$ZyFwou^dvr;}c@3iKz?w`eFPBu@j4Wa28K+(I!XK?E9POK!JmTWA|qV3j^3BTGh8<0K&wl*C4PFxr+ECT;2`sHTE+Y7{IyB8&Sr)fsY3f@Dv%e+}+!^ z>!w#NNH2pIQ(^Zvf*Au~NRJ0ZNwGukp_bfNC;^-~y?6pwoL3inoFI7mDtzT!0OsCYgU=un~&pSE?a zA&XnnkTefrQMo9yg~7X0ih7~j=R%aLsLWZDI7Y}?iTM+R%itVWb+48ph^(lCv2H#{{bi!FBo>u%)$>vgI4ihs1hDEld>pE z?fxXl2!nwS+xcmfc{Xwc+5O?Pq(NB?WqHf6UC#eqjB22?1;SWElJ)@u3Q9p+q-M?QF1M9)mSb2Q;^r_nWud97Ys&<$udOH{Cw(jcnq~7mEyd1~ zIf2cDSFLf*qmRWJXz^k5RgreL23W4s^jK{jt#ou*DR=x>nuMfn-%0|NwPN}1_*5-Z zWuBsa@}~Lg!AGA!*h|A@&SXZ?U4*1fUY$)aeBp`K9aVf!;HXYHfi|)}msyWtYEz4t zeWP8#YllJihczdjY#vfd{Pi4%ow@1g2`sc*v%s5m1W;*+Iy^qgLv4Srj?+v} z(KMd10E?+nr~qpsN0#_StDJ8cF|&w4w^#c7QcV}o$9qx1>UeDdqEG^_S{I9LOd+ci zk@=P%j##B!rD*O8d_q z&2>&u>9F)>(9sDuTsd;6j6y_GfPHgTiqL6cGONEhX`+Peyk1D3HFx3`?L>DXq`Tvf zd{trU3}c@AVlwAVKu*`yJl6ufO)Qq8!>qV63UZu5$d`#Mr2RCNvZIiwtsR?^xE(jT z*5(F*t!B3)kg`5Qsb!QMSw`M?{enfr5?$8p0>#c$n-|TY(%F-0jA?7M6JcJS6sQ*-tu&8OB zAMJm8xc^|!`@{X$8~$&=|K%b7!_sgypLb{0-%yJmUEA$4a^w(ESNPF;lEs-yRSy1N z>c6wY{^wXI73z^)b9d)HQ_80W*1W26LsJ&C?aYbv#CUx9{@OARK*Jdt)fI4gRaaG5ILTAr z($G=i?GTjFQ=Ls}k&h2*i89+&4M=Ve%y@g01?nONg&OBW#OW7~HABwlC*x1!ot$MS zS498XI3MR<>cWfXbH>p1|1#L-EJZH236?pXu}J&zjMB5NF+P1A<4~7*Feb!$}aB2s~uM#OYb#)Ir2X^lT6aCE0F)8;}o$(b%0 zaekVXYCM$`xK(z9pi~@H1!85fIPx!@7zH5TV$GK-U6k14kzt+Y^Bj3eGZ_p|i*MvL zNbc%2Ee+)4B?#S}WMntd~ z)Y-nIN)$TL+`dkPmB`MC8l;ybGX?|G4a)?h*o3RiWAM{4Q(rGK{gxZ!d-Jx4fVb!F%f z&+0=jb1^F!I_FyE#*eyKB9l^ww%SUC8&z$nkkiy?`5>K^F*p@yNs9T{HXQvA7$;Lb z=P*1LlOr?kW`Na&w4n*S;y%&7v(3+;A|ja^fZ9rnYm3Hv0a|C(g~D(*d}b?YQT3sb z)K>4Gjquo{#v<#{$b4tS$LNwee<31xj;S$<8+jc&>zk=_4_l7JCgj0ovs`e?qgA>B zfs|>c(dfk6%saY8Nk;A#VXfU@`mHmk0q%zuWyu*YRZ&mMo(!rgdZS#l1#(sXH4lhs zmAcv~lvwSfx{AH_+h2-PnI{9M${(*wo_(S_{xn~7HqRAe>d^T#rdqg7!#FK64${bK zj+B;AS8a$QCUHp*>V}TS(xP8TlF$Sr3=4JADOj{QPKR zD$o;X9Y;uWAXq$2S7eu6f%y{UcCKdxIe!haB~Mdqj2> zR$d)e-$Lte6O$t*#96>IVr~d;`N1?Gyu^EheJXz(R$r7J&2J+59#B7)eNUQARnHve zL&^O$sdt!uyX1S7ezi1>XHtkhjCUFn)ZUiqL96pkKwh+W8^m7N_Z!4s+;<$r-hc0+ z5PQJhO~HE*-ciAOAm6qSdyw8)!Fxd8x)6PE?>~sY0QX=d-dy)Mh`;dnVIB;O?aWAJyCg1z1wvn_S$9j_~m+wYnhwmv=7ZM_5& zzohp^h`xaD5)gh+?^}qzkndcGzqI#n#NR&qc;fG2{d|e{aRGjW2YG;h(t~_pzahbX z5Z_b~f0*xVh`%)Vcf{Xb`+VZ>as7UY_e=eLv`=$-lizP^jV&*2jK6(p4}V3$eG%Kw za-N{cegTg%j*2Xsw=OqI$I!0ak}GWqRYz0Ibw>!5qknO(+~4pVg0VBRsAgkBZt;z{ zHc?JPM91N}C&xr|ygju(KgcW9e2^5dpKQHW<*DT#e9BAT)GVxgVl^{!OOdC43!A4% z%@8*rGh`NKPf^c!_qK!AW{ZZNsGOW3xX;)>Yt?Ey&)pYkn46M+MM(2LAUPs*^AgjK zh3=wcXAqXo2iQM=9XiVY`50j(%3X~g4f_O}>h~4=#&j$jF?DU3 z{YIyP3*s6lho&eLv^H)rn3rSJxEod4dnIPL1VT^e9b_6v!k!&$c0n!?TRK?wRywqd zo&uwfP^j#iDZJtlFRdJzNfX^MH+w)AYiYtSY?X6)%J| z(r=a{IRu}Z?(UM#5s&Cq6eQPh&HXnUbm`u(~jajTn84L6P5Rq z;o8nYT&lu#2^YF~Z^wrWy2xeLA`evf#b1xj=HZ4U9J2UJvU)_hd2ZIUJ?`US%kLgx zlVlv;tS$Ng^`Nu**CkoqsjFeXb+N1toGAX}&X#S0R3U-`n%b9l673biSTys7D6WJ% zI(eR6azCnesbzOxiw?8d05jHm(Jors#ww+piv*`K^Ctx-tM|4ZizLSoWxGpjnkix1 zz;P#!CY^iN4MMc=Y1;mZ$)0`l2tln<^Q#5K5b4Ncbg2Ta{Q0o` zbU34}4x|WYw45630;l9S2}qk{Do=!8I>){&da5F=n{DjP&J&e zDqbKp9so5SW-v9Ij1`qFDV-Lh%qmx9=anP*bBOj!iS|n^`<1qX%Ch~+yPQcCEh@7s zM5(NtrKT6N^oz6fi?k-QE7o1!DD69*mbc`IAEaYmm=3=To!i(!hr+~dTMp&aZ8L&5 zj&UDf*A6bTmms@LJWcFlTL(oSshMlXo~Fw!CYild(Q%tVZ4=fG>R*W!+6$}*nbJ#_ zvGKnO!I?@SDVp_M&0{A;mbZGmo98Jzl()=1-b*nr7?#BHN*{LeDs#7jofuYmC8=^3 zjptyun&k|)Rq5vTX3-r0Yp1G06+;F006`PrkhjH#lrf(-wa&C3FfY>vU;|i zaV(Q4hDjVh{}nITA1E#-2t`al91nnC&*(u6q%=5949~AD3^Je#zX}*G?4Y9j2&h^w zJW{KL?3SkE<`QMKwc?_}{Ks+ElOd52e4y7y=XBR`mg_XtQMU8t_*h1k2jc%U;)Mts z7n0@>986?15KLs4k0K`VAJeh$B{U_9fgwF01JQJ(KP!D^WL-Uc2>TXmY~Fn|2MuWG z!P{21e?CN8djC`eTE_U?FqD+x!Pr*z;8Z!Zlz}-X3Pbytkv6Wt8^X-d2oLgaj>(-j?I3 zcHfYMjqU^%OGpKJ1EbPZ+`t?~h=qE5lihjWl6F=6Jeq`~qkV4D(S_+ap?)^ds^jLQ zbuQ4?cG;Bt7&K&(Swb0xM z;Gu(UZv6d+dU_b0{R1Hy-N>M?waNL3x;Kd4$*F|x?ZHVO>A@AMchHudNio`JsB-;gJZ)%FF^C9qmE6 z#=fYL;_v8wMo@%CLN3gh%u?B9QFAs<7}A5Y;-l8f%YKKrDEX1-CsUZHC(BaR z{n{!rEXk|-uSI#Zt?HVbi3N>w8KF=_-+=j`@)wLC#Ik)+UgbeL3v8KZkY>8NtM@|b3dw8I(&K+KHI1y#%|z}Lj38}Wmj zpkTcPi>7|eWJWjxr=69PSjxJF<$%>&moO0=DQ?{^#;pM-xXV@a(Z&;kXSy1C2}Vo~2|w}kd>a97ob)*Bm0P`IgB;s>jw^|?-x*G`x8;T6qS-+f!6Kqv z-VhLvl8zE7wOIdj>fV(NMJmmr&p22eNnRQPzKr`~=1Zfl7_^ zP6#B0CIkaqjrHN^8pDz78spp7B!?ym_=qM6#EB*gSrK3M34Lm7{f+BFD@>) zb$-=JGR^^88{|=n3ZzjY_YUH#0+pDt-A^cln$(jf3Ik8Dm(s`g7XLb{cTXBUu;x0e z2(z|Sk;Y92q1En`Cb3r}eQ7kJ50gg_bv5>8m3b-M4enVfkh-TZTarQgqCxZ~4ts@> z6(5oJtCYB1ieC*o)CGEboT^hsBpoO+P>j_LCX4>v3_l{AFJ_(ZgX(x5>Fe( z@kZ=&zjB*2WDCJ+5c?KHb&KdSk@mkcc7PK&)I}ZB4Si);#($kU*Rnud1UQV)TvzNz=52&WoW$~8$mi?Z(fOgp`gVQ!RRtrIs~Wd)F^K>M-ZdPcN<)4lMV*U0BX-b6B^!PUHofS@*G+D~E1ftb zS&;lteTQ&nBZx{Hp=xwj$xa@&YIN7>CWvAi(Q0(Z>W!M$0D0xn>o@(H_?h%b%3z-5M(xih~JT3C7mG2VMh>9%CteoBR!$XuR z%1{dm&Q#5_Q%Z!%ld3(4*=c3jc(*2NPi$eA(b%f%u*D%0?L@N({-QEGPx;I`h-l@e z{r7ZO3`%oCI)a$;^xTsMMqgB&l7JI(tX%0Nb#{C)59p?Vae*aNrOGg_Md7@>{5cUU zx|AX8O0H0q-HMslTMTlG33q``HP#rOj>JN0R`gn5?@uf;DOSGi*+;e~Dx-)h)zUbr zdUq@`qOdltZ&l3F2=WTa-9_#AzTrX~{5;w(eet?Yn2G;hTT~_M-SxmCT;JEDWluJAH4 zXJN^ZP$^1Xtsv&MvC|8@V*st^Q72e-O zEn-dSsDxhKSW8Z4fYiiWpxs}QAJT+2Osh#kyR^zGJeh{FaYyXqJyV7d4zX*(g!+~9 zU1eTX@8&+9O3j+KcR9(Yo@oVxRK3ey*pv`eO~WUpw%U4hKr}GwG3Q&eZtTY4;g;M{ ziS57}C!QK1Z0zcu4U`qfTqBxHYST~BAiaxW?grcxpkkFFM2888H%&9EPF)KjL?y9$ zqlV=Z_ep^L$&oB>LwgqDy z&!EUGZ0$+wIJWrdvz#L!`*)c}GBUZ;z1W z{DeDVxU3s!K(>p1nVf!((`{5Wh*{5O$VB(lOUEV#rJsFkYz4HFIL;nE=&LxtX3yjl zX(ivDY(uV1KLbyX+i;RN7c}qECXLInUe`J7j3MlsxR_3_ZC9gbH>Ya`aRe#F)qQ>$ znLmhk^+96?Aa4q>o?2}+?p=}&scgl9qbm{HxQp5xL`dr;t||EaAG82_?~xysJS+d;u{FN5VV8898`0afI|{fd zl27wpbw^GBGeFG0U#Y1E*WZ?~Igdea-RqIF#!&Klx9i9Ro?^@}M_HM2!IXTp=YmzT zC=ES{OZyFcGp!^SLw@Ayr9KYsItt#0Qn_S^fOXwF&iyzdT)jgQKWEJ1?dEvzy z*E^5GZvdtZ{0MpzNfC(fsFJ?sCg7=QI3ax|e+33LM#c>M6Z0J=>;26yeHz4DW zXA8eK6EU-ZBm5R%L@)t)1^E#;u`y17F^Z?sN|-MNWwGLlT8OW534%%|9D#%KcO1e_E5A-SFb!ac}yvQT_be8d~I8$5y zcWJ9!czHd_p#?Hj5GC?Mzt8Isqb2HHsP1->wxOy40fD5JL3JqkQ7B|oxn?&OB8xT$ z5(@^l6m)D!jVN7QTQa-4V9Ja=#M)Gr0f^k17v41EYlC8l6p$CLoQ+l$sZtiCikE&k zYhun8XYD73yt29rwxx3U3TiK0V{}5Kiv4+&_Dq$sK};{883^3DC1@M#46pl~{(ZT; z*or1fxAKSby^>0uU=YEp3uSfP{22^HiywbEBt*)nM3E1hDszj^aFVroXpFK=VaP6! z>|)eZBAwbn3iwa({vrQE#7R;f~%N7_^w9i6;uFy&grS;K?TB~5-f>Onxt0)azL28vf zP7!OcJeKmhfbh|w{Qv^^$39thmPQa>~j{y$PdPU)}#dLU6DTImpP@?ed6cvB&k z=>QgbG|YSe+8~d5q|>3DwkYg9g13G!oyg@?bdUT_FKqLbQ z*w7Mo>{J6%; ze{8t`aJ_&o?^gGR7UunO`Z&K>tcP&*66yL);XzX(dhLqPp)`ir+9ag|stj?LgzKcJ zL#_%iYY{B5UGCVf5o`yt54_i?c!RhP zX6;hmpl^|L26gYKuMv3qeG|Z7(u~`7mvCS*K?M`WAz(5_2mhAbE%o@{CGO)X;BZ+J zlBG}XgDpU?89MSeno*UPJk1$wLX1jr?u#wZxNSPYav5*}k4nc5f-iu%?L0wr>3cxv zGIxX0q|5SGo*}v|KM`d!dxO@bZSFfafbG&rB4PZBm#9FXCTKB#f&D<4YB*Di{}?(t zfyaa8$SH*vBGm@X_CFJmUgx}os+t=bj7ld6AcR|J) zGoUfeT_q$X@+*;0UWI`E!1uFW&2Yd{5JR}dXBfi{;DTb(nn*A!ug~&l2Yr=K9v}qt zRmc`8zpget-va(|_Iw0+*Z>uGCn_yQu!DTsWtqq}wGBzXW{#Y7!@6~(e|cpqCCc>L zT-vsZo{uyCG{y_*5j7+Is`S|i19F8`nU9-%qZoSkcXfkI9GCoBj0Iit6^lPrKOjOE z`(%o6Hbb?T5nN0oDW;f`0Cio2fU_9kT#S^t2ho<8w5RcgX&Yoaj{gICi#Lbshs!)Z z4HWivxaTn;FfEKF;uh+H;4Her!Dc?TB$&lZIN?IC6(Qynu-YiJ$d_2^cdpM4Achdx zhK7*gV-)wiSIG+)0`uSZ!(fy>Va|yVelClSe?C^K_oMK*{5p5@_kC;YA0VvE(xgzz zza;0D&;Gdv<^e8Fe-pBFm0b2nDr{OTRB^8te0ujI8x*REpMD4&Ky@!~r$82MOu{3* zCPH?GxuY|?xDlgjOoBstPlt?iS_3GG+LV)DLjcT*po#(v(<~stplmL;Z!UxY#VpGZ zG?(FGiW_V&x-a&RA0z#ME@+Ig#?42QumSj3KQIqOFb`c&mLsc}F71r}w#67t)JvHN z8%?^C_HR-Cnn1G~ByPw2>UWh6$Wh)4uc(Lm8q}2z16s$+Eawdd+NXyNE^~nImhSzs z!3Mlj`1uFBBe5Wsusi7>`4?MGF!7phl5`#c^q^?NG?Xu1u zu2`fa-r~h(VnN9*gPJ@Mk?%j_`Fb3?ImKZI#l2MF6}M{x>x#!ZZ4U-F#gJF%CDKJf zyKtRr*=Sa&iavv4+^=lIoQXA|>NollA8YsNS95lz31AYR{iQVeOx?xL1LhN}9v7ye zn$S>P9XmD2n403UKL3>kxP{-dr!|~93e<3L0hG%QI!9C=#gsTu0FAMsudIq$VncUr zIw#&AC1Zov7z3hO!8PiR%kjbS8aw8ds&Z=J!$8*n$70o?Na-QkpJ41!gpVL5#Me9s zKaF2C6{tN;P{kF;m;og)5JlmYA)GO3JSkn;ufmQ}J7i%GHS52V4)sO;?>LHZ16|msGmJ*W!kjH1K~mIuUxn|CIiA;t{8FYL~~d|mKy*?p$+|sdk<|4 zkBrCHs59gbCb|9w4Q&M7kaYO+nDC^U^KOOM*F)dDo z>?jp@S&*>~t<-@Y-;rEf8Np{`8@j;xP81Xeq7W+f~_1;oFFvO$~UI|2|qN}h&{XbQ|9o%6L$qq;Rk8O z<`f+gdZ^{qH&9j(6L!?^ARfb_K0~xCY7^rf#utj=5A46Li+n4iEDrty0DuPi-;akZ z;_mEd;Pl^xuTGS)TjGZgHCt+iAo$4#*%ajScl3uG5yTb{A7E5b9;>w`D zt!>dQdTe4RaM%aCFM@B9rBH=OOvB-O>TSx*c!|r~>jmnka^DOfabFMYLA^#=x91fW z;B)oqx*P31%SBpurn?}sEK#1WmZzdMt%IoER7B2%&EGT(HZtVc?NI!)OKt_YV^G&PNfkQq~U7+RYs{T+t_q|>G>m3+KNNf95R z&OA#cW9i$6SkZ>mGUZsAO;K&`pWrH>RvFxNavJ&Vi{@!+qO~4G4LJJi!^7L3Yy6oY zkzx+mx%$*qIPFmGOv^OzPVgnIZz`WjrhZZiT^uMJjzS^|HAz(n3B3^!3J_E2Y%8B1 zcK+-d>oXoeye1ae#F@xYvN+-XT8=Ro>8p@>jU_&3UW>L{ZWJh z0D#E=0KoLWsUVUj*47?|CI+_u>nx*uWK0=s8QuKoiShb?{{+G^AOw_`;RE0i(bI|J zgL_zH6TzZoO%JDoMXFk&bhbO&EN@C}ENW~hn*T{gL7`OYTpMa>b!ljIZTTcrKKtEz zF?l3S1ON2?ir@Oq@tke{Y1~4^^*oOp2|E+~btPAIh(=~$<`p^Agk@`!jZ`CMPBxX4 zry0hMI_)rD9yodAhMhfmEOP1@UKfSGg)M26u0M}0M8FzFnhKp1<}kDyq3 z$7j&I`0XN))7n22+4M-OvY2gO=e2vaBTW>k(+oqxdS_@BH7TkzOIjpbTP50bI;%?5 ziFV@YJ5^2BBoJJk!l2zE*_ljgrPMX)YG5$kq;`rN>Z*6nPh}SOsB>r*H!ByEY_85S|di2xRoazWW^b(A6QDVkCR6&*y6?~cWif$PJ0%&&rYp)kPohk-D9G) z>1wcw-D{lfl2@;a)hR}~luj7&$z(RGB=6)I?mxFpU!4XGe3L88P=dk}IlN5addT9-d3Zt%vn1t+p1ob{5+z zOWI26s+hW4>bh!*s@iJkmOFfn?BrZ~Nw9A>x7#{vnrgaA+H6o%Yv95*>F;#cT3hIr zH&-T<31@cY?b>53GMlwDy@Ygf@K?50H>Qpg7({BvH0f`vos6sT$&{vXc(8_ge9Se^ zLbOy{Loy^wb~;O`mMNuI%9l{4Zgy;Jd~S4ha7b}VE3dJK<-=ZVb?CB6r-bFS#H7sZ z%2y6^Dl}tiFE+QA+8WAgv>=vtb{8Qrq?ByDmL|k0v(ei*)wXng)G&Z7%(dE5o5f<* z@!uP3Brv%Q)tAdl>zg-wn@#ll#Y;Ac7SaQ3x@E{)po@#zxt^LErPm6zZC`|dBHCG) zXD}~gN{vEUPG_j2%3|C%F{{VtCwW>5{fH^E$CD>C#f;M_&Y42cCB%$k4$LWgoCVks z@uW!$gHF}w?1?iNH4`VsdBabvWuO5~m4+7D7dRM~?TEdIei($FQ_#bQSw#{RF0_I? zhh4F2iKRFaEVVfh@uD&CCltOz(<8wUi5{4Z+w2fy>6vrI?BOx!CZ;FeYbQzla^;S;;NRefl&?E+Xvr*uslkI9q=n!{jzk+- zP$f#B?>n~88X4w0sS>XlYB3lNfkqdzmsYVJ1lSdpTvJaMgjKn`u)q){i~yr*A_@+~ zJ#!~Q*F~NA*C}M9LI#154+*W%P8aNxlkP)CB#g)tSOp&r5}1dp_Hx5&ZW~C}6&U{0 z?VX1WK06#-R74HxhI5uclaa+S1GYx&s4R+@J~50w5U}|RjMGsr)%_)Z* z(Zoyo2Glc6s5Cwzl2dT}HGEF{+f8|3_`=lq%-w@fS%6FoTs5Uv6V<(pDCARPcJb#tt<7WcB2bSuwz=u{lJ*>IZf?6O;%+RyU88sWq8YN% z%KZNfpoWREfQ&PJP%*_f2@cYCQ`n`Yytke#{;p@0nG^t9RE~=P%Hk314<$l|r{&5y zp@c*xV&6(W@|hGKK)|_bS^L!-hL7tw%@#hz9s9#2LJ93r%3&&(SYG=DGm9R~Ju@0# zWdetF7LsXDGMDLBF&oxy~}3Z9=;OB&%N3F_|M=T!{Ezw z6MpyeNM{dGuY;gwh--Yqh&5jplzE&L^41mT-ZbnYOCQ2qIH&OzK5%>0kna_8_(t)@ zNU~{4j56C8Xu&Jw$S#R2Yk6(Cx_7y?%kRuGSv(%cj{P_m%^KG zY`o?PzL>t%#Gx= zgpD+YL;^_%5unG1)wfGd-@xAThr@5`?B40!`L~Y3Gm<0U-qGFA>sa7=rnn^b!=k-5unD}iOZ_cqSISiia_yx=~*M<>p| zh+KilWHMK%2)?UtwBIV(xrIFEPq?1^r@i+(%s-(szsEjD<0<20CP?qO@$3RqPd5@I zujw%-AA&J9x-Vn$DG5~kTXnu<)FCPTh2(8BdO{gW&zgck*hbqi*$wpzD4OxKYR=@= zDo0$O)#Bmmilcte4guQ~2KXrA7y+qHP`zAr&WSM`7-CNqRo0z0e7RXIToKLG#4z4v zVh8MrAiF_MiTo+2K^gXjq>FFv>0<-ATq25zm=VRIOU~?G8^TAAUhc~As?KEc*Kh8r zr>n*f69?2;Ae50>vBxZ7!cs#`6W$adf+yYBC6mq@zn5`7tyI#sU!e3%pLJtipydx#=|L`TNn`r22cxM!iC^tckldw|-fs(cmEE%`Ql-Rg zajvyDMno&R%7*JD$=oLm!vb%W*<6Cr>^G}0<0YC8KyLqV6b*dU6AlHP3V8abJ_v2v z=_@+YkMDCt_u-`@{X7Pm_0U$LgzISN39yN#_rmBniiuv-$FAtWv~;me8<1-TW8GRD zT_e3{D8}@tCq{U5CH%(9riaWYLWhIOT*dRDNNvz3gK~I3!2)Wq@DGq|;6Rc< z(knu5vkl9pOv!+?;BAnIi0C*uM`LM)DNy(B4XC}L;5dL=bJkVWkLxH#2KB(rTJcJx z3hqO3Z55Q>Zv`ORa)9`@jC$q_47Bh^e3CD<>PQFttYM5}?*>e;mUF81_dw%T6mJW& zzO?a|i^&TOj9qsf6A&b8(Do`xnACMOY*xpFNShNP=sjCP`za4Ts zG3@OwP{g6HPFH%Ck4JBa8Hfhc$y76xl_llQfN;zEyB236h91}+Ldr5r&z>4StRJ@Z z&ll#TUGu9t!9P;1KA0c2jnA9&zKvBnkw2PNU$RfTmY1&i|J3iq{!q32;D5Aie1Lwo ztbcOO_iV511paJVe?6c7?;`&n&a-SY&!dj;%76H=Fqa}uYo%`pvu~;LuJQ6s>t)CC zhncbfZXQhFN$8wM3YJoIXWC%wV z>B@i-7R=HryXe@{2;q+JNq8UNmFr@Nd=AK_a3#M7lnuF1Q&Y;x9A~DCo`pXQ&7d2i z(HppmcCe$Ry~XQX_u6$4@sr#~+M+jsH#XH<*|PNK8G^(Q$tUqPh?O@)7v=MG`)8v= z&ghoOa`po;#qwF>6wN$V6ihbh$|L)kqva9*ol7`xOmlp;h+DJ}shvhq6K;JOyl&<2cE4J=N6=JZFIb#)^C5<1)59pF1WCKQCGuMpdtJe>3vf+~70$}rThmWM93dLE*6?jQ`3_M%&j3{O=aZ$yoRBCkAc#n2 z&R7h?7+i3xXZ;Dw7+k=dunUAI*b9t(5uu*!tn6*&YxP4*b_plU?iR7~Tksi6M^<+; zt(ikmyC3oyjYCdRr?y#WU@XgQmXQ?NuqXN)FZ`v;+OH03K~9~5cHD+N#Kh#qZUS{}%8;UEbZjL7BpCq@D((>*WiUDxxZDXa zyJq+okb9Q2K_Hf+T(v@5peX|PeELgTcYFnro(X&&fjyCOk!M6^c1UQNF^mWtHU(cy+N@vrE(LHyn${QH^4T$B{}Le z2fXp9s4j)}EBS2~!3r#_S&i!Zuz(SnTFfOew3#IC-c0;ea3J8YJGsN6;xTYN*_Gxm;4Wd*PU`f4uqi zP9THR(93FzxcA5b5fVLM<2y+%6FbTQkGj>L=*agD>~TNnAHc6Zh=F@zP6vuW_IXkH zktOy?R{O+W`^0TUH~}57fK8y#Y_LSKf);H2Hh2ooJL_t-+l`=+IL}J_LlB)-Dkh`tT1nbXQUKQ{(Zye z1k5?8GYL~2kWH!{EbhM`-22MPX_b2}JHDi)mvahE-A%TCqLl904#b@l)6Kn~m>BtX zpi{5>+h9um)2aTxvsPIfB1NSdb7-ihtCIU?+Xa` zz+C>F%nAsuw!isFU^JSfEFbSH(I;q^0yx)XZlhdNWNw0QRQu_oYL)qg=zqX=g}^*1 zsfvG7wzqgkP0t;H1K2;~3vo|C%o~uTjCsGxC2DbVf{2rRxk}L!lCsFDpK)s0*R~W* z=4+R>QU2n!R<(i!uj6PKaUq@u66*)U{tYVqmr8l@ChqkM(Dg->edz=+muG+A7b^J+ z`0@i2vA1VH)7QqaICH)er8$(no-`aJi$cX1o2*wXsU9T$0T$2FP*BA$)Vww+GWhR~ zlHX^S+y$)L#(V~^B-g)fr*2S;j&e`pani64Mfg=}(Cm~U9LbkS7Pz}a+?*A(JLk7y z{BXyAmXxInw`Rt1G#xW_z%cw5<~A3MS61lz4*-UakjNXtgX}gXfvz!Vwcys6%;wne z(hO}xf4OU;M)?42kQRuC$(NrJMG2faEX5Q3yk0Dg0#PTkAQ^4g0o#9t8%!iC)4?F^ zxZB6~E>&R@lUH;L|M(R)zaPv&cV)vqS$9Uf$gI!-WGL_}GkXB@Orf(eob^9L+B8EX z0O3y&^ZpwwWjK0K^U&Q61VB1D1a7I0kwwEKMLRUE8Klff1#`|6#rV>>;p<|Fwt$T` z#6gug&|LnEb_^3$qac_=pI>Mg^4$tpbh`MupdW}TdL&BsH;|wiqLI^W-bRO?24se) z2%SQU=-=wOM~rM<=-cBs9xZi_wZE;7y6Y6W=BGo_f}rB0+81a8orLh+JaObd-q8ryOT+>)Kb z9e+2eA@Z9B9;##<2b{-ajpLII<*65E+_?e~?zBvI+(bTZ`giWl(X%C8_K~$mKu?~p ziyG`{(lW0Cj0Gcx#ZA!?9)?&gfT1+x=-qthsquxuBWBCmKeE*feK*UWu{#30{8hcKckr7Vg}aI~ z>r^JGL`hv?*{_%D zWZbhQ`&8TyB@2UH>?4mYweYr*{ThsJ8X&u=fi1}UR_yMY>A9>!@rTlO?6EBuR6APq z-ia+7)ot5&>$lC=eIaL@LU>*Ek^!&_&TnjR&^WI;F2Op1t|dGG`#=~Y?n$c%cbs>q zCFa}y3Z3~mP)K{X)qehM$9nUDt?{fakuxUi?TgU?mG<6Cra0TU!%rB@;(i3nP>NlD+i*yV=>r@W1mEr|cD9Q zann!gtX6z$mjs}gloe=+W>8*ld*eU$u52>$Td^(C|~)Al2NE54EFvtcWof7zmH zNva&8ls#UvVP8v{jkT_V*;u(I+Xg|jmEvCpPE4>yD)A!@?LWSF0FiE6fp$gCh;Rv5 z5EY)_P2<^7=0U>CRA+fe;D5a}5_?&%u{$&>bS}Olm&^ZlOrB1}c(3+2cKracwNA1D z?kXs{?eMN_qI1HA!X66@QGhyYFg<{+B;{?eM|-38j+~?J4uybXsn$v#$qw<*Mq2lN z39~!w?LRc=`s(V@g%^F@EriwO8fjoomoch8j%5?kKWu(NYJcDE+<*wW1G^hME)be; zV^d)ZU%tOK7oFTbS!j){Tzn!QK;z~qF8S#2Xic4$x^zx%dg2e!Y1><~csx-u-A_EC zz!>eYqB#+>eHKRJ2TF%i;VWDwYmIs2)0_?0Ztzb49&!|DJ2S2R_c3VC`b*YbsuJl+yq97VceeIVm4 zfvTn6uhyBZQp{nZ4J!pAeTirzoggMCRhL9tQDV_8aL>_+MxhGHRGcGtXa||e`j8rt zm_IeV1uEX2Il$Ga^&Ge)QYSP033k!mKFOd;WV$mZz8fyFq)Az9v?!6|6pA>DP4tr~ z-bWB+HzBGRvSm!*02529Q*23b5Z}y5TmvmZ#b6PuddlP+3vrqyaLKV3wSVpeA2$?- z9N?7l2h&!%@tQzkNpH2GU!ZSZ%YYedA)~l_rBKW2;4*%Qu;H$3mG+E#^2(y7kSFai zt`gfZYHku5Y}!5yy(A8c4*C)|uPXv~2}rxdDU0|QmqcTtJ!(Vr1ovMF!^C=I791D= zK=nUW?*E?&Z>lk;k|t&m%NGOMfmzC?&)2p)2+SUyziIqH!}dy zh62J61{6Gf?SU`|>GF5*q#W}7(!e+s^7fKLZeE24ic(~0D)P#C`qcjD=MXI|kv# z4wX>zg&OFaZHA}T3+vOVUb5_&K;P$c{|=U-z-pCkMx3ZE z=#4d_B-R|6EQ+jYMVo2j(yh(I)gqBwn<&kgY=+{dv3U!wQX0yrh z;$0MF(^4j9l`Qw6?Ndm}VDc`PxkD$xRq{8^9IOOiW^LiTKo1yDRP<0;+(3^df;`=% zgioA8G0PXrm6z`Xi=A{0HdNJTjvn@wLOS#-6CYF89(S)vdQ&M#R2FIjje*Eem1B%l zIW{LXS#{Wqc{I%4;mklU%-bU>%~Bzh6V)B0-=vK()VfarBiiOwuTEO)Ou0~_ALgO- zX?ZS2%-&J9$A;N^RncWe<~)q1Tf2_j_W(6UIBhy4)~NbDLjlorBXmBUTj-uJu+Ni= zA6KU&+dft1p{(t^#!L|QyqT7!8w;Kyn}fX-nXXmFS12sF4iPS2xd4eOZ}X)fNnMQ` z9oi*odUCp!$LSoG9d!e8V>z#f@f{8^i{LDzS<;~u>)UY~#huwc$f9r1U$kdPKbzT? zz?UMC*%lhtY{9cfTx?r63TzI@v1n*Igd>PNq~5Q>e>^oKF|hN0Qjm{mU`bQbb8P1{ za)}AiFt-6bBqcyU1mNhSB%YQs0JKLkiOfCY!K1Wn=*#)QtKzjWt@E4u{;i<k0~}NKbt+nlo_&-9{D_23A8Vi z@r|z6{r&dD)wcMUTY0f3ac}XnVZ0L0B?#8vf+l*M|1^<6!~xbQ;PZwYD%AACC886* zr4<}v<_w#lgI!P?5R&J(u~?ep_a7UD80>$Ca%2o_4a`g&|4058Ap=_@6KiDyC#(OKat;)?MB#sB z$*2jC=|O==k;RinM?=XiEHV?BE$kClYaBAuiETK49L6aX2#M7aGrA?e0Drb-kr^$_ zJ^?(+W#43B=OYY4W6x~e?CxH_TY%-C@+asQQEs6cZd!(8$K=g< z(Ygj9gxhbLm)7Ch>X^)Z!va{)-6>lwPzCs3l|r{+_@0-tphqUV&Qfui&R@!f6vi@r z&s#jXv~;^ES^-0lItbmV4fQsEM0k8o$)Htrf@{&NBacCXcEE+`YQYF4xF2<_BI}XF ze9uabL>tb+ZPzSBD*lS@BA4R^VGtB)9e6e`BA*8h@Fxoy{f&;$HzUv#C#zE0%w-p^ zT#MLUT-8vFkH}58?%ZF@0^LC`n-kn0YVQ;U)nt8g52U$Dpf=!ld=;v@=yd9+-bg?- zp-nMOq%laTq=4$EHVnyojx_E*1jeE)f>vTZ8?JVqOuj#irrab%>lxy{SW6jq}e4?{k)(>gD>xydSOYtl^S+Q=e8>4ILK66dF3&*r{i`TT4 zB44t$NT-Cm%do7@8H+RUk7l6B?f9@pj+GOHKcDI!2C%_pSs z2<6pvTVs*Tz1mpfCUU}9f^PPRXZnlsh%-zg++aTCv;DN2~P^wh{jJ{e&BHTY* zdEPQW7m`GNN^XzfH1gAFh`l8 zgs|d}SI8v5Y}I`>{pbo*h`48xtt0nLRaWmFducL;LEJPopak7G?hG9;^(KQ3Lvv|+ zlCw2q#iJm9E<%QBh-azwT-tuSS=uhpfYK9@(Z%t~x;mExl*Ga;LdRvZIl3d}#bik1 zc*-NMF6ZEbW?}nqr?Uqq!3Sw?KG-D1k)?d4xEjyaQD00#zTO-If zAin?xj(NFAK!_-lnHj1Eq=pjLQoJCi;38U@*<4J;o7Nv!K`C}-w>)%Ae98I6HB)0R zy@cZOrZ@qsDh3JR@Iyp#1P(iZrCEu&HijQH{W{&+D zh9|lFyhYbE=%V*`Y17o4{bU7v96#r6tnRMa-)VCjS0?8yHcbJ{d2x>vFqD(L9ASx{ zuN0F3zSnxU&4OBd^0}oTr;sl36%rAUSj)&uzrh_rvAPGGV^u8}(Mll_yqlyh7#1N2 zzapL6@UsByz-=_6KB8)*h)pq*QD5@p3Rn*n;gBg*I&=pO#6;K|%Sl==z%DV+*I1g2u1+I}VFDSs}gQfc3P|{_VIQtF!Jg9rkqBgs_`JI1nr*Xs$oj0eQw_-QkrA zw{^}kKIjY*CvPf0{4v0uP;4FqC=#QD#zY5+goU&Gyh5oB1_DN8Fe*0vloTuVloc!E z+Qn7E856?57ys&)@W7Yge^(el%6jfrMGByc)8qBbOoFH}2gxSDLKVb16r|&!Pmupr z?0XN{s4V{xx#xf8cS`@KV*h{Uc>kk;SlYtL*~HewQPJc-?;HPjejp_sD@iV}l{h?T6CthP+jp9lKr zlm*gRaKJ(xBPw!Xjb|SPjLp|9vA*@A^b0UXD@OWr=-1-s3C|U_FJ?N(aA5_kyXU!M zVM28qurc1WKDNf?oQ-6dT-p=}@QS*}WCwhAyoTg1>i;O@u~;Rg#1D_4B%J%kLJ#m=#f8~c%O5Fx;hP4NJAD-}gW zAq!qGiWcG~Nd#@QDa zEY@TJf~uUK9-Rfq#z`E(CWLfLJs_7XNdNfxfMTeTDH2nVF?yQPi@YO5eLCk+PaIwF zsxvW$DtkpvFL)b`q=}!jTUbMXI6*q39bh>yeMMJ4{kvZfK(3HXYv{-|^c+H7qrmLR z4R}cuWG@&rdvXn__q`(%2RNt;;+@W;ND`0Y^BHRgK4AZ=+HS|Ip^G2_0Ju^B00{s8 zt+xM-p3Z1^cq^~;{Qb^KJCY?~r3L_pQxBmwih*ndf)oD}P4brj2vW}`PBX^Oh+slO zz3SD!>Rkp|*sMfBYc3=p&>yKWU+L|w@u_QBwY}^4eD1l8N}l}sx$S8(0Zra~^SF!a zc+1}7ID7lb-TSaPo6W+*^G4{m{%j4^Yj?odUAxb-Wxw}@9o+|l!Rt)0aru?P{i``h zqy3(QVe_T=*%QBN!}KM)+v{RL^n-uIWBHcg#OrWC_M1HzWAOME85*<2<*h|MB;3zL)ay*yLq=7mWzoKR%UDCFgaa!<3qk%t#GFc~z(-zRY zDHO2{b#HY>ojSsfNj)}%p>bJY^jI6`wKBnSA^cfeBuwbjEkDv9!blvT$CYM5}RK_z<*oRA`FQG+xC-t8rQ2MAN|sswvEUd2E;O#L{+FpdDR0D{fLK ziqbh=E1wa$3G5Rh5-O6xbV1;r34kpsox+30+=2Pc?^^;#a>jETV%hl>9}b5XT?Qjm z2%?Y?^&;OM2o60(!J5-kYAdxhnp!-40zW1?UI`9NDCa}hxw^Y$!nXFuKc1RC?JRBS z&FqX}slvp%vedk^G>Hd4N&>U;nV~qE#I>umvasAyzq7Kfu&TCdES_u++P^eNP%!dJ zrZ3pVy9N&f#8J5sgcPm1F0d5cYDxs_im{hcTfb-e9(+HRFQzo9)=b|-9$bfhau4kq zTNDcFOQUb}ZSt$?tE9s`uQddOJ7Wgp4Ei4rAYpY~HhOvfh{wfNPpXbHXIEtGU=WEBPI8*LPUqF6de&6bfj_u6vtJykNzp>jJ zR3fVA&w^Q4dRCq!tlGMPb5&w$`bo1phnz()_KC6%V;Etr*BMa*U?fE5}B4iq)g zlf$Y~hp!)53ETYHvHCgif3_)P+CMQQ+l{ z(si=joEQ#%VD}`<8M5XA4IE$<+Ynq=zH!2^2;k!@n7FRT0apEqsZl8c$f_c-V|N|g zmR?Pra5LuXH3`rM(+a}Y(e-*{9!!?oA3{a0PlZ!bjHW1~ie;lpPQVLpwPMUra#T+t<$R&>KDoR9!q}OHI)J0MQmQxBSFK1_1 zLt`2IH5c!0$7d10K92#3ykZLYo5h;UJd@{|-kT72m5XI=(T=FL+?vMK zZR^=NN8z`IKuRiO#^5O^Pe4D#%&y|5o$r`Df-K=!Mzdv01sgUZ&9gU3F%%7MRGJTo z)nT8$&8F{9`4vaQDv0HBP}>B+>WKBSuZzucfWljixTJ+GCqt6h;j|sG;d}|Vm*Ygs z2}Dkeh(2=N7Eu4*m{lv2BCl2uE+dD%S`M>v*_7N`50YyEn16uAC7}M9&d?I$d%Z&M z&yPL3=QdcB_|X}IhrMJcjze=$FS_Bp$(LgJ?3PViILWql=?tu0zM$;PoWEyt0n4c^ zuwv!K7ZEI3|0O}qB>7Lrfra_J1aUAf@hBtf0tq>`2`+Lbww zms_m-vS1ry&B4vj!Q?4lO1mJCmB;{sDOkiUkA8l64INyVH0d4PjESkz^q%rzk<#+6 z!enFpvi$gLa-`U^yL9=4^ie4abMXwuJ$awN^?Y0|SXw)0hXpd%-z3l*aUwACPd(+vZEt2GCe#o?S6h}>`3+sDkxvuTNv>#%*i!a znP0OYJ7_M!ICEzU8Pr|a70Agg@!{kVs~%&(P)v~hF;q?>7PsLcAlsBvyJE)wWf2E+ z#w-k)rY(hJ5ZHoq<`kx*uVyiYAUN9^O-b)Q@^<+I?I~X}@QetWj`XK!u2WO)A7HCr zf!8{apj)CcgsF23ewGx$Lmact zJfr^bM!fjvE*jI<)fEFJxN17x?ie$u6aBC|y z(QRr?%9*EvU;7xCJR(ujKB~H6u3P@0J5Z9wWbQgTdRi7Zg+SE`l@&-FDm7&A7pobx zLx3U^IQz}P4#TyX&Z|*7q%5aUy5O8BYKL?>ylew@T3O>X-F_%FYa_8?E$Y-9S4CF# zGWjA#JQ&9Iv4yb}c^Hj0{i%dZ@Y&pxVn3?auxS%ofLUv#fpNJT07&F; zM$I#ER@N-1wPCIQYpct03vAWyXkx(n_U<;HA(22t!B!@VR1}B4P|_-uVy65EK}&%l zXpHG68+na$fU}Co75Jz+xrn0g^paAn*Y9Lg#Wk_!e>xm}IV~dL#2B}&3sw4}F_LuA zuG5$rWFlM`%5kHF%R8pwX4hS8&~>oL#Ws4)9b~5xyUWYl{DDFJtTX~PYU+DK-!yf8 z2#q>)st@VtF!Wt$cFw%9FU7b-;yL*9`&1`*1WDVMCyHnR%-2%zhSpmL)1D zRh4>l_5z~Bj#}a*t!LrOc^GeZRu&GNDvcq_C_rpqVNeQ^=MDRsL(OX3;)dnhY7%G6 zmE~5W9eqNy`W~GpJcojziLbb}gmn^R|B4yvJrR@MU@iMV0VcPxQ7C8PCxP6X7uqTT z&Pb%VLNOVPW@L|nOgo11c!pj((1Nc`_Gh>6d3z^)x!3Z=W^U_s z%xc~H(P-8C@i_C;YdqVP<>!4C`*t@3?t3@*BfT+GZG&7T?@-vRr4_+E$-LhHa{&D_uf6Wxa-9Kkx|L++$`x#br zv5UMI&j|7d_~cn>x-`!KL_oX0fa3=n?y(zCin}*D>{yS`)+eNGqBjz5A(N%_C(@Hcko?6+Wxj>GX$pOFep3 zz-*ff9lldRtU+|Bj~GKv0Z-VOO@7-3zZv9sBSA7H)I7qmS~4EMmYzq55g(;adAvz5za^R zf@G*9Z*-BY@mYe}XHt(O=U(tz-_`_X>e3^(@*0TU2#wUU681nE7P^VY3Dh1nYij%7 zG?)L!)i6s=nEbltXgw;i_A;PazX7Nvr{glTw30}AO(cU_3h}>eG%$8LU+Jf7BhSra zp{4Zqn0C|FEr9|`pw^I!^~T9iqef)afpkiYrHgW9GvbiAO7>hzEII6u#5i+Q$gniF z(gr2IaYjej{LbEJtXcwU#cSQ4sHU6Q4l#PBf|w_D zETl#aoLo=a3{DI6wzGE~6r{$m`SSi7EXvS&N{}HC2k0a;(})L|{|vU80Lo*?yc7h7 z-UtaPg$}y*;3CjY@G?T?uHoroHRQ{L3gjx=qwVc1P)(G=tC|_cx9$?s`^~}qE~WfV zs)@=4+WMkQuF?nVlIu?20vt|d9;a-Mx`CN+X`24tDlvdAtg=c`3Z=6L`K{?Uju4eA zip`ZK>(!R?MVIwTHT^i2B)KYQhaM_%Xv#paRVwakHKSmc-ruq;3*ak)ODmd`ifHl` zmL(mQJTwYuianeBSj!^D<#P)zmxi569~NnrWnju-7FJm8@aqvBr6DFoDMp`C?in(d zI@D|y8p?5?-GOVve&+&Pq&m)Qy%wY|8_gJE_ncYAEG-8xr5xt8oDVeJ6I{MgXR{Gc z?pYq{RCiHz->%*#dn0PTVQRcKraRq6K#hC`$`=>4NG zhy5HUrNm@#`bU4%?PR8DlJ5J!nh-(l8`|4DOlxfx8ta|=4|B#lM5+zSY37yLygcKR zguzKJ5wmLt)9VV&6@1q7TS-I+{kETeO#P3$$ka&w0{vQu60l;kjmnqreI^X~`ng_D zISZ!870eBAQO1tqec;I&4j%3yMO{clE34Gy*7O5ASt)*zM-`Aa$*xrjcq@t%_sqxWvKgU1-EL{!NcqAYpOD}1Y*ULn1S`L5l zX*WRFk|y=cnD%Ym^H^{X1RDb)HoWYGLYGlYd`}|cRcWz9=gahKb~|n1Ffom;N{Lr( z@J`{LJPxZzhu=#mj!?kvJ#zayipNBK`j9^Z6H^*PR6giiGw#~zhj@$WNgFe9P3b&= zo0f~%qxPVdjmj0g-=W%6qW6@@?&~?j z#g+-KRp|C%UI=#;!yZ~aA?~Wu9tu2B`jqPqh+Kg2s@SH1PQgb>Y#4Tj;xHz*u1oF? z$hI%{p%RhP4r#`Y#{9S^v?}xI?Bm8cLl-c8Ia@@A=3)&<`QoG$N)FDnZ|?!bhx%|r z(yGKl{KB>=e}U8!*8Ky5KTQdl4b!P4!w*A<*W@IJY1HY`sL)4m_-euVmIh&lw z^LoYEIGld}rxW_Ok)qYt|0&u20{~$CKlEGuFV?wIm7~r#E#&EFzDJsb;_{Y;D zUXaV-iyRUl2={H%3>+A0wIZEtk-r1*LLMBEU_!QLz={PN~M!OKL5MdGBTnyk8aBHm|a*`mgOL|+M z^`<)QKpMQgoswYXhSyzBJ8)+{20~dQ#rA2ZRkrH#LjP@VcAeZOBl-#YB`dyHp1>2s zgYHPIG-i}veN`+c)Ia?sz+8%&vQElr4j%ADJNeHGsU;(*#*_4Bs)u2iZbq0 zFGXQgrqn(ub<`#FLSdwKacmi!IzD&AP;GZ7sdHSC)TJ51B&$<#&xxWvkV39aDA6Pf zIngMy@5#byUx=A`fn=L_Qe?B+kAbvPeAj{0E4?=jp;LQ@BycH#o?*03FsOpQOEt)X zR-35T2}M0t7yI@RqJHC`eM z+MDSck;&JF+a1`L`vml0#1qTxP+_FkGpzO zA2qR4DiY*LoKNz~P_b*S9M>k&EG#IeKZhn28U{O=J18U_a=JyY)S(x52M6}jiVh2$ z7?7e|^g`F#+-%UWo_vREV1V!$(d4BmX*uet`a>03ilC=!kyI*&Sj*3s0P= z$-Ge~GU`GWN1xK_;<;IidwqfP`~nTi`Q_=#L^E97Hip-)*uQmPV+G;v?FHyV z6V&ycE6~@r!?eD-arorXnNF#>32a!ua%DBQ?&z3qVc|BF8@(dn_q7uAlgrx|kkSLY zeg#;%fkgsUtD;{iw!nExWm}YYi=~!9Y6dmR#(x;Gj7s zb1j?*{C4IvPqqd&)>RBiqU+#~sdDACLp4#g*fFwE-*)RA2mJC_bro8cHzBv_cH4-$ zOjkpoh@CSz=u?)Vj8PFFZo@kQIktWDP0%RLQK*J7=J!B@M3G)PO=^wHR%^bz;6vd( zOu3AFDS31;mIC@Lhnu>br`VX`LveZtfd!o{ZuFHVqY#EFGGG&nM~nFY`lNDT64>L| zw1j)Qu5KXLVZ#GM=_W=6ra$OKp~2I1XA~FU*SHjpq_(`#6jfppH0G>6WInN1o`urt z;wpv+euae-Ye^Ib=`?kot|wwgXiXZGsnlR{LVcUb>a|QR3NDq9r|_JS;t7XgNVbE9 z;OpRi+6j-HM!2E20zcY7sncQyHCj$o{VYibf@W~mADudxjGgX0>su(YsJ2da7Iw3m zsuI`AI&D^?yTfU#bEX!_v1XHKR%;67erw^|GGnc6XCQvpU>26JXSB$_Vo_{N?=HbR2v7&1|7;#!O~k`A3zL2reS za%M|a8zW{{EHgh$0VgYZLlt>jKWlE>Wv)Tdg~YdGPXtV*AL{T5=ipxAp*7{s9A11A z5nGrFY_khR)ADnb&LH0MMWE;U!6V8&;rYqa4Q<{XxGHadxImU(4H1w5N*ol@xcN9` z&*)tF3%`qRYKO8f3jwbvNx4NO(|?Fac(v17e&yf3y(%YL@2<)qls-X)lzsry4>;cf zM3fs>*0_w7>C_c&Bms{8DzF1orSE3k8p2A4ZgWGJBKkHm=!} ze%X8hhr%ab@4BTZ8o~}6vFOxXDpmp>7Vvu0e7M*QQ=C}Cjn?2rfldFGlWNpJ_Dfn zkg42-Lfg*AD1U-|D;N2ewjli!Prlxj#GxtuGIJF_n7%cT4bYGxRC@K8KRJH8CHc^l z_2fU`dukpHehGn%Ksp7y6!_33!aC_HzEOPnOB^=q7G;3>PE1qqj>AY*tb$u*VHQN# zx^D$S@Kiq#e32IvPU;{xw9bDZ@l-ynzR}4wrR(IP<0M8pc$r=aG%LQ@@suuP3*6Cs zz#m@z)~KtzvlmWuIk(hDmKmuAJNk5Hm}CK#fsHitXaJ6!6i3yvrsrgb3v1E)HNNT<}ThgR}kglxzH`FLZCTda@Is=!Od{Z z64WKG@f4Tr#TsL|0G)J_0Aw-n$duNiCM0C$)9ZL%XgC%~VqlnLU9$ds7N&00>y@dU zHB+*{cRx)U4@{CbdRX@r-f0&OC4Nrhr-sJVGx`s7hhwEr7;navXt(a=><}r)XeIke z5zV3P+Sh2o@Qz661!M zqd&rJdI6v6ZF*BFFF?1r{XclOxCK#|B^Q>tL!XRVKVs6yY@UEmCAL0r(u)`ey0jvZ zs`2{2u({z5?@obPcNBdAo>haU2G8 zGAY{+0(^CUV;Wmy7trY|%iwbwZ{PU0c%jeH9m*M4DdPJe?t(nE^lRe-0;r1V{4go2 ztGzL!q@u{hKLT>(5v)xhS1?izzoSIM`Hu(fe;5Q^6CwfmV0amKLjVch{NvAXu5COg zcj-0`+_osTHTrO{_nZ!umLO0%ClI0!yf(OoXbkdC)x%s3P*M9?gvfM?TuuamTRQA? zVs_)Fr5AWgUCk@_Fe?`}=dea&hdIqFRrCZ+^&HLb7#vP5?1;r>xR%@v_WZ|Vxxe2M zimwB*{zaM5SDT;ER9pV9D_es^TSmTOM5!aEj7d2)sK}}PByZmP*^uhOBa2i`16yNR z&G3OCd=hz378|8CC*FJrm}VUHVv7GW^2T#^`6WA5{Nx552dvqJsu5avoZBFw1J68o zOeV(6;($OiXe+slWZV5e2CyIn4|Yk%sn-!OjjWy%0*b*mR=#IU>f)XPj87ix;uWZy z3+X4aTbAPBo-u^pZm?V!LAW4gxdR6FoZI@d{$mX3`ZDMrF6-gori6mfND%YbvgC+^ z5Dna-!O%1n3{%}DBVBXxmiHm)lQ)c<(#z>!VTe%`_G*0Mw&fA$9n;9Va+>n|kwFU;jHT=*?psA#CZKn`*-k~5+w z79m_t;1V*BFBSF~hWP{Qeiufk1EwkCKQ>Chl&%YE9;gR4!eU<>Q5}Ftwt;#Vb6c#z zPd0l&XP?Ez7pK&Mtma%W*abT-loV|MJlYUl`Exmx&r(6UMnS*Q`8=v;L}()}z4$x~ zrdJ4fIz4#0fkp$!^ER5X>jJ=`TvXG{!P29WGpg7!YvcY6T?;<=o28E%WD(d4Gr03eCjP#Dk>~7%nDjS1ZW|NnaXPi$ceA$KZ@OA1vXj6Q5 z4b}lo_-demP;THqOxTRPeXD03s*mVng7%N%gBXjzw4i+y{Ppax{k_2_juIEA6E9cP zY3H9GYgJ!*BC0gAro(?!IQk__a8z}21}83`UlrBgLabDL#dtIMp;V14@Bma@{gb!c z)!#)3H;)wuF&GfK88Y{t@XP%4>0$d>ONic30z=5JxKaCnQTdh#*1Q8`jpCyGj>(c7 zrbHe1B8~#5I8sU}5yQ9Ck9-2vj1zevs1c}KA>WJ4A2ejtzO1V<^Q&eTJJLHabBnB^ zD+)1bRp|fpyWk+oLFQ}1%F7>y7ohAKbFNhG9S?){KTYj@pi~}fnltQ*SbK9g-(fG0 zxs)=Tm}XeCMGA*zmvdYRb7glea8Xin%M?R=TfcEW$RaIj-<*Q=#+LJyQy?X6$YvG2 zTHWvd6}<@-y~&^@OGo{Ph;EEM5;%AU=4u1O1?(HZb2Bmx=$XPh6O?>IS|&kv!|6NK zyK+4*E3_U_ySU~M-toV&UFi|l{3723yTUHre*R}lOuRk!neuoTR^HlJuD!8-T`i1wW8tdOsau#hIVf4b_eHIv#NTzN_ba7hL{$!*)5Vyq0D|+?L zZnIBjPR1v(cCWMy2L)+}d%A>tQbsY0Q@}CqnBoz)5+rXMiV*9IrE8 z-4{yEDi8HTb{-|OXPa_v+f3NUaBa?roFU)#Px4q>NCYk3IS29wEiqg0uV(&_{8=kn zT)z3XP5GJ2(G&SIrzG0#5$(tJBW6G{d`&A?N5L)iTSs0@!bd|t&=n_>T3GQ^KRNLm z8|C4Nb*+|ulA&0?{q-(^QHBlR+C#H=KIDd4x8GWU3sBqfqVzxieUn$XL$@^O)I3&6 zn3h`*u+)q-Wxr;HrOPcTt2Y!CGnWTkVK`ogDrQwN;GQY1VvzGra(->1_<>S+s%8P> zm$mxjW-ZNH;@uJfwQj(`k%xU&ftlEisptjf&Cx-xGN5OIO|0n)i-Pr8uyl-4#Vxcp zP^)P5Lk2S^xdu(3?F0PF5NRcqqt!q1tjnFHKrsVy>{YK9d-ipYJ^b`($d(CG+LL}a zzyv-;bwGSahW7S|@XM(3i|}8aKPeRS4_ZI~05<=rlK#Isf8B6JJ|1(SgX;^&-%ds3VEGLCE4gjShfb4gvXxElR6@@=aNORA)C3}wHD z-kyYm9VqZmq@gv#=AxVEyIG!Jm7N*+ei|xB=GZzxdOMw3;NjCb)ed;@=EglZX8lo> zSD?xiyEZ5DPJuf$L^RXM?w3F-yHAQ*Vm~rWPGgAfO7Caq$#)pn?xD25%})ZyzS}v> zJ3*^7yxZT$O5Ygt@N|iu$08TfON0o(yO!M-yAM-_8$O2zYFG$I$645fu)>L4vYGdc zb;Z>XVCDJxcZlbRNL-=>?LB~8V@viA?Y=1_W4OfjfooDWKIiOkW9pA^K{U~(QpVqy z$;NmC*J8*Z%j$?+t1ZTer;!4?-~~%@_y|&w4skh-xKsqvi7+OM&?qGPGX4fKLkyQm z^^cmC$by8%g#>}d%A-#z@u(hMP!sy@-_&iO3B#J(joP^GN&ES3QGVAaNhAqRKcghI z5d-zwCnm;#W6m$6NWC$b`f2!yB=powFGIL~Mx3bwsJboER1SKo7FfgfC=TVN8O9OD z`dp(lbqIQD7jx?mHDI485FQr5Z;=0*kv|%tKiY#9TKZiW*xpBYL7#blnAiO41-#rF zH;yctE1f#v+jVDflqzfw?)hJ!1^XY+f5j`as4|5<1OR|78UO(9{{pZ7otIk;!W-EQ z<(G7gG%KJV&_asfL>zykgxbtMR56kNJT-opcplOE$dm~NYC?8B2(_iWhhIT!POt%2 zxn{*OAn~6h6fOu&u8LKUNX=%YO84F3-ORKpTb2at z02ChWu-JBbSX}2l1KXp0IXqm{w*vz2!6?~7xP2bwaM9!Y5}|h~d>q7&H397S&|Jj5 zI{_>t5A_%V8|u`~$m5m*H^CSK11o+u!I%Sw?6|{X3;-;O!p#IBx#RIcvVB>wmt^~Y zZkp|7AzU=u76-H7ZlfV{QrKa~?}6;?e=?!x54&v5N?X?c2f^HXuVbaDrw+vu2u>l zmiUMZg)cn=>e5jZD7m50k6H#JIOhfC)JV>g`o(RWZWP?)12(_>hyBK?%3zxVODKc-Y>zc9PGp zpdKxv+`xjK!UNsQBk{N^-#iQYf2;Q7r+2ZSc1c~n9cp!NFJMQ?Q&(H)Fi;wGH;VG} zXyGdt4j__XOriwyYjt8IFv0Ft%6C;#!ku0bLwXs`M{7pDR~9lVp;!8TeSIQPqtD^& zm1|uU>Wk>H<}wkzv^1Nv3*w(I^7U>?^q8m{zUuQPT$#uFVGY3%1Q=88t?u;AK0@_- z%O+rs{@U)k1I}mJ7YGtqHOXeC-6ZHHDTkWQ;+JLM_5%o}LiehRcPv7V^w)#u7vxwv zY6H+?`&upNT+GOJYbD2AC2TtG0oGdLcV^N~jpiv?Z{=Ja4DxH5Tb&(FI#y4ksk5o8 zEieID$kW&Yeqw~!D~2sU2btQpRf-@;Bor;HI#9`hAQi#I1~@D*AV00Q#$+mJy>z#w z54)50#MpWz`GtGNL zL+g#})(7eJq8;*LlTls$ufb9H2IDdwtv8e!u=omOgE!M8H_f*9ph29GW7v?3u=_)zd28v3_e0ZMTaK@!rcK z{SNjhe}n!g(^)muI_~*U>LTxU+J^(-?4p!uY3)CluHnif2^;##kKr2> zvC$mx_FO9(S>0@w1gX>Au6Yg>A2;@lG&H@HpyNEky{f9(wUXYlahzJ$T_!BDwK%%z za>BA|CPowmcb-4?vDOv_$Cr?$V0R`b6KrEFw#kAEHR)?vihEM6#vV0i85& zb+{@|(+yLn$)=deq;?gh2u=8(S+_sBAd6%u>@v%Ob5&N-7w$7XLKv5`Tq7h4gOX(-62)h!ljO zCSa?b7hTRJv}iV3BSo$AmxU?7K$5eTj#v~v0tl)ma#sqqlTDzIb=MeB*u!sbKHR( z5sII&EnqE@){>0y+a8b~S@Fbr*Oc`8P4eg6U~Tsxka+^RNBp<0C|L6`(a&C@*)kC8 z%mM=0pswtxI6!!kDdU|Wn&OWJRe!?{1>X~iXHq4GXsxk;`*NDqqRCt3gL#Fm zx4R@z7Ednxr6AUY)ieL^%UuKUz=R^0gLF`X{CI;u`%1m%DuTXW+^*ldnrv3|(272x zB9)JDNrGhjBDx??&doZYkRUb~<3!d2vEL@6VJ}w4^;+y)!+M3xh|Ru3*mghCDLU&I zxReyibYF7Fn_VU!J)M>xI@tu(l2=P*vpPOTb&!?PWNTVKDy7NB+d5suIs?Vo565op zK^IbyXE&TJ;Z^4&+rBReB!Y@3!KS{aOXMC*Z- zDZZo~$xQ&TYYSRL&~rC8^HnK*3{rdN{0Z4T&Y(2lgI5l=V?z-f5y-a+9?Cn{khh$^ ze*O$Y&bD?!24BrYKVgn3B3rIqS)w}p?$`s3`}wxykE9)~sy@u8HO=ez#sZ;j3jwY1 z>=q{*BX4>dyJ85}OO&0;>!yJL??f{$SSAlUWOUD9$Y(Wl>ZU&3K8^Sw*GMcOdsqEPT$D-VyV8-KnQLi&qdN4R=0d-maA_V&1Lnq!nVD^AKIA_SWvuEN zoP|{4Owc_i2I2|#24N?ArB9+@CpoZjIq(j(z`wDG(!Asj*ii@~?+98yAz8;167>Ej zV-5NH9iJ5x03ZVn0D$uU)mT$Bv9WVD5it6HqJI2$2foyAO19~ zRO~-Ulkeh!LZp=$p}{*ul?lz#JRTf{8L8pZ>Xxh}R<6Vr6;PMXn!@fo`56BMTRSC_O z)54%il_~IPj)U{=bDz`s7VLxep}{p8o~b@bWzv14n#(zb~Zn-9rM#^@PI4=3TAJOhGvCzfSUQki#-YKUr| z?tar!7K>43iD@uVb>#Dg=F72BDZ*6A((~*m{MgC~Neif`?v_3$g@MF+xrU(2u*1}J za$Pb#e5HPacVpd^M2CDeWZq4S4kDSQfr`_hLQ98|4VsIr(`zQkyoMV)k5Xj9kNF5ftAXiYxa z4`VIGJ8+&PI3EWLr0c%NWb@?!)p`sMq-VXDpw>)3vT(iH0PnTh`Q^G?$P+O}xjuFt zMSJWViu8VUpc6HzLv9d9xju9mO17Z%C=7_+Ar*$6)OsuQU^5XA2T#s*HhL^sVNpZH zz(T$@X+~l_58W?8){GnTB^*I2xHY^M6nJj zS*neZNLIAg339bP*8Gang!1gdQUZh2`~&fepqD~(^8Be`>CjEErjGe=R72gBLsBq~ zNregz5Icbs4ym4S!@OlyZsR!X8YctgPGTxLCkIMQ%+d;SiO{`m!S7MJhxcgZ`|sJ8 z`PL+ught(b8KR58yM!V`!gaCln&gq}=S?So1b(#bVnw=Y`i+J|s-$&@Mr99*DO@%E zmb9F*UHMQH^IxPG7-n3Ey&&Y<-ndS&a=l=>?kyE8)C0IX4b>C-thp5|Gz9Q3R0QLN zXQrFFAt_?F{Dfn4Z}u3}%0XAku^i>sFZ-I0U_jD@EA8F(m#wKASe~dzgapHw_<$)zyU~x-ir9|d{mUeNx9;Rd^ z3TFYbUQ>v*>?kLr-x`rxSfhB~#Hmnf6hkmX&{q$xP0l*w0UnlD|7P# zJ*uD8-J-cFTg6qngABd;0+%T`^TRV4sr7B2G}pB>oN^gv4)8^_Z_sI_M>_oADQDt4 z_Au|Wf{K+yX3$+Mc(;@?T6!`7|IX)2OLEh@g%fynoXxJ(0JiL z;)Rs)q;&CiRe%^}hYzMKB)d9ur*~GyEq&rNI-M%mA3d?Y+A9kkm9fTkMO;;!g;RZz zMgD6Gbyb|5{%nx3wP=lh_ko&a80DnQ&&V~X0k7|Q5#r!9NK9OHkm~9E!@b% zEd+=yXZ+^t-jlhk^i9rw=>HK9%ep3;O#1PUW~(Ce!ePNnRZ>2Ej*zDF`h!R0Tpg25 zE6?-5cLL%a(C_zOm!mZ!hN2~)e?$lX0OtSUawKoyXk=n-;rSmke>o~P|6-)`r46Qr zfP%22L5{33gn?*mHuotg328QGZWV{8R=Juv#Y~;J9o>Op{{{aW=_l{Wfp_9Q z3-id@Pi#thmh0rGoBOrxWcT}f7S{(ry&pzgtH0ZSL)=N9hwnfpar*|{JvXYu%Bz1P zgo@Yj(GVcQdfVWT*Fv(2Tkk$@m@xtw)g2%PiVHP-$B~Of1L16D$_irW(N_qpC^Dub zhiR(;g4L)^G$+5%W@4iR3cD3HtKNJR4EQ8+p#r#9@ol`}n@_D#r*$>?Leyd{7JGN% z(?(mwg0WtC`du9;G6|hr4Q_23tMsM}uUKEX?1JxB&-(YNB@xYR^HTWbsD=>GDTf6g z_xrK7zs42o9LT(jvvY)It)w)mCXD0Bh0$(r5pnOp2Ia|wE zvrK`aNL^h+PuI`%ka85bbn9SzxQrbAeR}we9MV|sOc_XH&*6H$64+5MNwq$XsjnXi zNv^^4P-=Bmfw3W=4tNx<>O9wKvWi`|WnW~ns9452;~f*&F{|b5eRR0(eRdei+fK01 zdJt6RO54ncHvSZ-!E&)mQ*NqjG8Vc#iCB9ON8#>q6xcNC28lm<&XrLgQ0;>-_o0>6 zt);1JqIYCa`i#R_V+V%pFx6VImr1oV)sXn zOp*o6WoGGGPIr*Eq}X|K;uZfzteD zqBqc8LK3YuA==6ek5oLf20;3dvj#%?AZF-T5246?e)t4 zn*NwT6}?s!{gR$4+94Pv#_sq8!+I^e6GD(p;=NYsjlwvh7DUi7uiD633KOAul>Fi^ za+`CFTYLeFOfJT!X`T@I^a4kZ)Go1yqx#78(1YK<@kmjA*!7MB0|4|w0sv6`H&H{v z*51YW|8Pu@qB7-(C4$UDGl40A%U7sRHY!og4!as89DLs@QJ<5}?wYNS0mjv>sYoQp z2*-el@x_%7xefpVr7ABU;t)^;PE~FQB=P`u|3|*sV>=f^B9#QBDLwZ#NWuq0u@wZAOyK_7G&F zdXmHn(sl%XEDBOr@t#p=S{*T^@^(6kCiH#Krgxx;lTB(P+sMk)BJd!dq2y{6tI$1y z%iE)hniAS)cet|XVk6t$T$Q;jMfz6RX28Dk?ipsP` z(zVkP)kWa%&?w*>RL;S9?hDh^_H4vj)gbja2ZE95&LX7Z;(X2QQmi|{^rqmnW@`gA zYYs<~whQ_?CW4G*>8Z9px_B$4ObvaoX?0<|fK{n_HKvCF-BUMhv7Tzc71j3Y@%mqM z$5ocaB55_29&&3?ms#czo}wp75lEamk**9H_15u6M~*IH=qZHSQU<@A=VjaCQnIuA z!5pjZ>&EsCuMh+43QNvR0V=lUNKrmp`z)+Mgx6#XO;|VPDdNc^7)jl~xjN0$BbBvM zSX6@#Gr5wkjSMdOJ35_VEZurKN##g4A_;^T1Ovn3Dm*<)6R{sW?erz`L04qfZKReW zGxQszUshmavFOMZVa3QaXjzn%qDoXeebk>;> zGEVqtj^M|Zvj-rcKx8ZPCq9ywlTV87vutv|K`Rs{qs!urn>*$ce0cu0lC#U?bypgJ zlb$pzEjdRns!6`}3QZ2Bi%%#`llH9^;7{()XfN4$KcfVj6e{SaG)o+i_dUuqn@5YQ!I{z#);}=Lx~sB>Tz0%1TCX;`0-1do1%hPv*=C6q7(5GOG2%wa+hw!b2)yyDUqXy4AoT zOA5fN_=))BQ!4dyP$A|{?~Fv?zR{%eLL*1`vvv#*_@ExuXx@(}ZiDs^t%nH%7Fq$I ziT$2}{azCUq%^#K4WPrG{tz_#(chDCH!ovAnL$VKE*jlqOWl{W$(MgP$AjJD6056S zxZbk}5m<3^^O{a)vptf@>+REPq>`PB`43VFb9pp#mDG~$`KzIlk9t*5*hDx&*1}ueuC=Op}#}~>-Ph?zb zRx0c}9fZ3tif)qxKvFbg%=qFw+xFt?+vNk$E;8Kj?=J`-3bob~2_V|6B}0d7O{b)x zz7YGg95l-=uohG7QhL}Ay&Xq_p-4I1RADr3zaC~O9XpAdK!aF9)f`{1WGXh@jtcL1 zm9voZsC^Rkckbh=&!P#P)Lu_)YFX5d1v-h<`@0yzX^-PmcL^#h-g8Hux9pUfOla=O z4K0GsmIPh<+h3lcIM&&M^}2LFdkgD1l)Gc86$d&Ay#f+c1Zd#6$EN10_M>CTJ+nHFZbQhcjQ{{(Mg{;t^nWtYf3QrC z29&q*O2%J5rlbz0q%1Ik2x&xq;sE1B`bb0;d`!W3aqx6t_~IBL#?XZc>FkXAdmWLh zuOEP|nwJU7B~)z;epS`C0>mcMhR#ydEdy{!J!rU_b7AF-!M%mhUB)zd|s5ibH;t2Wz;ne@jCDst$pL zyuL?cWrdTq@m`P-4X4jgISdy#lQ7%_2N)!$!EG^Ru zA=M$C`H;k77E2~szEmrm%{Wg`$4#d$txRE$*oSVq*K&5NCUpu@CwN$<*GcqzZs!|6 zQT&REun&>QM7C)3pbJvZ58n+)x~xiaD8cZ`%q|)ifK{DXw~TODwu-~hShA}@cx%th zDh+*DcBzsq8Oo%#9|OYCCY4y?>-A}u_i7&}uxgY_bdgShY&I^)yVIj1o#!No)34&f z4j&D)li~oH**P<_!XvMLZPKD9yXc^-quz%BB@p=85u!#y)1V@^h!H&q<0q=)fyaUB zGzL2J;PhN|etLdwb#bn}y0y?;ogW&GnfUP7{8Y$IZGCP6vz!)sUfgZ9w;BzeJw9;v zSgpP^D^*K6E%p_b1r259uKeWeSgpMv5azf7A|g)~n(K9xHuVV6MD{anBSpuBB2@)) zRczX;=}Xa5rzeysf35OYv$@Zh(=);sTh<=D)-25P)6?GT=H^{DAGF%DclwA>qiZ9? zz`TLD5pxm|6+uikMZDtNt|x?pw2wX4@*C5m!oYkMIs9#07}r;KkYnly3Yr3n;NP1? zaM6tLST`p`etiQ)Dt3Ge4J8a1Hjkc7=lZ=$oY2*fggr}?Cr(zU1YeOO9WRsCrC~dX z_X&)LxdMrOJ=d3?z>5U#5({esHu4FeImi!`b;gI+#S0Hv?rJ#~w}w&J+NkJpdj~6Q z$mgSHJiLQ|6+;pjikAFRA9VmRShCyXpJYo3;68N&rI|_tCCzAe?B>^Q4(>eoJEqOi zQz~5!2ZE%*PE%($j^aYAr~y!mDaP<83wNz9wfRf$(a$kti*K=&}e74g&Y1k z_|US9C4nBLVU5jNF(3mRTDymn-cX~9(8YYxC-rJuTW&-KByI|YgGs#Tm8}Lv45Ps7zdvwB_S{U@wp~X?^fuEhZ5LPaS zooFvWxH4iF!oddj1X|fFDk)0il38OSlcN0) zj%}-RCKIK2B(hF550{dqrDo?AetabIW- z)bRQ4f{ZJQg4{TexhH0lk9W9uG&5;Qn}=GHKvZ%o zJYd46@QusBi7BGnZtdCg^;IPEw?E%>J${if;${je)vQaXP_IkBgE3GB`{GG^KU<~eF=rl|^z6N@@jd9-D z8#Zt4M3K8vD(<=Q^L%ma#yF>ZKNFl=bSSwOak{OSj(#aW!4(Z!b0z}B-Gozzb=;)W zI$5Sun>NekBiUOs&G$QpR!!W$MLvy&G2aO9wP|O%#e&+aNuc1RRE83Vvp44M++D)F z*Y3d11tYPB^LFTmQ+Mc!b9a=h5@QAeFvq|FrSJ5%*SSM;uoD`JN0%qW{ker!0b}6= zGlIgQcdm$}Rthk#5&LAkqceKaQ>T>zELmFIlXF)EbyF6^IE-HPOxmFtf|}&0rBj=1 z?P-%~A#YVgF%9cj)OQxi3BRM;n$~SR zr*oUc?aDE3JF7(}7rcNRV%6+#>-c_Pav;GJ#T&)?HXYpgV?KBF1W_k9Wn4^9rAGP2 zlPtu_<}*pBt7WIMA|19_LZL&hQCYmloiPXmapAUyXz#GW^Xk>u&0ub}j~V$c19#$j z#l(@uHfT15_04B&?(QthPVv;VXIkB%P9~cLS(mmEk{US;|4Dl*A4$5UeH-ZE4l{$D zGr|$W?_%Pu3->=EJT=@7oTRm~mRHQ-5M}@aRx}j(Pl}aE-Hq!d^y`Hwu$c z7J;R*;Au>D2%TDA#VtmKwK6?o_(;&DCliWWDMlk!FISy!V`Y+><7QEKSd$Doc<9WO z{L#elEPRreiO=uir`PL{?BhLZsdjeQAa8NMePbwLjRpkUw55crN7(C8Q1GFl$YuRZM0b@2x{}hjzFfW#ft9VuP$pxzgxymdm`?f z=O_mSWj=89zJ7|*)p+8{S6_YWRfM@;W6_(R07*c$zcOWmx2G$# zFIi$zv;5p4GLWt16%Sf-$T_wL@~oCtmu122l66Oy7u(*?8a5Pj`YP%<9|R$x(7{JY z+?kWHS<}+fnT*?|li``*v*mLEoyqzwk){r%Vbe1DH&!FQDzF1fKD;jr9@3^y`da|De!i#qby>Z4pdO?gU#ZJ1V zpUy`UsyptDT5P%2>oH_ru8%wV_dDZm`=r~`A7<=cA#yQu9=$>EdPjfOy=B1k-&pYc zhtv+({Q>jZ_5rea>z)9be~O!rP-D&dM;fqTs{^pC6r!aVaCnj%(V7;*IID+hiq$P{ zV|ChPey(RXZbDNnUo|Fem`vT|9lIF1k{Y?9H*}JF`_p%1K62W_oOTYovpm^pVs1|` zv8-by@%Zv0OZ(p#t-qiFNotqWx2?mCZ58z+h$|ze2dwkPx#N>E+VZidV3PK-}) zCLD!Wn^+S#5`#9De;8_cVs}!3i&jZ}^$=^x=KI6GV2~@v7RcmB%FbY<)#8T8k#`T7 z$8_1RjV#JkF+ula*KYBv-3(E6>izFBj(%1jyr2)RQ&P|>i1Ngv;%meP)`59kPnZGk zf;iH1kYeoJU`^XPEi+M*@#Mka)^vR#JS|p~?7uMK3e597seB;iK4A;oU6!)Q<9)>B z8z1l`yRs6~S1<256Un)vF9KHq?FI~9fCg}Zm#YQc&8nj*&t1xT<5;{{>b~Gj@kTFPt=GK{oo2!q z#BhorZuYw6l51gw)?UiIl;tb$y)nE#P)4ugV*F)8$|U{*UZ9Ao4k&p; zn_%jG1M9-*Ez*}BOpPrR9#DO|VK>F3)Me`fx+G4j`!dLYdqZdWBJA-=8~s)xC#N|> zF~K>CoWS=vI)5nHFD#f9ck9-4@2;4;=hSAXva&^NuF0Eea#JNtNNRQ?i8w;^^g^mE zhG;ZmmQ7(YPnCqePgZ-IJBNw|cot61>qh$ZH5j zoU*Xu41V{p+eTm$$zOGGFgLSj?gdv>c+qLk2$#*3;d?ZXSlBI4Hbb5*sbA8R&!e_> zV)oP$k1s4=x^_n{Y4YgC?Oa{HcrM@0Z0}S7=D91kTkVQu=eYMY3_5^Ay&k$wv9l%i zwP%5$;s)gXaWHjjYMhfsL9`R(3*@BDUAasr9u|}eClv}OMx`9?i*0(#pT44B?Y>>J zcSSry2kRTMQHiJ7oL65J+?bU)?EbOn_xtl?kxRq;7eL4ko~03miA1jih_IXMc_(T(QzyPH$IAc?$c4-ng!(9r-E=nDSgdYROJXnGyiJC5QR1)E^33wR?B)45CI4B7u0 zeF(MN5;Q4!pZqO|VasYTs_E=~B^8$H=^L#*3vindIR#IQB}f=MufOPEP8iiMJTPvb zGZbU^fI<1*=rU>VU0L*W?Y=XGZZ99+*0zNYD&vgGxb=1<2~`+34>+N8NFU3%RO)b8 zGEIPmY4HS+DMB}1GAEl(x`w1A+<4-1~{*n!c`;q+yy^$zF3f z`NN&|`Z+&4l3V7QTZki<#5I@5HdhR1$+D^2zvYpTbt>;(UH!eD5R=Xu#w+nQLCjH_eh-RT=d>C~m1&HL1_Zz-y87>ioi zY270ow}b+QZYW*D_gI=lZYhp3Bt6>>GsLwof!rokY%WAK*D+^y`V9ir;@ye}$9F~@ zk1GI^ow++@GLEkD_`EgoaE-$Y>rQ=V7=1(mkVe6`+9Q&N|AnCWZUk_u?n!Zl{$y=M z#$>80>3n^k%F1FgePcTQ30d~oiup;4Jf+Skw0j2LC#>`r^lE|4A=Nu7-+hgK=i)eH z!qadSRx-X8N$MV^$fxDeq@v<_EIqVOA!U11ZjTv!=Q2!5D&eamXR~xeQP|`S#V8eZ z*V(l#4r9ZogC`c*|q6dhFABn`OGUg`7Y8o}t9RZB;^L9sEsjF`Y zdy_scyhV;5vAvPCv|k`By+v|G)eWO+P4NYrT~njSpHrjKBv~bzHXi`6A28XE1kNAf z1`iBAF9@fT4b6U$8%EzeJ_XQPVSep5Na@v%~Wqzl7 zea?&x6b5~E5M0wZDTFa%^`1qL`$6ZYMly(2Dn}W^C6!n*g<)~K#Gi@kX$@fnjWYRL z*6FrQMU$uf*jj&1x3cdYc#O(KzpD_ml8hh9|60@=d&J6_w1;q8`IO$;;dirN-LwiKud7ekh>$m@nRM}x5Qcgj-C$~ogIU-HVe%=RK_(+NTQ-+v?cm~}))QuzY_kOT+-!12G$*8G2D z+5Zn2t+SoI=s%Cl9PM0ejYX{u%$)vHmx8>G6rcbykJ3e{MaE_r#7fZnI`8|r6e(t4 z{w>LaUCb+ru zIFD$31`*mtIS}+LtT6k-#-`M}4^3iL8=V~?hB1*qhbd_>6thfe*nT_8(mJ;?eCh|W zg&`&#lQ8eF`E#Xf^7^s&}nglbjOff=S5tEYBCh$K13ecl=3 z6S~KjBe=%nF|{- z6V$Jpp*zCDX|806c-ev3=EF;HG^okkhAm^qjFM~6uE|w%0!*z@k0eB=A6RIFjgUzuiE75)O`|{?XUOsb z^Iwg32INa_`;XyZfB^tV{?EqyPiaskDJ3KU_+QhedU(KLd^&_bFz|(qguC_CgYoB( z#LBKRDY}YD#?et(JIlP}bf0|Oo`=z3)sOpd_hJ=1SP5b!kwdb4r&qUiUS7UGzYj?L zq`AZl;a)@Ih8z(n)t2KD9i;?y2fRbU7@j+cXHl(pBDPh>_pbf%jM{4NAYotu@ue0v zYBik}7$G}s(9`DwQK>E0b4`vOSvHb<2@Hw62k> zt_LO1O6Z_@o3%K+M&ie-me7_1RuG{NJXOaM&(xt4z4)O4 zZaoGunFMye>t{RZ387%n8KeGnSTdn6jd_Ibgo45IC8AtGC+15}@#$${F=`q{|Zy-TY1 zP|Vi$JLy~B$d6su0}j|WfZOZS^VZHgZIN#rms`7o|DFdM?BiEFnv^}+T+dWYR}c8% z7j?&2%+U95K(Lp`eb{$<9NwGMJ3`#|dK8hnKM9|~Js8F{!7cCfPF^EV-2IWl?Qb*~ zuG5i&FCW2y1Y7Rm>5}d@cHcfm-|=l7@pmRyU&6iCssj<9?^xnq*8>=YAM$%rk;=~^osZPU-=FAvk6d*3l=Ck?={9Tb@6BVEOIB^A{jOF^m844j2 zn}lfq51t0D1XV9F#jOYx6RxJqtJ&d{V^NZ<{a%V{2}+`iclZyz?di!_Va@^?1n_9H zMN!2f7?SbJRi)-xrgF=W@NziT7(65v3l*I4mx_yk+=Sv(bW@`d)BuPGg~3Z+nFzh@ zBIqn!m4whjIu{a7(GXJ^?xamw;)^b{oe~q2fYbf;_IenG(*6?6C~u=RaQ5VYKLHXC z3D&9Dlo16JS~sO?Sx8+g&-tvvwWH%JI1$Z>)Eb&vy+K`JF*?cd$m))Xsav4DUP#S< z>KRhXR7t0CoQ)HYi^Fn3x~L{pH!&wujxDlhBTF;Qy6UeSWtAE;DTu@IiDaiMG(BL| zF|g?%vM&SdEkF;u^{P`!D*Dorl2PCo;_?C5XS60CNPo{JB(uk`DtO z6t@J^rUMX565J=SZ)9ezHuyLHtZ`{ED(pik*?wesTWBH$Ya6eb$y;w3^GYuhJNSftox& zHdnMR5h7q%xwp@{wkM6P8MZ{D-OFM89drULi{hP z?)`mPu#byYd$6mtg8a&yXi=(-sFIL97)KfO z=%kTU^OJjH#gTLmRzp;2j2CH%rjqDN$0uEcp{H~iZ--P{!ZCCTnP?C1*#5&g8S|=b zd#;TV^PGmzJjz{{{de#aRskE24kE5bqI6va(OFJuq#@N3-bDVUL@VGFB{A;md^N`iJ@3Wl-OTmdP?Ly-_o28OAtIsFq>bGpe$#^_9`aJI5yT6Tqa z&91FV*_avruLxL;J)_!&&iHG|-utgC?(&^#ZK+h`WQXhPx@tgT>H?Z0OY2G~I+lh9 z;(E@~GV)$PG~yie9j?k^W|SdoA-YoYGjUY^k@r*ziVt8_;L!|^fsYwb?ON`x+Ovm?o*n@G56C6dykqEwsgNy;gn)!`(?gHa4Cv&E&9-c_ZXJ)TK zCH2Z5#j~X*S%OTNk%A+_WIX%n!nzM|fQVgX8TqQfD!?C^w~*gbC=|dQ&#tgvFR_=k z=*v2qi#j0y-0CsVMC)Tb)%|?b{SGXYtSq>}2EDx2h}@LV{wnsk+(rh7ESaS8V}?Jk zNcGw(!CPJ`mTZ@Ia__HBBBboEro;W*+hWjyT!HS7pqNKX`up1nuP&Hk z?evB`9e@Zp%&$!pPx%1#n(9)uz!+LIu>JEkT{@ZjX_Pd@Zaj51|0T%Xh^8)5#aYa1 z;d8tVT%7B(J*MAgC5%mvz<4dJw1Z8#?4{?)j5aRCm^8f>3gBhV_=w?_?L=`*kMNF% za?2@6Xc-ORIy2vnaCAD0BA9oAFqeQQk71mEFYo)fo@eX&R}2fI5LZfB3bR;_2umX+ z(W@=zi%5@pGk`>e;N=kd(-h(c6(V3T0CkN>Ym=BBkUC)6B9$5Sfgi?$AMh>&l8I2o zM!I(6pI&(}Ea`7-N71z7q6rr8pbxLC%ho^+OXvdG)$HBrk;WECfwwvJW(5Pu&&XS? zvB4o5xb?G8%8qQ1I9xKmDBGJz$mxD_OHf_ln4D1zpT4%@26Vm9-z{j!_BDmD-VA!d zYoA*}v_G0}3J)b|;`~8_d(R1*uckY0h{uhW)%mdgrBR>`6m#yULp4fO56oAW9HtrS zC`6hP5oWWFDA3Qx{s^-==HE-9k zXVS4Ja!Wj+iI$@mgP0SveccZ}kzFo^<%){w>P@n{~;CC9J55AkOXhVRj)` zM-x!ZWd@@#wfZc5b$Rb@tG2;2U6{vi}L+z z061E6)bUhU{y z?38FM%*C79LZBw3!Th~&f*3#cptA#6=CBTlYA`jG;5$37LNg)%jGU(GwjAMX@fBo; z_d?J4`2qG{fJ!Y~|FR5ax?MYP(s`NgVB5nIW3?%SAJ(QvKcbQrlg}K4MJy4mEDJq+ zT;UdXaF;`a#uo%hnmEH;_vqM{BWD!u0F*tF0)2IC&>+Keiw|}z^I~H%eJ*df-+z8F@ zS9~ys(RX@c2iq+!xNG|z;+A$$x0s_vPOuM4rM&?CZC{tRDX(vLOz$r30l?2gepHAN zH}wJB@2es@Z{nSU3@^pO-{`O4AYBJnoWqZv!))EoJB%;Yfg2<4*)*9k_r)kR_sEBw zQ-ql@_f+28#CuQlnMrrQ+h-vb-GK>&Uwnh;D3$Fug5O~^-_$#lU+-j}ZqkDqL>*Ij zK`Ih@_dv`gDGR(pQBMFZQGu9O7P_RS(L!;7Xv~TwaR~$ROG_|}Pm-;*0Xmj)(N0AA zE{^=sLq9-Xa&hl#d4UK_=mSQA{j@PiH3}l;&RV4?p|ME_Ca=s5iS-^Zj;L#to zm`iJU+bWh-ncW!JONAPyl{Q_e;N=&D7(7YpYEjiHh@8GHX^k1+@_LQ9%Te#p$OCK* zne$Q59B-TVJ8#N`q|?iOjmQ=kvLpdpF4U3}+923kp_nXL3HPDJ{G%xIQd}D`IoD#s zP~18DV%-^Vn+PP9($-muJ?TF-Oc_j=l%tBzItgKI zDfgrWc?C+tg*v0CxHlXvLx6B#YrC^UvxCnTC2_KOuAzXG z#lUWAQLaj=i>TGhCgfE$Q&IxBg|1|-0k}7-tW4390L`O{uYVFy*c!Gzm3a^&6(p8d za}JSDqvfsEAxl3R$+25gI~A|kEDZvwOVYL(Utk|Wp zSb7EE$bfbrUZ8U|0!CN`z@w+roSJ9T8-iJPc3L^AM{2yY)6DpG(du(<<%^zk%3YO7 zvdx3ZIT2jZyT8 z_{bsbnBL>Ml5BCsx zRqi=vmC4i4huRGwvpW3;fwRl-Lu4S495M&BtNlO4Wroca)d`Z=cc$#p0x?_YW}V7S zG4m6BB56{RKBzf$*k0uFwnFlz~t59jItY9dtv9aVx zO6wt2C+Oe&sx3ON%PB-VeHPLMyo#GvSS@&SQ`A!esn&r*WQ>#0 z0mX{B)Yl=iroADv21^;Io#$ij2k~SxJp1<}XxqMO$=Dbw40G-Dq8_k@Gy#y_6!H!hF?|P-yj?(tl>yq{3Q=d7BcH#iWZEgHU&AaS%vYZ|bXn z7*6`1yrPdH|;WqM!^+6G7Hm|Mo50xTd zi4P3YSG35Zwwp6roHXfk+s-mF#gbzN9jycNZbUb4b1pLC@vD|Qhh);s@Wy+Jp*0?| zlncPC2;npG0b5sh9<(LB9TiRo$h-)@bCZQxFU?M7Yvc5vIe9AbCB?mAEf?QJ6cL-a zXprK`6tzAp$S%e{=~Z<6E#NWi6tXyz<9AltIALS&Ygxf9HI1|Heu5UyIDj4{Kgq;t zWhNwRCO~Mqf2W^TBC+G-vK>~&SQygoHiv`Rc*4Hl#4*Y!+BC*7{taj60n@tL12br&cqLgvrU5@Yni8f;h3_@YDlAw5UH|7xJY|WE=XHBfX??sg zfj#8UYi~lEP#JttuY)~gLD~}Q@U+2F?cgGVBjhNw0wMMkrQm59tD~CX@(sB36t-!k zOu-8_TPrqQynlDdrHk0lX$ZQCS_K|rPlr{-Yjf-)y2M49YdSl+?Qx6`KB=jAw<4n- z=BN8#=d~Dyh02rXsc4T)*^H-WNl0)b5$z&u(yebMBQ|C<7^oT^F!Dg2_(kF19LtEn zVNO`bt(owT+d&Q{c-nudeK?Bbm|AQ6qHlt;uDqm{?oSE16GQfA@r9XiyP?s3fCNbg z)0roOUcl@F`C=MyVBn0lRiiE4!H+&K+`eR|t=*Af+zJMdIv_@1e#(h=gMZ33yWo&G z&6vYs-t-BD_(*5OjU4NJ-A>m{lfd9{!?fH1i-O4%NV!8K4=kk7as_hksZAl~407+e zHG|RS3A)2m2B}K-d>?B-O2P?b#ZA=xmlEjXxQ*{dWX5u)u|Lei^9(t0I)IC=@lArV z{(9E8PAUQma76t=IBB2MMsU@a^=`Ysc>|szC!@J%wiONE1oJO(mbc8ej1IMffL*>~KetK2%~NS2bVISn$; zZs7K{rB3PW8*=gajodwyD2Peg@`+V8txvrf4|YK7LY`GAyVWU>>y^p(23Q`*EJN8H zs2|ucL*3~|+|vpUdWl2a9Z??uX;XQJ+YE}W(|Sj917$ilngPDvdxg zN2;XL$o2y|D5~;ZPB{1AddCnNlaPtDPF@wDeZH94op^USvEjK=jeIAJX6pb+IXz_^ zsWS@vWMNm6ftkez#oR|RH4Sc9bB*pK>{nv4Y+A>h9RZGoI%;D+Im(^6kA*(Q7{JH6 z@vC2l+aJ(_%fN!?#Db%lWNyj_n_60SfLmcB(9YrmUyo|@gFDtfj#8flMn96YFAHqs zRC%WsJ({#{tL{pMQ7krvQsMFc*^&vSilGC(;vkFp=;G>z>Y-WoMavm>O;V+xJZII_ zCkybPi%KgL@5U}UOesgMD>QD$TsdSZHNl%uSwOZ2sbzF(8GS8C4vnmOkl|9B!bkRj zg#(6I6K_YA9&9te*ow8C^st?@XwI~y#od^>IX;DTd_r}6QgwV{b$ojLyEk*ih;|&a zOx2$C@?o1v%@EVdoSNR78-H^}EIs?cBGdbtRQG1s*pA2hz`Gm)XYBoA@}Zgc(84&k z_E^vh*}gj+cc))t5#AP5qb{Tmb&psJ{CBQK=p9<*@4t0x3B-%@O@IObJj4E{QuqHK zMEH*+Q5SCi;u`2_rME~=Z55}Y2|=bTzCaWJZm}f*4sW)wu`D28wP0)px{%J6mUI~M z8H14rR@-*tm#aS%m@mpca(lu4Q95?-zLQxjz6m~=n%@3#yX(5^W$XL=$7P{RI7YQ|#jp9TwYoRhIiza$%fSehuW7}-lhLs{Nj_y>1xurAz zv9*tzWV;QQltfW$>vF)rmU-Wf zW#TS4n1q;X7(dima;chEIjo`--)RYoBuQCPO3XbYZ$MQoX9ZEvK;K-`M@Nqg?d%dl zlojd;G(Zy|LlBx-t25btC`bMo&S#mC$-5{qDj+1M5orrU9??8Ge{Rl=9Qz#h>FJ4K zSvCbU@O#hS?iX(m(S&cO(Z+#&b9aG-y@`GcDFV1tP_WxOKYGs^+QIe@3g4NOzqG;7 zCx^mx5M=C=T3QkJv{q;NN;wFgM4~s8G~{Psku}ROSuIaBRNpK)cUYP~MEXrPsPrYt zcoq{wQG&rVk{BtJt`bwGDknxvcB@0&s)>$on9E{90u4wniLqMUokcBER8hPS#+;*2 zpvjJ*AW)JiK|)nwvs5UzC86k-bPr7&9~$@4R6`bv#bFvI{PN%omDNKqk-niG?+OQX zp)Zkb%-Iy*RPIvY!D(G)2$lJWKg#SJ%S&?B?T(*W%B)GMOQW*DJjyihIi<++YGx;~ z)OvJ=?qRDE$)95WQ&0;I80tY`YZhi`-bX0jEYkk9OCcY#G&IdmbfB@h35|t)xq#7o zXqX(6fHMRLW(IxRU>$kD4g@9T9_y|^WHY)PgK2kK33!In4PsI~@Pe3|wh)14+#UXt zJSW1yP(3}t)!rR+j1!xsIVi=bJ4yv@qY)LW%$dO~U1j7g$s^ad&^&H-&e1;Da%C9}o@qkPs|q>>c_CBku?bL(i};y6(Ou*v=Sx3_>ss4z2Wn zp^zBxR6KLDA5vy`nOJOM9+`PDqFs!QdQMg*&dWW`-5t*B)qJ&FEXs>LGl_YFC-b&J zR0Xb1K~Tv?B^SeBGhAkw|HGYUsB0O$CFssklijVeSy!M>F3J=wso;RnD+bYi`yN`2 zLx#`L3kS@BqsGaWb=k{oPFzbgvSk(#^W=EI6)m$~I>aEv%@u!aT?Y2Sbk>;n&tB!z^}L+9K6NDV2|e`!^gUc%rP8Z}6m^cC1%L$o&PQn8u0`;OI$Vv7Fl@xq*n z##vA}p2`WegTyvH$FP;I-P6U=)o0C9 z?y~3Lur;cq{#{dTMjE5)e6usLcHOBS{N@}WD6bq*Ku?QbO1O?Pe=0&(hkvTP%*r!Y zmmgR1T|hj$W%yw!>w&#jNuMlulGAe*Wtw4|Uv5LSKc+om_r%$AH=AWwYLnzy_jW43 zxax%)^Sr3pR2I~ULxq4`LVir5M!CI~>@0uk6PsIl7MDQyOFm5OqV_i!T+OO$n5JDN zSSN4`_;)M9F+hhuDHuSbR*W9XNDoyMYQ*WGUxv`$1N62jeGEe-kl+lRX#hK)9&F-- z0P>gfVK;vfj|O0g5u`Mu-ry!`cSvR?2!{4Z2nO|Zerh=MC1ZPMj(Zei`CE%zVF9p~oS}ot z3d3^3nP@0c`E$Zxq69U`MnpyOYGGh*(lQ1z5?>*LSv|B_h1D#=dy{foo&%V#0G{uN z>vt&ntkBpU;SNi(AV#8A-!X)Av znmZc0Ho}8KxM;J<2aLXtE@02%;*8XEwB=6|la|Dc-|4G4GT6_npQYdR(m4RB%uabRN^ z!9(+fAnf|^!Koj(rz4u9B?TU=c# zRy*%@th8#R{yyza8z)Kw`r?rs_d4D2oNYJdc^&kZy=}wkmsZ~E)7GxtE5TX6XF#*L z$A@6CY##?mx%%dYWPx;(K($T&+Td=-av7UsWzD;4Y#j`+Z)b$$Ga9cz>ymDLC1OAv%|XI z1Lr0mP{8!v=VQxF9jDoTL-wT}urYqChVD&_GBIMq7v!$oXN!M!L-(bnpb5vJnS6p} z^b(u>RVbx1Gs4wfxUURdLylF)w!B~@{EY<>@N45kj-q|R!oflVDP-^)$5WWc68c^R zi!oouQyIUteQ|qZ#%K`N4+?ZkK)4JK2Eyr`4PRJ7F^~JKuGxU>kZGY>WoBKW)vhls zaaaKaSt*ZK!h;nt5+!e)27mp$83#j-yp*-b?F%=bX_3;D)!yzbt!-$jaE%ZgD0C6c zJAlG0kky0Q2<4n`8`QrZ#&~IoLT#?q9t@IXGGbn7rM1y6*v~`)2Qhp?zBW0TLdJeM zfbA39E#x2H+uqtajcdlV5$MatwPg#OiWcWTjSvy5rs8KxCPUfVw}KP<<}E54W9yH8 z5v5-@ZO)So7z+l|Y$q`lHiTrFqQ3Do3donc=K0chN@&H;oUPnAM=d*s8!dhT+eauf z?-!IBKaX$?nTZLow7r(7UEz<*5MNb>l!aF~I9`lZw;32GpohT)U<|G{TOju;&`vbqS zx+=jZmXVMw6On%-T0R$Unq0iQO{g;Ke=Mt3xmP+3kkK5920COTO0O~aV(vA32e%SZ z!6}Eql^vq-Ns~nl=RDjgZZ;$P493~zZU|eY`E>ye+vHwfW$B)iBR_<7-GjMn>}5D* z!f_QSe^>T*Qhffj=+rq5XFM<_unII~lbj#jEXiUppYmAH08!C-F8dI?hxfHK(yZaQT z9G+zYzOtcFeXPqpuErakxM{XUTqf}+Z0`XM=kG8W=WmGL)jJ%o zF&kDyf{KT;cktgv?(=t8-qrhvSh`q6DvQlQ9jubJq4aqrSyA^3oy_0iFwGE9j=ajNXjUs0jNtAQTW=ee_yk2Y#5;Bcs zXBJVE%Sv$+E6ZweW{>}>3sQ$m#8*BEoPw$c!X;o91vRlsiO$UG z(sRqo%+jihcX>6FW%U%P`Qx{-k3-gu_EE zor4DTOG5)GOjjtz*?WHnr6l6XXK77n4FnMFiLAtcr`t(c#SQu)M*$BMPgtn(>E zG-9)jOHd9)>0NkeECyB>BcdXk6DFP`Ps3&9xiyqTNs!? zo48Mmwh|0XKS6S-V0-3OOa{RP{4U!-_muVcE1Fdri*I@fmJk{z8-Gz(l0R-YiyLk&h%V9T>?q$#5jyaWVGIayprEo zh-AV*HxXPIJN!&&#dpMaW`}#lgcw8xe^sf{BfJvXkW3FtmD3%9o)>&QV@R#6nQ;KlNgUnOnKo^>r~QN3hjwXb8vCw%}Ud7 zAT<{GFD6uzB|tqo!hMo5G8MTqjzfa(yi7gZup_9aLH2`XJ}C-rVMJ1?5vdf z>m7VA2SF|T_@NzEsVBi37IdTvghR;?L?S|ehOo~d8;VSJH#SBVjcnsDhrR+ot&q+^ zPt&nwkdfS)?Ix5KYPD?SYNe7hErqy=aAKyt=KH3bLpz5jBNhidFP{dX;b8k9KKXtK@@;FkI zK6OWWcNc}V9Yx;`MBI+7XopE@#~Is)UDn4!a^p&J0_$nb(QqaUawq$7KwBk}foE`f10G2c2%N;TDHsp?lv*)Ma9om7~c25+cVX4D-#FIeWlp5qVJ#T!BoCmgk=GXQu+ zbbNTmeKz1>&P@n|Sr^wF6=mE7&xvRvE(On-S+XW|hV2!-vL1wca7m>Cd+C5aLv&QE zvdcQ_w8x#$+JBFR-o~6=yN7{6GjEq4B85TA@awBMFx+QibSX9(Uz`}1)KiRH=l&v6 zWsBqPuGUvodm6{ab#@WKUOKZU&(dl{(Y$D}ue5ub4zqI~%uY7^*(lI|`?-Xo2Opg?F zD=4Gyiq~*(_9Uh$0rNK_e{51dv#lo`W8_>Ai)kxV*sn0535_8s%tRro*jGu zeR`Ame5Ucdw)x!0+5FMb{NU02>%)XeTQA+;lCCk;H`kWMi~yI%lZM#%5Zok9w>9A> zGidfwjh#A&+GL>4t2M$(%#i=Ez43f;5*;dwO*Kb0su8aE2qV(llTHdpv6|4tAfT&6 z?R=JTGW!bwnXHIsR2YM(EuldzmNVD1GrV4%N%c0+0$r}<;9RRGS;ED z-3r#4!sL3Oo=TwBl-5EXd-U#rY&@pWgQXX3l)9Ee&79Ps3qO`-*(^)~uNHx3DL$y2 z>qA6(-=CpH->L}fK-|HmCK16|Te-(ml`ijnI9R%Fk%Hqf8Gv{)EPOIZJd&(v`<@K8 zLW$*+PV4ebE6<@`=-8lmQXq3elrLH!7BiY*2|a5vsaqXspMh!BX+ZW z&E(UR?i!lW%pFsrgMDE9Im?!`DuQ;BVYPV9TDIA5`t5(KM%oObwlKold1a}%E+ZBl zdZZ-HsB~j!IvZx*m;(QUshwq6J!xE_vLjWm{xf5+uIT?7;BHsN=L?-|dk z9_;q7f24qaU>)cG7M%QR>Z_9TKY-+am1z?zx!Bv=IsS{=?jN*bU}*gx*;wRcq=xw6 zb81)`8hmlO$=%`MJRRUXpOireU|8P+lQ&>~5XDU)>Rz4E&>f^@}A=y|RS2L>%QF*ss$)3iK5DbRVT zLBir;#lB`Z+S=HV#fnbz8aC%zP5k0|FSIYd=p123s*E-bvJK4FxD@OEg}CxSSeUNE zx{`!EW3pxlu>nb|!af4BsHXhc@_sxDr_~$S#oMGeE44qWua)R+-@2KH^{BifV`6l? zfA~9v2md%$P=KHD8;mRXf*)R%v}cxOvU5JZ`tzp&H8K7BXY1ad!j1w{a}!+ky8*z)!@Xd>+Lv5MXjytPX9J!yAzQ)4iWH==Zx_b7C| zk#!RbYbS$j$48_fY-;(4d(Vej@2!D%?gv9OipO1!r>Y#CG6Og!@46VhcOwGd`~z@3 zOPlh1A)O~kq_9e|<{$-G3_+m)9(uR?F{=zT$ z$Uf!JVv`T_xDSWqxG8Z)khn_sNCB6*3&Mo9np!MMaT=Sq<+S;sh73E`;g%D{xybj= zt$O(TSDRHa7BmVptjmi=8KTzZD*C!&+^NmY=`Bi8v5Jk>#K=wMVTw>nUt%;wn~S!Y zo9<}|&E$%^M$jY7R?Ek)soq|joz3dQ(O3zo1MM}{BqdEQKqYdR7ZGupL7rjSn|2V? z6B{?w4o((X2u#&5fGq)mU6`(r$Zo?#!b%$^!_W8UbUZ|M&R zf9%R~>0bmK!{?7;&u6(!(M*UZnxmzWX%Hch+$fU)u^f30ggs(o??)M%X=sb13-S!w z=jub1GHk1i%&BLv7b^;B<%~rUAJD}NI7JofMLJu8bHJ$0O^H(GpQt{mwnJ~#$9lk21zgBZkk0^d<31MIgqvGHO=Sa0x_kr-7#W@i`@&@DD39c;w! zRt>!~Upz!A*4UP89I>?W5Tq_kS7x;l30_@9lOj?iyI?K%yUFI^4S}4?G=>A@g$}l9 z7z`17_`Vu&8L$y5d^LVIO%0~vn=>Q?Dtn6DU7zt8k<4pCzbj zp@JE`$(amBK_OMrKTV1}7bRUj5_uGC!cAA@Y4L6~R6KUpNlflBO#>*Q1D=>7^`~xo zKJ!;H8H~7c5VBS-c9%WcHsVKG>A5E4(l(W|3+YmU%DSFFe42DFf^s^vL#$Ui{ms@!Kso;?7@RcKsk z4|*t!NQsZ%&`C+xk-w90?S573kjk?P2du_u4)YDw{(Us)+_KBqOt&S)@asEG?&Mo> z{o$r)2{*NX^er(&?<;jd~*6w++o!N$ZnFkR~`eyW6odVaEchk+vV+g6D_a6~zJ zFOOV%09E1^W5ZDQ1g&Yc-@ZeR&ofKJeb937lNEc0+x!{KQyD{Cvs3wo?Mo}-D}N`F z2C$(n-K~^ai0bJg2C@s|IOZ2)Zq8JPV7F6T(~dy0 z(5~owQ)Q)1!A>~ZnV@+aQ7I=Ymg<-r{W^U-u8q?yxwA_o9WzH77PQ{O(_O{m9WD#) zfqUCL5$jmD0B!0hzyj_I!J;WSbOcgU&$u0hu0tWfD!`7u07tW9j6QZJv%7kXzHQ#j z5}P=m9c^;BUu^3~bZJ{miSh1(4NnQx!7>>6D8rE(QaX6>>q#NTxoqxwNZrng#%PpQ z4j0zi^bA@JgoNL<@q@uZ1}XqXK)Jtn+EXqE2`61sDNMC{x=#C1+1J$1oUGQj;MQOX zU(e+wj|G16?I|sx0i&$Vi^pjzsbczjd4c1*pT_zdpNtG0GnG~~dr-fd<-IzaKlMesyPTc7WJwPf=t%YOIe|U?frRy6D-#;J5+`e~G!_^4Ztl z0VH9!3URzY<)_bFdE4?4dDQ)NogGaTB+;|#G3v$8=E3d!9&rU$ux|Lu-PwVX@dPaR zX2`>|TS{IB{c9v;YzDz>lF>M-biCc3@(8oz9D{XcXy9ArCF~(hHZ;W;n^V~}+t%^h zIK5gQXpVhG71jhiB+3Zg`698%`49Xg_W}B zxwHpTJru>t;49e_X`K{M4OChPi?Zn4do@~cpjNh*_^^(5J5U6Bd`eE@m?!AO!V@}? zNndk^PJt_w)9tXo-)Vz=Jkh$= zVhkzq5tCoqN8hwC%-1G!#spZkk{g#!CSQL>X$M&@m8~7`S z#FqCuP5II~B);W7N{c%Fw>kXO0;TFcph6suAqg!?837@nEz$Y_(uI*LEn?-BI}Y9$ znRr=1>?d(;_N^yWtWnfp>A9*FC9&Fp670>)@RW{9m7yeWYO~`gj~AY*n#xWjeGj3Jocl-@OJ3wOklGpIHv5G)QyBJIokh1muz&8+3rS35+X9| zfTVlukeKh70?}@Pyy@I4yURO>_kyop5ZrxF@>9yTld1*B*7XfN{$H?DI(Mj(fA49J z3-Qrn0|EeW0{h=Jl^WUo-=*4gLU#YFWZTKk+SSDIzb(?}QISwW54etU*i_T9FmmE^0RoRr@q-UQV&V{&yd)Qw{QhNbVvFy<1eovyFdYl0!6d6=h zwMe}5_4w&w)APG?nS0Z_Z0UE%eXw&RfgeBK}Cmw$<#?fCJEJ~C=;m>#7%=Cg*4hM-}&V?a^ZC9 zoK?U_G~M0!{M{66N+A(+A-*J0Jo#i}p*32lOkq_(o=qI|S3;ul3>xpKDgY~lm zP{d?LYDQ+NzABU$nm`M)Dm+!w9|xsBoO0dPza+bQvg=y2vTbg@g+_(KVHRQYD68s*Uk$>3~G%RAMhbkAW2jFx(u-JJ=?TP?zo|#MH+?|FFyJUB40*(m2WSY2l zWYHH{rp0$aCp^i;1M>}uW^LtjrVt_;{O7;16%?QH&#V3;av}f#@c;L2>F)f$+A5?? z%nXb?{uhgZjDfwl-G7I7)hyg`R4{z!q?4QycUvzgcHUBol}lU6#SI%|G_zPGglsbd z3k`0!Ef{aMGYm{^Q9%@dM^I4Il$j~psc0lq2ygS-1Gx?%)!`=<`60RQ-A!+Kn3Aw? z{oapeJ?6Z6@21;w>}Gq8LbB{Y>M`aNyGsygX^Y&gh?KQg0l?DO_944t4sW20)VvzUr-$_Sg zpvB00NA7JRvoK;6w+HWWBDFAjr5<=f@07m%55kc74Br_>Y@pkezJm|SklpCNqYuxZ z`|{sOhU&zatK9L-~}phwjlL`xw7t4)37<=D(8- z^&r17Y|A~+g&HBl(Q}JG*oB6X5UYjg1vEq8s zZ`XR$gur}UjV}r_*&{a3pj<@lJMTrAsXA`9Uxx%gb;%IwWXNUvL71W+ z`Eu)YU3i9Y%!xJnYyc^Zx4K%)DZJAhVVJS^QR2>?cNVPS!5kZOZ9Bd=$VA(dPM_R_ z?y|g&_AbW)8!=poAMMt9g>ec)$>Ox=TOw+MI91cr`C7ylOolL(i!gx2r7dJn7)o-F z)UR2Fli7L>)iKkaN`neG(9$*UkZrp?7fP6#N_-i>Z{kH){+>ACbI;Uo*_L_ZuE7RZ zv9Wtbwha+zR5R*E6viH?jGio4!DbY)sXDufQYc)Ar$(eshP2JMSsI#u9z*KL2!T{c z9Ok6puKpTP;E{~gW%Th$TE&fvF!c!`Q%`g`@YkAm?Fi{+utuG7&Gr-kxp4NddGASF zElI;6IDldc_T%W{Tsf*BMUgaJSY(-VgG(1hmZ;$(^i1+F)KH@4NS8!xmfjUcHi*BD zuaic6!9aPblqMBfJmgJ)*o$=Qp!ZrD4z_R^eWd7OY|OBrSAd$k=GpPn(%{88WcR61G?&jRG!{ zWhgcW$*qaA!bxF(F>w)i&XX>=Ljj{f$WVnXGY0S6PA4|M^3|+!@noKH*Myi{bzE>{5?n~uA4$fw($XD35s*`| z5vM$oLgrDhjn%L+njNptz{TFEK$A)>a!FSR_tM#7WE7wpz0OBlVhK367sJ_FQA$#8 zn3T57!0ElRaT;ShAq@}Y61CqfrXE#MVjMDPQ>Q6MFXJ5s3_^*()N;)_5<0PVUmu`M zLWtg5EQyQCymEfs^3?Wdx=x4x5nzRqpsGKX3X=C7M4Fc)2-6l zE>pakQl;qCqscoo;~)>;RS|!}2Y2|Ia_7)T@#cy4HY0+_en#0X+iETI%GhU%mZV$) zDLP`MbS(483XTQn$?9e{U5Hd4x6TB>Ny;YA3>$-DrZg25o&e<#v04U|USS*Wgv(RF>!O99cg~^ILsdy9uLJ z#z>=7!5sN_3dX>$#$=uR7pvpYE~%cgQ$2D4jR_>+oniq;nVu+cVOV@vz3mq~S*T&W z+0|>EBdq414-Q--6h-66$$fI zq&`8euK%;N1F4<7(9t_oJ7>a7Vtv?5YWxEmLhitcBzx>ks@fI7z?Y;%E_NYt}hc_StVP#s2n5FA-)6+LodA(ncP%VqJp0rT* zEK_@DT#xdAv{z%0>3xdWn}bhju<4zOm^-UYa(z^f;sDh*Hn{Fki)4Fri{yHLi)4F1 zkLEyjm*Rl7S8I@Vm&O2YkH~GlH?2PJF2&yeF6o}zw>P-%pf2Se@Rt)pZw`#4 zJN^n0wVl8qAq(;LOb8LyNoo-2J3p9}PK3T@L2RCK-^W}zHh>CFzv2-;GbOBE!2`W! z(&1Vjcc5dksGZ*fT4?g4GTB-lYdph}Xrok?Y{xP-yKELelrxF_lA5uW zHDPLH70o5&3A9UzV{E77MoF#eYo%2()Jn^wfD6tpvA3JdoKUbzYpjzVejHd0|WrL2L=G(`5$g#WDG29#s7KH+Qd=B-NeYn z+3r8?V3c*_{=peMOQ>zsCsqFMHVKtB2&y6?)QRRm3B~z;gaYk`TmhrDHcZ`6zqF*6 z!D8-6H4!DAckoQQn`n?r(2s_8JG{=Od(LvXy7+v3e?avypGZ9uZbTu~WVDA|fH;6W zkaWf^mBbAN>)4tzm=pSw1F}GEG1_P1t9cI^4vI8dgbs#TlE?JZ{$Vl&Oq zXIub}*Dw%C>Il(4r(%(*3|y4n=RQiM5}Y@hI=W_k#QNF-AzE&Lp@pWl6KbfTTnxe{ zi4ZGDC_?lcJ>bCsXK<6NwOY@h7!@HZsuOjuDvwpHv`x5-2@gkK19iw)7XM&1p!H6M;8&pSB_!V{y!BXN4CXws%=q7tQcG>AhC zyjCbn793su>7Q#UZ2PoNTT(GkGtoX<)tw1@e6Oq|$;1udmnfc%`ulT`Zx3;UP)uM` zjw}VP=igdLs|>}~C6zM~;a@^JX)HGh25o4qCf$x#kLDey2IUMu-!MR#WaA-Pg-Xn+ zlpb^?dKj_>fsk1OIDp_VOn;qFp@D85<=9xH5W9@vZipVTQ<;3eM;AaUJpwo#!0FB> zA2nspF{E)rn5od7PLP_(e*^4ne^K(3b(w^ZW^up}4U3gTEv>)tnuSAqFLddj7m`-h z{CnTfd4ir%hu}S;nlHmO)`6&`y#=n7f-y+9!q_|P;=_AH+^%s%$z3}mN?)kqJag5%j^ z33x{Uyjwu}^7pjPFt5BY%luP(rZNc8Fs z4FIr&2LM3vKXZZq^t-ED=>MxY@zyvo4Vo^1m^dkf1`WKKSKRd5bW03fT33<5a_)XYHz?z1GOC6hb zU#JfiCJx9oxvE4+?Hy9YVuBenbe-cV7@@%NqbLP5ur+ z*Cm@T≷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%0D!KQy| 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 z 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­IqF>NW$qp+ zp{dnDE5^zgJIY^~t8ot)3h}Z6vkUjXK12RVJcErp$_YD3Jc-udpa!)Exw>r(cl%5t z*v=xginR%Z7biz-wnYDmowSBc&8`2f=3)KsY92l|0s-tfCKh)R0}|ACnj%0X_&30JiXj)Re+AFS=_==U9T3>1`u&0aX)x_ANBhy>Xj*W$KX2so zb#Y4Ddk_1}ZhsY_a80=9L}nRuj+zvxWOzdw6^n8#SZ0w4h3b$-@)QXEYztdD4@3WK zOf7n(O179caNnqCY2wwdBTj}0Io72b_VwUGd5wc-7E<-3I$8gIu{33tXJgHLsXTGW zPoBuCBZZ~)n|b7txzM(kBx+_gelySLAI#%WakIVxAJT8yn zneuPu>3P=HP*X2O}?{J*S~7@bM>l%87oX z=Oi8f%jvyC3i9MKMhfY@7icgeAyiNNfcOveO#X=;t6JVZv_H{PXS$da_6ZW1L#j>Y zoL&Go4SN6<+ZzbVZ{U+@pTV*c4qO>ajiQ(Puc9a557A=}<{Fam0h~(rhv?}ZEqF92 zIFoH>9>y|Zm}0G3+$8%2OQYB%sJA6K0(#HfZM`)@hV|DL&nRAaoBwOo!}i~&9^>Dt z2gctWvm%a&N|uTsy8Nc*uo^R6=U$@3Xs^hdekVW>Zp$6J@z zznzGCry(}1tOl3?=aicAf&ZbIYgKdhK+~;{k_-NjJvT1N(CgCCM<)TSou%Fb<4abg zOgcqBj-qMAx$f*yS9zNDJk;6d;qbWJhvupcM)gDQjYuPzPBhq#4uA(=|8?VXa6#(E z&XH1B_zj=XWW~ltZ$`D&egmUZY7*7kvX~%cV(I*i9-XGozs!0H z)s*b|`5Qe@ApZ;Wu>ajzY@)(%^dO9W$w@bc%%#A#FoMBA%$XEs1B8e62camGD}pbi z{ks0mJ}K+Nl2p&?64(+vw}8*z!kn<`Q+W{(DNlcHzqpy@eq21o<^tptu8IIxifuXQ zAKD_*U301r`e4Ib^EB-Jc-?|eM*9d?UF1OO;Qz)X4UCi#8pM@-JLOd`TcuVX)rcEnwrwdLdI1jesG)GB zKr`I=?o9K*hfi*tj$a-}4z4|Fs*80|VjEH|72cJqY$AJ_V7z+d%vYuzYKVY+bWdvK zIqE%8Ue?Maql`5G&%VB zc2^I-?HMID_f80WFK-c0CE#K*D>C-U+*H5YSbOlU~@z%B>O9n zfrhgE%Y=yU{##NHVCjm;(zUIF_`Bb%Kx(g`yuSh5Z*kWFGABV>h;B5$D;CSbAUnf^5@M_rp3}y=yY#R5FHkC}_UrQN++Q(eSykt?= zvp)ek$A}R{N_`ZW(J|}_vDTe?p{$D5dPdyYA^eim_O!9Yf8lNAKN9-R?Ui-I`X9Z{f!^zuE z_S=BF{dV#Ssvw(iKwx%i|Ka3c|8(+i|JKPzxnuII6IPq0PfgGb7P@v9X9EV}Rw^^l zJTg=2s*nrkKfN%J8yD9i<-oViO#O!<>R0*?GiLWsGxnOrsx|tD8H4`QjO|M+;FT{8 zifZ5g!;HB(%=Y{IX~s5@Z>auh#&(#hX8vNvLgz2`>;Eug%;vR!m@)W^|1e|xwf~P9 zD>?cMjpx`4PosR~Sf($|F~4yITPsR&>#GAec`FflAXk5&IRMI+MscyQMPT>7MWuO% zyO<0*TwEi8tBO@GdA?5yMy&!${1;7>6Odi-hbD3|`$H4)^*8d#|6el};_`0e@9D7+qS;}^qG}nN^3xi9aZ0tq2*sgJx$Uk z7zjyeh@^42T-;=^Aq>ghFWN&}eiwe&3J)se7)~vIp6UKA1Rk78 z=KW)_Ptg}Kw z`3rd36{B+Fj=?z#nbcSC5NvRmVFB?aiRM2Nrg0yG)=#_BXq<3y@1MV8TRgSbn{ykk zWkd*lAl}iZ#S^X9u~OGQj0G90X^ss$Ic|h{PlYcrqmFRJS9}Q-0poh8_p!pGGhXCJ zMTAyt?}!eHE)J4uI@c^B8kMap`cA3r`mJ-L7)WL3rgsn*lV!J-0M48S&Cp-p-NFub z!CpkP62}+y+g&VL#N6Qo*`PmRx_-h3jaj&GA?d_pQH~H9s$0C9IA(n5rqU^d*Psl- zWNA)+a(`ESjd%Wu^IB0B|HNbgcm=((u*Cyt)grgY(pzxL37ti(Q6Rv9&mjLQl;aJm z<}cG27p04pgmViyTnBTDafu1gP z1b?u%kdTN83W!v*3Jrq|5N!dYm>LcJsXUD*NMUlsbB z=Cmp6#aU5td3qp7A$W+&Yz)&+hg4|*6F`QN5=p1TeAoD)pw7O!8=9s+GxulJI2b@;4~<2m*mZk z#dkrsFglKt1$(OGBrlS)7?b1>2$9HR7sF$MR@J;%7Hzvo<#4`8;wn@ec)&QXN?(l* z_nppRDVI1xU8A5_iy{Nnx@`$?o2w#-Dht5aK%Lq%f^3AzCI$1qpOM~RwLw44NwpX3 z7xgaKQ_{YtDp;n@o2J$e4VY{@Ko#A2pXy}A)dkER2vkG$j^?Rrcq?kh(j@<{7p(FoozI zG?=IoNSLCYGexslsG?gDy}R5OqjmANLk4c18UH+MdIJ}O-Gcm+}nYIMec0EKRXwi5nVXrOuU z*1C!|ZR!*?&dGWIwLmyMjZpq0_?I4GJ(?rCZIzvGe6e$~P25ewP?EcOH4xRvbIU+d zrYIVZ#PM;?@USsmR=%!p=Uqm24}2>yL%up3O$r3Nnngz&@e-GKE1Wo^Q&Jt^k`zuj z-r)lfJ($TnAp~|pth)ixJQ1=yF$}vQfnBKN?&xCf?9M&-N?qXS?nvk_1U0wB&k3dW ziLrZV_`|rqP){!wJV$1?%<_kBzG!~-(0&UWdfs5M&onu=kyR0TCe$x3E&jXqK$!)5 zDhYhJXG9+r=XU6>N(6WX!2^w{&fUUUZuPkf{sEU{ePlc?h-$aANOGFI1w$8t^y8kp z?HsDGQXJ11%Sf*+Ac6g(Wl8oF&me$AQ6G_Pkoa{!{J!_@`$f4RC4gMHHRuC`hQFTC zxd+7n(R7H^xG|9lJoO*c&KEz@RXbT!O9#?bJC+|Te3vFB=>|o0CdM6-D?pOV%RJ-r z^o2+L>v-Z;rnqI;-LcvJIQ<+9@4Ud&^ftQ#z`+Us2a`2}z2+G)Q%P5NQq}4` zrXeYGCEQ;7o4O3ipU-Qs^1!1*gETT#rt#wb%3r677*Kwm#uU0{3HhHl(RV?*{E(h5 zuP9k)>xC4eQ$)r=4YkjcF;bm?=~TG&@eOuM2EF5wa$!qk#0RoH$mOe& zgt1U7b$A+f!+b280*v=717!6eQbWuPj{JS<=iCXwr^+3unLc929fCDG&jBKdE8-%$ zwiz7g)R+|FrM5=g1Grn^4asLPWf`Ka09Bu0|BAMO!d(>UKg!{MD_D;I8QO&HtX*tu z|F#?}aZ_q{@SlXg@J%ENT@K1?(i7Pvs1Q z0X`VHKN{#=&q_jh*pnVZ6ozEhI6+D_!4C&itiiZb%%0<==_jh3x%!x$Cg)j4++GvU zoMY=&qY2dy<43pZg~+l^K}T5TF%2ve2IdQ*we z?oowJEZPU>>_~KG7)&G6xVsB=aywHf#Xn@E%N=zaO|A>;7q>q7vMd!wEU*nHEB{4<_kE1x&pil5s z- zH~0wMBgmt1KzVSEG>b5u;vU13qDQ)}g)$EX2Bykac%wwvF6&wc!R8QZeN_tJ=Fq#Q zM{@~GGsh*U3kvTLJHbG6eDRki4iN!@_Ip`DpL?I zVt4?L-xta>v#qKK3AitAc0HAy&ipiG?e}Nz6r$gYVc%$><@qyksm@w<>XUV!; zKV6Pndf)_>+^YFkTOvXaklp!+xTsZU2r`fn#`ZBT9p=_n{DfAgW?+|Z$Q|-Mx(JEz z>ldOh2Eq5kI+(~)YfZM+YJ>rpKtI}$Aq805jFds#Z6;D6d+YA~GSz~Ox?fEQ1u#mb z;vx3oglECbL6w$bI+ZJvc9?0G(k)YsTBX<$_)?LNrx`+|Gk#1F+0JW=+&LXmr2FqE_4rvAdk24*o3i zuE#3J8kD(n_JyEW+YgbZoy|tvAk9V^iMYomEwo-zOTO0(b{|7Oa>*D9e<59Ecupa_ ze;-$-jo`2qMd-Vt7(s*{4CPjk(O1m6W&+82;;R33-vxiICm0aX^k#~E}6x6GTDr+DTt0**kEDly0UlGvNA#wkDbQ~ zi?o=ESXk{xk%Fc+hIi3eo8VJD+aqU|fs}1zC|300j6Mpx5IeS!hf)7Ye10QQbQqc@ zJ&RA|u}4aukaez09NhH0appWrO)vLTc`kHR*TFKzN9g<2;#Z&9t8woh^|Isv6;yhP+c{{#Ef6}}6?6_*z-L=)h?0XPXM4+kOV%j49M zaEIRyQP6rB&xD+FVTeEoVj<742L@h;hsUA6^b?}&BUm#1ttH@oW1RDU9xsx%rgncD zCpu1xVko>;S}BJRNHPm#!9jB&`jK#!p$oNhNeB=W7^7(bHs+aB_hcGW)lBzXCMC5W zs2{LC=4L-EO5tHL*7XVgEjTjDDVfIw_REtVX+s7aNs_5siNO9p*8VA4m}c7+1*hjXZQHhO+qU^l z+qP}nwr$(C&H7iXQ`Ks(+H0SCZq-Y+$jrCQF?#eK5u=aEMyG?D908ZT+=(r{N;@n6|t(v&15b_lyRe>gti2`Da%ReM~ z%4+wrOEKO()J^oHU|YBEp*uNd`|P$EWtwflnCDfoVZjFKs4;tG!3Z{@_EUloVlq{X z+HOz`3{e*yviyqZz432enTH$@=qg%1YN=2*Y?_68I<){?i zHpDp&&AnG%$97@;K94!#P_?Adi%;L=q=e+>0tsphjnX+p=ZT~l+*0G5aEKryal`D@ zK0+aceOcdZY2G(@#yR+#0yDhp{swZ+ajm0{IB73!^8)*F8|nRA#-#=c2P^SLaP$K` zgXo{QiC5rRhFI)_K0}>NX8Dm(5Lx2P9HEIraU?s)_T$7m%aQmnWm+M#_n_-O z;*EF@sep0NdWgA$p-|tUzBqR5f$u}Q1D@d%j74K6(h1qYkxZ#%x&NjPjsutvoB;s< zDE`T4&HwXk{$G`o|F2s5|IcTl1{T(eCI*iG(d(#Keq0h*0N(pJ!G5>34NnjjH!Dy~ zV5wgmKW^L z6$Tmef^NveHv#elRi^u9&`%7rjVk$%U^PeKp{MNFa^)x?Cq8vIM5;|`WmD7i(D}*s zszbS)(^c%2iywF8s?n<9b9_THWq6ddQnG38J4gFn#z<~@dD81}4tpm%^77$^hzxep zL@8j(AF*2$!_>06H92}`0R>1+~d*L_6OUIRI= zsiuuK#d@+TXPn2;GazatNM8%SK1hR8UmHYK-xNaYFP(gG{HMBSLM`vEetSL#uUJOh zIv8?j!#{)2GIs0<0;l-H^TZ<wQ7sNj14wqX%7m=g@}&!3n0 zSL?$6pa1@U`p-$b4*$UVNN;m?SWpqjKrg=}L>hAuO#wu{Jb9ozv1nl3nI@~TNB;U4 zR2XGKys_M;dbeQ-nm52sacZ}ff8zjg2C>X}9)`s$*H3n1=PCB>C0p+=pgszpx%zS) zYdC}U>RomS7IdRa2C{Y!_E;Ca2=?EIJF^f9G6`eT5yDxMntjs2a7eRA@)N})ivjxn zYM0Sx;9EdoNA!|u=5eTaWE})JrH1_C=&(sw{x11`uvCz0hvvMja2B!-~DB34hQxd&eyhnwt&yAOKwP9`$?A^ z`m9EnQJ6N9rfyV>?wUs1`@G|K|7&N>%jedos{&ldT4z3bnj5YbBg~#<)g>%Wz2t`O z6uh>adR+A^Pi=zVE6AmmDOlI9=)6m}ntd)^DFt7qtaT)FGa<@E=ts{m*~znn>9$kN zi1O==8KJ>uo}W2QIG-zZFChZwko!#qL=;!_3#rsjXc(qz1=-j(1wyUBYMJ!+fQccy zDH$OIR}oYS9!A!PQ-tN~8(Gi+=0p!ZsZa$u(+&z7(I8>O}|(!p#wDaOI5jW*oK zqx2h_o;ZX4JzveKlO9+9kWJ|6*motxV7QSwKQJA|K7uIXF7Bug9VLnchKGf57? z+bKDH#71`6C5VExFiwdNWszJ`9<_Nh@$Bj|_k~=wCyoU@K8hKnv~G;{mleDf6+rwN%z1dc2e?d7-?$RJ@TH>`c6j@PZ-DBe@nU0 zg2+L4re=ZP8s2|`d7r?aRIX_+1Lo&)BqaVdt|B0dM7-}{KCdx(K^b03P9yoMU@#28P> zryEU4bhjuDGzsF423&kPu1N9CiM}BfmO9`^`4%NdYZ*hsSxbo_*|z?S6lg@e*q;Ts zA#SY0!34F&@=KmJ+p#l~=Y@YA_{oy0$T`;Ad>tHV{ zo*=I%J{V)-H0jEV5S!oe2sn)7w{10HVPv$0h9^Q}_$CnJ;jC&;T)wr{o50(^Jx2rJtwaYhfV zC{yPPrbh(q29>mj0&0u0w)Oa~_07fNX6}7+U?v-Ahv;#OWO~~cbM*Dht2XoY5SQ)t zShxSDZRWMJTnGI#CJ`_0CUAk9czRIwr-mEP{=V>w$6)`H^LF)}fsF6wh%D=?DA9NC z2#@ofg6wx}oG&HV=YW*&S2-j1_-^sb(IO}Q1Z{zvYMO5Qi^@m#R4;PMhbZne_+ay1%g_@Lo8Z4}0eT zE^FNQjWAxniuNjYG|;|;TR`*t7CP9K1^jS(A0$zUzh`WPe6egrN2kB~hoAmkrZzI9 zlZyyleNA~$TWxo)$HB(P%G1$%vLj>#wIm<}=O_DTqK>bjx`6}%N~A@F>3Bti=st)q zLH!oa6+HXPtR#GTJ6^bq=`8XJdRRznpg%*LIOC2?P$9jutRL?@OhgFhRQW^cPIAr< z12}wz{A6l_!twkIvV+FoTrKYWO(=?z^`72EIt)7UXClQS0D{5W0f^$OIK}o>q6_iveKgZFG3X@ zL6@7Nhx1RL3p{&qZXZ80HY}Jl5SHQgi7WhxC4^1n8`3rdek}%q`?x#@**#V3@R!b} zkiVOW!}~>XT4zy9$qlkWo4ttVWyQ%y2Fi8m(kff?D)ZaQYHO|fs`lcA*5+DIi3m|f z`e+hfZE&}Bq(~0oM1)hZ^7rV-rWZb|lf`BxfZCTC)3ovk5=^^;=()nEs z>!<($cG+(ZfBn?6Sc`jj*iKHWOns&wn|_v`KO5@yBl&5o>2(sKd)WQc2sywhOKDw$ zkjUx`QnrEEw(RE-SY$5Y9os2+)JWqt5`G?U$reziBuI1bEZM&ioIw^2qD;0?qL`h7 z`<7NU`U5dh94#VER}uO#Y;na$)w|t)d00QugA%iVki|X1TtFwGP+ml$zKSGJS?z|zMm=mZ{=ktt~-@r)3wGvG*t z4Kk0c08VH)H5~+#*tQl?a&QDzAy5k5Z_q3LY16`x25A`_Wi?Dof}OV=Qw@$wX#h49 zIXlw=6)VZiAO)O5I*S>WF6>`0tX@W>0Uu%t+m5kN`}UQBlYCun~#doA!7C%Ki<3XK7Qk7W}w?9zXy~ic(?>&AdtKalFbSb7Jt`-^G-N zO(z3W*~b8mG}bf2KUSHHb%segv!H%G)oksptfWmRg)|X3a$B@hCCO%Rm2xHDn$M8r z%;juq3QFYkC58{`6L~Tv!K&GDD$*Y7DfBo3(1J&Akkwpfh9>yqgV?N30TmlVI#fU# zB=ilzSeqf9&8Ci5(EWz^s>~h%Tb#N*$!h!$ONFty~isTvWEc(Cu7Fz9INRsKt`<$6N`#6=r>)$ve+a_kHd17GmG9?*u*}>V?`XcP8PTX zCSOHzjTxEzHdmisC3C2Hf;N1>Xn<#Yy_Q{g|0p=G$d@ zh=8IFOn%I1%b?Ex+KXC3-otA`n&C`>QFAeS4L3R%k$ef8Kh)DDR4cX-2kV!?8oj}fxfOseO=pxmdzR(4|Hp z2w!$&{+;VxYOT-`R#V$Dqdw0b=~JvfRMN8C@Qa#8_*0s;08_`evG^Q}p4EJ|2wBk& zJhWya-=n}dWyURgo+jDv5ZtWT^I+z}{t|I+;0~IIe>O{{Z%`K#RYQy`S$GHc)*IRc zJj+-2!nwoGhYGpb3^cu#w2(@QM^(K80ex2YfWLD3Zy&)qea-I#M98CK2#Bzpn7jw& zrMv%J1j_WNO1|hzpY~!(QcTOkCWCrrlVn>9odY>gqABxP+t`q|P8ekHeYxx$EWw7X zg$)NXM5+ej7KK8a%)x|A6n}?c7K>t0${jPQU;~ai60oW0&)GcD2%%IktgS|Seb^f> z&L*DofNjgVqCeSmAjPEgFTt>=Ml&tB9rHA-pH5yOL9-~xEWEP_$*3wplYRhjrQ~mR z6J>sYqDbue)Y30$GsL=E@GK3T68lSo%k)myPrz z%k)w;To;j#iz6s1iOi?m2wQeEe%})+gT2vT$MM>fAuSUkqk^g3IRvIYFb3Wfe?m8_ zt6+E$9&T=iRG_wGTS7>tKM~y=f%@5bB=j$Lfe0-r3eg~a9an@%*iDGvxbLK^MFL%P<#uS0!Uzs}DlViN!lUY>-* zTi(~(w!_u+Ce1~dTliQKZiAf>HFpLQ_V{%c&p`7t=e{EMz!3Ug$iCMct} znU0FPZNad3gaAjFSihCTWgeSjBS03b4q?c~IJVE!_L|piw2_4o9=Zra?HxZXx>Hmf z?kvv%X89p?m>+7u%fUP)BC!o*<2qU$iBVm&6q+$f+axekkWg6TY6gwX8U$n&lr`S3 zjwn!m@#)KBH~f2FzfVAGn$@3u7notUhL~Op3}OIhxx<^3Wcsl$*wQOiqnc)#4E@dR z6qJomZ>Jdkw`g`om>J`UMLqz>_2cUW)csr@zKR92{tIF-kn4EHXhQsj;3VIb)Jjv$ z>^J@+#Ab;%bJwOv{VX=JS)1cJ zAP6QK4K1)bqRTmWP~l#HYUPf-J2f1;mrH&aKqXq7^DTz!R>6|zQK8d`TXjjsQ1QPK zLZnIzp{Pm5?21pYoHr~`x@B@R#yW_yM@C-!7vojtdLiSFVAs10vAPZAE=tvH=S9#5 z5}(03vIW0G$kv786~T}PYrJ6rjHO=&E};(H<~!+{tCeLK8DHVo9fIQMxhHv~F83cF zC#bs{qVgNNRvPw_owfDL4Uq(!fS!s>7}o)>Hgb8Y_<%2?T)pi*~&MQlZ$W z3k0T&&Y+QVJ5CT!mv^^P)`o`E5JqpkBGs2Y#sl zBBP!{$`>4fRiZmsqB?uZTc20*hMv(DWc{%Bffz!^^_)ti7<|aHr<>+CKn+0q=G^4H z(cv4YI*JVxLMZWorV8CY@*`5B7>|=l%5Kwb&DaUcqGg$TO@TTACG#Xs7zpiSQhIrn z67y*HC1+AkCftu<=a^reE=cxqJ)*1gZXG$c;s)F7)GIO;>Uwynm!=p3;*Wx>BhiJpSGUMdez_EvYJf;{_rqbVT&UjmGDUCw8La!U#9D|#fYEche_n#xxjeGNY8G=Yuq2<`%3 z7a!%{0*?}K&lx?j$FF+^*9%NAxk;pcb+Hg9n9OQi1z_-AqtaKg)G2#gSk65P(o?SDN6!+$d2v! zDULwXPzlu*AHLg9fDYD3hSnp*2cm-^+5^R{klx7y@3`fOtwM4nyxaQtS41Vymn4 zfMLO%4a1wcyV`I?m$PQVn+>H^<(S)nZ5sX|#y8DW6+_pE&%NvB8-M+-!?Vm7*wYbr zn<%c_n;A(u1v24z9Q&Nbqs$sO&P7R9g*InrD^wctqpVA2tl}(RqYM0_dm(9;S$zd+ z4t+lIDvs>ZI_(x#2^g*aBeS__s*aBa(G- z6S=^ZT=sUJ_9Kqg1Wjk0!wCn=3HWqDCQIz~UikwSZ61j`+Gl9^iFr0p?@_u+SCY;V zqkHD~iB*mM(HeI;S$k+w8tRvsc@xC*2ZaYbJ93&=us6h;TOjg`?TOp^hxejrcR+Q^ z5Kux(Y_`SuNw;V>oG1U)^8?sg)Prt*@&M=T8==uOo##H>I%7)XiEKy|$Ez0@;wm&& zM{-pVw$?8|jlmt^q;AERruj#&z9;yZvu-GKWxfo~yk7QiAHve7a{gjw4RDe(e9Tn~ zwrFYZ`IBp%HNiPNMaS>blL}||Gr{!IxlQ&@@gi3Yu(ERPVkbDivZ*UOz#03t6KM!) zLiO`$!RtBj<}s_ERX8Mv2@i8;m!T@1$_u#I;ocRe?-uB&2%&DLZm7?aG>g2(qTcf{-jZRqY)7?kn^Z z-UVl36d@ED2`-sgeX?HG9VwY8F>vmgU<%!mqEt_6OI_sl$^bW(96F=TO(7`!^uWji zC2=x1nyCd;BhPwHRi=6S>i&3+TCr3e`#t8wjtt3yj`DF9NxpSG#6uE6&9kCPG8BJp zWoQMPcGh$!950AB-Fl*f1JiL?=UDkozQu(urOK;9@I~>vB_55!>muVbK(!*=Lit;d z0FO0eH{?X7oDw_u%=J)aq@z1>5qI=SpZ%kFl%1m_ai)ww-8#}fd6dPm7cD?;?FPkK z05TAvtr7vPqIkzSA=(AEs2LpR97~m3*No9_DNy!kx77P>ALP{5?4gW+C&MQ|t$uCS zyBkng)>vX+)7c9vSL}XDRfP#-vIgk@pLZjIx~4^ow9-qU=<};jSd-DW+)^1={Joac)q@ znIdc@dDWNTzMax=PPt=3C6%%e@S-^cY75MPv~kkjm{RqH#IX?PXp_b!Tup+OCv=%} zqUvecWYFia_%S1Q@pw;*VS?O{L`P z>7GcF9##P9E9Xo>)zE&_l0rBi-%8EwO4yk+F{Mrk;so zXAPk)4P7-l8$Sk598X%80VljepH3YaQ25_m3aM|<0^eXrd7vr9zkQ~=Mb8(v$nv-H zshs?$6|ZN6Lpzg8;7=ybaW{UwJEaUfMFi0RFKsC%6_!-Q&fxBE?8KyKIs#I0S@JF6 zPj7C-6z`slC`LI)h{QCY&pvqJmzLyYsknO%3)ibx6S3_Z^CqB)?xGot-EfkCR! zi4vr6R@EHplLNWHUQkxFbweNk?|!Bdx_jkNu!<1vPB~;0fu~yh*>ZF4fSU4602U^3 zKYm$`Z%8Xh# zDk*o4XBK#bXdh=97&ERGm9-F7^CvW6f}q(&Lg4sys}HRZIxpWtMyij}pfiB!Cs%PG zKyS`-6zWUCfyyhmJjvHlTG7|(Tfx~R(yddQyuNgGWsZYiLbx|RJb{~wWvas4S~wy* zwKSQa2y1RMKo!u~cnGLTWj5|rrL=Ti1*l62Y#A65&Jk-G=Pv6M-&x=lHH}8YjDi5@e4cTOkezroj-0$Mh*dtgEVBD;OW3u* zyr92OhwwcVj2bW2ed}ymdjQaJ~kzu3v$yfsxG=Vi*Cf8!Zne4 z$Z{p?u4J4$R|oGbYp&;4AI@)hSw#h-=&o<$FMXij_S|Ip9%&OgcNpVd+W$Z4f@A&`uBC9F& ziXqai5vHFwgi@+QS@Rl8aYJqus3j|8%b+V&Vcm&lPE`X;ne`5{<+Ub*yt|drwK0ux zJ!kWR^q@^j;yVU=+TzZ5dBl8jkdJ$^C-MOEa)GNAp;POk)}YKYJH;$MY85h7shN5J ze5US=WPjx@;secyqoj^Ry-)O_^jM#pH`Lo!&20r z=OQng`dvj(6qpvUEL0dYsCy6n@Zg9@5=?Q4c)DZhMa{kkz!84t89ZGL+{LdS?P` zd%|5;)&tu;^(0gkXYQypFrdUc=<`AGi)>R+}8$z?yn< z$Mg;{e#`>zlG5j+opXlJ2|j&y^FfsZ&&e%>a3amg6`S@5mdHjD$$zG9&0V}cHU4}@ z`GN9wZclxg8+KA_fl8UGv!P&^k!o@_{+`+`a_?hR5a#+I@ZFM5qt3dixNVzfsxO33!+^9meXp0oDAyGfdAD;?Ca%|+Y{!{y*OSxQ zzq^3c`#Is097lE}vD_0J+QTe7I&2E#f%_pjwi#_EhAYC!1W3-^bq#&;dZ!C8NvA$_ zI4FNS>EyjzVIqXKe}+`a49VL)85oF3xIy3K

|NRl9krlEmD&RgytWe$ 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 z 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

i(ryXm=i2Awpj(U$?&4&ViP|85>0Hme{Zl# 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 z zDz7q^%w5>Rlno*|j0WdGgKv})`mGw@*_=AnQv1rtREfBwDM&CYYP^LRN?dF2H0>Ph zD+SK^oGIqXX=i;csw~!d&(P@{I;Bg@l!WVYrMU6E(eaIK=|Y56E!U-val`@^k9BRB zce(hn2#PEoiXEt$tUtq_nQ93U9phHe3U%X%GWBd>m`g*eWH5N^y@t*O zEmyiyvUfF}p#3?c6m2hLqzAv8JG`Rj7qy=+V!0Qs^?oa8q1 zjptX_*@BEYEA!m<8et|Pe4Z%pST667t3lXP&wzuKNk_r5(Q&!Je?V=$7ndUHZ0}cEg>lcdvGS(A!(T64*{zD6XR%+rk*Eyb z;s$+;0)|&&*{^in-{F%_kYK-Eb!^j$-jjIWOs{~3o@jsecC##mGHBf{Q%h8WzB5{V z0wuJ^o4#;t-{5Td!tmS%W3|kqd1f_c(x9XC)A0pli;^D=02S6Y8#4A-M=u&i5Z3OC z>(2QF=7i>;V?<6lwGCJY5XvMN(Qu``jL}GX!pJm3Db;&Z9qH2{M)xPx)5Q!0BGl*C zh)>tNWee0(p^gxe9OS3^@qd&OCF$}A<$H$P9RzFLks5qzTq?HXeQ*9?$o>hbrJ4@#nrH&3mvpoX+ z${mfql@$&x&eXX#7qBUt1RGz(d0@h5yt^2d8jG;=D|P4|f7VMi)jJVD(`9af%ku`Q zevDz(RE-mb44q`m7W;Lri&fnBSh~a%(+5~boGoykl?)>1l^&*-NcFH+WKp`gv?9`E znR6M|$YIfkbRX^2fqo7XdeBuFuN>ikq)XTWpw_1naBTAQ2gSZ8e8%?xU zrR)^T$6c7T)o#}MI4ARgt*`DCytvPxojLm2TK9;mEW{J6D(lJWZ%e(wAVNADHNT9ms6Hx5Vs(X9HJXpaFUC@@ zEH5tq1N8c-TgwLss$B_4c;0;EN2%1#_g88 zC!bFo+m_r;7-_O4;bA3{mhQ5;ql};&^(`FvI~ z1F`$@GdyFZ4`~jVBTlwtJ`(~zAif@;xhUDUH`?6{W33aj*gI8bxnZn|zx_j%Pod?08sUR z=tTa^C4KnO_K~&>O^m)(=>NKSAbv1TdY*)kYO=$gfIeoJz%>>~tUZb(F#sWsch~OG z=%Etqkr-*Pm-66Ydf#w67Fmwlm>>^|Y;=$i)7~M|l|``!%C%waTz9KPCU@4&f5o#`{vUv_P=Y zua_%HYpqmG_9nL~AiCZg$Z#oErp#C0K5##32-*vtQ;9W+8{GDnXJK%{ssPyt7Q~;8LC*fQI8SCQw%m$(PhH≻L|B^|?OTsJ3 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%0AoT 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

S`fgU{%a2H&;NrN8saK1n~O&}Kj5 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 literal 0 HcmV?d00001 diff --git a/app/libs/javakotlininterop.aar b/app/libs/javakotlininterop.aar new file mode 100644 index 0000000000000000000000000000000000000000..e5da962ed719c9a68fbf59f3eadf8c1789b53612 GIT binary patch literal 3551 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 literal 0 HcmV?d00001 From a7ac0d85bd48846dfd5813fc08a323897ec1a91c Mon Sep 17 00:00:00 2001 From: Jamorham Date: Sun, 27 Nov 2022 12:19:51 +0000 Subject: [PATCH 096/982] Add privacy policy activity --- .../eveningoutpost/dexdrip/HealthPrivacy.java | 23 +++++++++++++ .../res/layout/activity_health_privacy.xml | 32 +++++++++++++++++++ .../main/res/values/health_permissions.xml | 31 ++++++++++++++++++ app/src/main/res/values/strings.xml | 7 ++-- 4 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/eveningoutpost/dexdrip/HealthPrivacy.java create mode 100644 app/src/main/res/layout/activity_health_privacy.xml create mode 100644 app/src/main/res/values/health_permissions.xml diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/HealthPrivacy.java b/app/src/main/java/com/eveningoutpost/dexdrip/HealthPrivacy.java new file mode 100644 index 0000000000..03e3e984d9 --- /dev/null +++ b/app/src/main/java/com/eveningoutpost/dexdrip/HealthPrivacy.java @@ -0,0 +1,23 @@ +package com.eveningoutpost.dexdrip; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; + +import com.eveningoutpost.dexdrip.Models.JoH; + +// jamorham + +public class HealthPrivacy extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_health_privacy); + JoH.fixActionBar(this); + } + + public void healthPrivacyClose(View view) { + finish(); + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_health_privacy.xml b/app/src/main/res/layout/activity_health_privacy.xml new file mode 100644 index 0000000000..09095d8d60 --- /dev/null +++ b/app/src/main/res/layout/activity_health_privacy.xml @@ -0,0 +1,32 @@ + + + + + +