From 7bf14017831f2b858ded375808252aea44516b6c Mon Sep 17 00:00:00 2001 From: Kumar Harsh Date: Wed, 11 Dec 2019 16:10:26 +0530 Subject: [PATCH] Initial commit --- .gitignore | 14 ++ .idea/codeStyles/Project.xml | 116 ++++++++++ .idea/gradle.xml | 16 ++ .idea/misc.xml | 9 + .idea/runConfigurations.xml | 12 ++ app/.gitignore | 1 + app/build.gradle | 31 +++ app/proguard-rules.pro | 21 ++ .../ExampleInstrumentedTest.java | 27 +++ app/src/main/AndroidManifest.xml | 21 ++ .../barview_sample/MainActivity.java | 78 +++++++ .../drawable-v24/ic_launcher_foreground.xml | 34 +++ .../res/drawable/ic_launcher_background.xml | 170 +++++++++++++++ app/src/main/res/layout/activity_main.xml | 25 +++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2963 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4905 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2060 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2783 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4490 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6895 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6387 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10413 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9128 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15132 bytes app/src/main/res/values/colors.xml | 6 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/styles.xml | 11 + .../barview_sample/ExampleUnitTest.java | 17 ++ build.gradle | 27 +++ gradle.properties | 20 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 +++++++++++++++ gradlew.bat | 84 ++++++++ library/.gitignore | 1 + library/build.gradle | 36 ++++ library/consumer-rules.pro | 0 library/proguard-rules.pro | 21 ++ .../barview/ExampleInstrumentedTest.java | 27 +++ library/src/main/AndroidManifest.xml | 2 + .../src/main/assets/fonts/josefin_sans.ttf | Bin 0 -> 87260 bytes .../main/java/in/krharsh17/barview/Bar.java | 50 +++++ .../java/in/krharsh17/barview/BarGroup.java | 199 ++++++++++++++++++ .../java/in/krharsh17/barview/BarModel.java | 13 ++ .../java/in/krharsh17/barview/BarView.java | 137 ++++++++++++ .../java/in/krharsh17/barview/ViewUtils.java | 78 +++++++ .../main/res/drawable/label_background.png | Bin 0 -> 274 bytes library/src/main/res/values/attrs.xml | 14 ++ library/src/main/res/values/colors.xml | 6 + library/src/main/res/values/strings.xml | 3 + library/src/main/res/values/styles.xml | 16 ++ .../in/krharsh17/barview/ExampleUnitTest.java | 17 ++ settings.gradle | 2 + 55 files changed, 1553 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/in/krharsh17/barview_sample/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/in/krharsh17/barview_sample/MainActivity.java create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/test/java/in/krharsh17/barview_sample/ExampleUnitTest.java create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 library/.gitignore create mode 100644 library/build.gradle create mode 100644 library/consumer-rules.pro create mode 100644 library/proguard-rules.pro create mode 100644 library/src/androidTest/java/in/krharsh17/barview/ExampleInstrumentedTest.java create mode 100644 library/src/main/AndroidManifest.xml create mode 100644 library/src/main/assets/fonts/josefin_sans.ttf create mode 100644 library/src/main/java/in/krharsh17/barview/Bar.java create mode 100644 library/src/main/java/in/krharsh17/barview/BarGroup.java create mode 100644 library/src/main/java/in/krharsh17/barview/BarModel.java create mode 100644 library/src/main/java/in/krharsh17/barview/BarView.java create mode 100644 library/src/main/java/in/krharsh17/barview/ViewUtils.java create mode 100644 library/src/main/res/drawable/label_background.png create mode 100644 library/src/main/res/values/attrs.xml create mode 100644 library/src/main/res/values/colors.xml create mode 100644 library/src/main/res/values/strings.xml create mode 100644 library/src/main/res/values/styles.xml create mode 100644 library/src/test/java/in/krharsh17/barview/ExampleUnitTest.java create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..603b140 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..681f41a --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,116 @@ + + + + + + + +
+ + + + xmlns:android + + ^$ + + + +
+
+ + + + xmlns:.* + + ^$ + + + BY_NAME + +
+
+ + + + .*:id + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + .*:name + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + name + + ^$ + + + +
+
+ + + + style + + ^$ + + + +
+
+ + + + .* + + ^$ + + + BY_NAME + +
+
+ + + + .* + + http://schemas.android.com/apk/res/android + + + ANDROID_ATTRIBUTE_ORDER + +
+
+ + + + .* + + .* + + + BY_NAME + +
+
+
+
+
+
\ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..d291b3d --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..37a7509 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..2ff9443 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,31 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 29 + buildToolsVersion "29.0.2" + defaultConfig { + applicationId "in.krharsh17.barview_sample" + minSdkVersion 21 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation project (":library") + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/app/src/androidTest/java/in/krharsh17/barview_sample/ExampleInstrumentedTest.java b/app/src/androidTest/java/in/krharsh17/barview_sample/ExampleInstrumentedTest.java new file mode 100644 index 0000000..75962c2 --- /dev/null +++ b/app/src/androidTest/java/in/krharsh17/barview_sample/ExampleInstrumentedTest.java @@ -0,0 +1,27 @@ +package in.krharsh17.barview_sample; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assertEquals("in.krharsh17.barview_sample", appContext.getPackageName()); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b9cb3c4 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/in/krharsh17/barview_sample/MainActivity.java b/app/src/main/java/in/krharsh17/barview_sample/MainActivity.java new file mode 100644 index 0000000..bb23c6e --- /dev/null +++ b/app/src/main/java/in/krharsh17/barview_sample/MainActivity.java @@ -0,0 +1,78 @@ +package in.krharsh17.barview_sample; + +import android.os.Bundle; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.constraintlayout.widget.ConstraintLayout; + +import java.util.ArrayList; + +import in.krharsh17.barview.BarModel; +import in.krharsh17.barview.BarView; + +import static in.krharsh17.barview.BarView.getRandomColor; + + +public class MainActivity extends AppCompatActivity { + + BarView barView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + ConstraintLayout constraintLayout = findViewById(R.id.main_layout); + barView = findViewById(R.id.barview); + ArrayList barModels = new ArrayList<>(); + + barModels.add(new BarModel( + "Kumar Harsh", + "3.0", + getRandomColor(), + 0.6f + )); + + barModels.add(new BarModel( + "Raj Kothari", + "4.0", + getRandomColor(), + 0.8f + )); + + barModels.add(new BarModel( + "Garima Singh", + "3.6", + getRandomColor(), + 0.72f + )); + + barModels.add(new BarModel( + "Anushka Chandel", + "4.2", + getRandomColor(), + 0.84f + )); + + barModels.add(new BarModel( + "Parth Sharma", + "5.0", + getRandomColor(), + 1.0f + )); + + barModels.add(new BarModel( + "Rakshita Jain", + "2.0", + getRandomColor(), + 0.4f + )); + + + barView.setData(barModels); + + + } + + +} diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..1f6bb29 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..0d025f9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..92ec0a4 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..898f3ed59ac9f3248734a00e5902736c9367d455 GIT binary patch literal 2963 zcmV;E3vBd>P)a+K}1d8+^p? z!e{m!F(8(%L-Or7x3OYORF&;mRAm8a^;km%J=s!AdNyc=+ezQqUM;oHYO18U%`T}O zHf$ra^L^sklEoIeAKmbOvX~v2@Y|vHs<^3JwwH?D$4l*XnPNs zMOqozmbkT?^lZ?$DjQ9%E0x+GsV=1PwZ&39Y}iI-$Fb3d%nsk+qrN@cV=OmQMEdF% z)iHMl(4Yu=cIkixWXtwMIV=>BvDSrHg8?)+vLJKozy*}$iE>&gGGonlG0cJhG&DRv ztzkg-AO(q)B7~G^EwE#tK@nqmJ}!(Bqtf z=eN{I?X#P!Xx=uL)D9cAk=b!~&@H~6S)=a?R4fDdP{-5E5X_!5&FwFJ^7&W2WS z;CnxBCOsSU^v-%(vad;MPukr;&+ciI+F`>sGCPiqHe`1A1|N0p^<|#<+iECwOG@y7 zBF$;;0YAhxtqK7O0SW;M0SW;ckbsQ#9QTYyC*g`2j%bA%1Zh^g9=9l*Cy!I^{_p2$PP2>j_D2AybM$NwY}iJ(ZH9O3 zlM8g4+dw;}V{dlY2EM^Z-Q(AmcmO|Ub1&3EFTS>iuHC#rcNo$wkB3@5c#lSunxsQ) zaA7tLFV3Oxk}X2`9qVL6?4fcq?f>Yk0E0IEcm0~^P5ovLLV$&D9ibbZTOt4ivg_<= zu^#q8tYJktl(egXwj4c3u6N&}S3mj_9pv5y{gQvL;&nM}TeNE{4K3O%_QAdpCAswa z`Ev>!oQREY9uPqL)g(QPVc1U`Q3An`+x_7g8edZ^0zdcpXNv7^!ZsgV{ugB){w+5&3-Wlp}yI7?tN)6*ST)-XSL4g8_rtDVlw+a zE+K|#(tV!KfQE22d-}7B(mLkHukIp4?na@q?%@4Kb%u!@F-ww?o?tn_Ohb zPi3Do`yL?Y$rDPYtEV;|250yzpS^rZT*TflAZ&YqC;by2Ul7NTZHKmC)9NA6Vv+>C%^1XhNlp5*!7zxTTKfHTPhe?@XbH=VzWEuCcmX z@L_&qCB;=(Xi;-D&DvT)kGOiMQ0&YQTezdH&j4D;U@#9&WiZClJThS7w)OHH^fIT| z+jn{&5bhMbynmM$P<0U*%ksp0WUy)=J!n9~WJ&YNn$e3{jMFOW6n~uqMHg+M3FY|#>(q)ZF;RS(xqTh>S1Ez_jfFig z#ivbPnZ26mv{5wdB5SFYrUNM5D?g-OsiZZK?hPof9gqf&7m!5-C=d>yOsw<)(t*G@h5zIY2saaEx|99pU%^#gvdI(Qqf>)zFjf zN}5zm9~oT`PmH~EF012{9eT8?4piYolF(86uiGy`^r#V4yu7SA-c zjm})#d$(Kx2|Yn~i19Fr<)Gs+1XaUIJs~G>kg>3 zkQ$CqUj*cb1ORzHKmZ`Ab2^0!}Qkq&-DC(S~W*1GV zw9}L-zX}y4ZLblxEO1qhqE9Q-IY{NmR+w+RDpB;$@R(PRjCP|D$yJ+BvI$!mIbb<+GQ3MGKxUdIY{N`DOv%} zWA){tEw8M2f!r&ugC6C5AMVXM=w7ej#c_{G;Obab=fD={ut@71RLCd*b?Y1+R_HMR zqYNuWxFqU^Yq9YB)SmxVgNKR;UMH207l5qNItP~xUO*YTsayf1g`)yAJoRV6f2$Fh z|A1cNgyW)@1ZJ!8eBC7gN$MOgAgg|zqX4pYgkw{E4wcr09u#3tt$JW@xgr2dT0piE zfSguooznr3CR>T88cu6RII0io!Z)mN2S3C%toVr+P`0PTJ>8yo4OoHX161h;q+jRY zs$2o2lgirxY2o-j$>c;3w)BT<1fb;PVV(V`cL*zHj5+On;kX@;0)6rF-I?1)gyZtM6}?#ji{u+_Jz`IW9a=87nIA3aK2~3iFMS zzYP&fCXLEibCzR_6R~#sKN@)HB>);Za`ud*QCaKG8jEwqgoknK7rwW`Cq?RYYE5r+ zh-YUqJ082>*;EG`_lhV^vHEM7d+5Y#e$d^rC*jx{U%h3B^nU%7N|*y`o4g{@w;KP-89>&W#h zTBB2vTk*S|My+4jYTPKdk6yR3b?nAfcd`FeC@gttYuGBEl9wuf8`rOD9VP6`bhNxR znvXql-3ssVUSXfvcf^2L5R-^4E-s=g|M$Wm!?BMl!51d{AS*7Ggjwh^YsbK?6jgCA5T=(9$oK{{z$fCe9x5IJ^J=002ov JPDHLkV1g@XpTGbB literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..dffca3601eba7bf5f409bdd520820e2eb5122c75 GIT binary patch literal 4905 zcmV+^6V~jBP)sCJ+Khgs=qzz9*aFfTF@MBLc!81jy1$_D*`qMnYCeSOOSS zh~l6kD7e75FgOnvP=_arGNJ+k0uBt2?%a3It*Y+o?&`L?*#fV=?@xECZq+^KuXD~l z_tdQ>JOSF%q}x5h@>Id>gloHZ!fr_@%N)Qad* zI}<}@Poh`#X29>b50CkB%{yWf?z(t0rQf48W{j1a($$IrZ9{N{@#9Wqx}%DM^fL-m z`X#_s9{BwX>^};}KMtudHpmMyRCq34!+|XCtnqeli6}6}7JiE;H+GAtDViHuQ~X9` zP0^{y>Ov~ufreT-w7!yx_c;QOV>|0UxJK{lqSx`7cx`b!OLV*;Ez4q9Y_XdB$PKk4 z+Aq(kmz%WbOV3IpYsa0#_Vd?)>*2Lc zn) zvVw}USbx|rlL2LMl<$^rb@TnK-;J83fd3GKh6#=C5WlXv83lKz{0$(8x1g-%;q}$b z1=&8M<_eQZO4eJk#nshu9TsZZ11Z~hVkpt8oA4831ZP3Fj3C~EG*%gSnciYD-cpkI zj{J=o1Bg-kJrjfz${Js8D?vh>vJwR{=4)c@ZtTqt#tHRR<9b9ew~kVG6oc8(lNE=Pu>)F6HIf=`kIH3oJBkSO2;+SnG--LDU5kx zC0($63w`LN)znoR#GhW@M5n&8!EGBnj_usF!G5qm>{qhQ`sdB#K+CoQF7f-se z?#7!W#vF7jw48A-)Ulxz@0b)?7iKWQI+fE6Ud#Le4H#? z*wIeM>mtaY-X;WO^yfR4Adp*W)N+A4Yv~TqOy)a5g8AjAEfJ4acRWELKhbNNKrc!( z&!ze1YQkhsw=A3()t7B^pu2=1)CJq>k}s1bv-{fV>=i+J^=8Lh=Pn_L(@77X+QqLi zSM!u0YfVL$I)-o^+D$g^8iKevTQlfM$k z8A}@MLX0cd>SIdp0%mtcJaTy&g94$WW9QB?a!}a+T)Rd$eDM!(fgHCnNCsx!svv{S z@9-MjC~sfoKOK+dN>{)_sV(mjhof{qxwvX-7Df1DQTI(g)o z>s6XRhgIhE&g6I!q!Sxz>EW}#SnudH5WeBSekYPp`9~Vp)1-G^r@B46=-SWs(Z;X8 z02evPKG%G)Nf*Dpl|HNSeWdw0`U#|(mpohWGktDRF;Bo`A2K9T}=|{(p(X*E>(aYDag2maC6ay^+ zk7K(%-yfyPJKv6-`qy{#2oNV$%o|*T^A7!TivIn?ahqEKj{ka& z1#*R?@}3aHxtTmO=~U-w(|Xu(B2EmI8B50EvnOk9*GGbcJZK_}E{D#X@`(&j@%hg` zvgc+#V--FuV!3MbUy#-AgE($~;1gULUsw`94gkTgN-nwH+_TiyxD=9t>#{5GHSR=+VC|3HUj>p$m zF=5TOh#WCVpZxG0Mfs)VLU~bclwVS}a)Tud>)$I3M@i?-ZEb;CNQ$OT?W!i>WPgI2K-%bDAV3iV{YFpxIA_D~#F;z7mA_2ToA0 zz;J#$$gz?H{f~tykIYwsN^&ofDHEcc3HtMs_ksmo_H~%=S!trXzdzzq@XJ@P(yd>A zNh?17fF3z>nk9kWDu3|gPt>$~7yTPdOfi9U)o%B9hiOkpO1&hgnGv)+?=lcH(3zlF z)1$73Anp4*+{T@4Fog)rOQR%n2^~~bNRNp!ZBKCK-@noL+ER9Y8^~8Se*UT3c%b7TLtsqf14?X2rJH|pTWGz8-n&h;14Ov z#z`fWWiO*ed){^1em`8ly%A*0PxH#fdX?ndqyYz250dgaflgvo+ zJV{-K7`Kl9diHm3hJcly zengd6QU#LyA&GQLke(wb%#d-6v?HDD3F1f!>{yWg5#|xN?9J0WD7v z;l~T-X%q||!6msgyeyyoVe>kdc~D4&(TwHYfu@{&z(qUzHQHR6u}wE)#*5x&(o-7O zw@7jXJiKu=?N?bq2i6qRnT;Fhz}ixmnKagt?l)w-)BzP^3@k~*Wp97@gTqNpbZPR zy$S@S*a*rO5riY0Ud8DORwP?Adna(v!QOi8<4{14v_(t!#gLwrT(JX4+=L_$A%|pc zXmt?{(xut$cSLlVo(30Y+4jMCjtGY2uwS_m`dG?inGHD{f(#luthNkXB!$a+a>Yn- zK~O4(yi`tCXd{2}Q7v*n=1Z+W<4npgXvmO$@_f~4uO9n2kmNBzD-1S*B*<|l$eA1@ z#7YnNRI?n@&u)dVc}PLoFRSt;=(FF*KZU}pY9KTJIT}LH;AkK9+f+gq?~2G z5#)j#B*jLMG&xp+>KqBOk%JavBS>X$J^3kS)@II(S5WsDjsv%=Is#fvo%C=}VJ79C zu4XlR`eZez2+jdtZkwl~W8jW?O+mCNa{m8IZH0?IgmNQbXlLF4NHs~k~IN5KqX9?a!NuC1W) zYsz_4m;p2B(rNZ|bq7KTK$6gs(A^{fuF@Y|C$u<+ zeYYY3Gn!;AyU4%y;QbOj@OvR}OAX~1e60jYkYi7fGch)Tw9J(lK@#LJf(#;pbZHir zB&II7NTQ;~GF=lByQEr3##lyCO%LAbWBIf<~=H3(^R#^&aTfo7d6DH>o+Z>qt5T4kD_BN0|i~wM{;) zQDk{ivKxY=^BgNdF34d7nZyJ+lfx0Dp`+JSH331CES`Ogv=4}5y2Zs^=PLgRUr*8)xq~v8}M$U zLOie%h{Y~;4ui@DJqJtzG0(xF97ij3CmS@3983s@mls%CJveFs=+cwd>4yDCfvm&e z!5#1cb>BZeo;3I6^_Foju7YH-rfKy08n55>!E;8!9e--mI{HXM9UTG5-bio}4&^qi zE~isoTuo;*ZeZWBo`Vxk8!8zvL!O6k1VIoUEds_IbStzRBxm^3Gm}w=_OY=YZzMUw zCMRKGc;U#1X^+ec$Xs%Pdmk&k3F4CX?~8#O4uI@BY`Kmq!J0Uv+5@a9tSpblLOV))hr-m%u%E*xX4>hBnb`e#B{kyo18?4;4dFUw7M^53Rybu z824~aV-c4}JY7hR>xV*sAg3fy6mLS7LnaNbD2_RfLpjc^aO!{=GM5BGo|C6yB@D9o z>0^ok{idSKZKI>_xtZixNop4pgLk193Gf?Ao}Iaq1y@!>f+5tPYW8ZSJw77VrMS#< zkU%RzE|Nf;cya`#HnR*FQxeQ`<~;c>Y2!DH$r^KWEyp=Wij2g!i9-MbcG4!}i^_bU5@kB8)I8_7rlg4C4#@0J#r1#qtCFoLQJrO9E% zt`s&x4TB&q*Dj{y&(q&hhKJ${y!SHMP)2fle^N(DLRef11H>ps$3G)mFl*0{%0f#} zK?dh~_$b?`;>l7qyL_2N&lj^qc}_^Fh@jk*X2^mq@ZAj7%2fh^%)qQAA zZ3@z-Q#;=6kf<1C_wHkrQ^se@o}KxQJaxedR`bDn4a5ufwojD_f5pWfSc3vWaa8IF z!+Z?HAa-6lxNq{aCuDPGysez_-`RL=-eMvHI(P2D`bHVO)$w1e0^WP&R`mBpOFQKR>_w07I2s zIwmM1dOoD+-D@HOzvDhQc0abkw){E0*){N5cul3$g6n-PcZs4>q4bV;KlnN~%kbn}!V8maBKN?~PDN77Zj6xT>KxccMrJYVYoo)adu8>W% zmv*U9KCo@D{=sCEstjFGl{%?R9Bd_S;`C@G{FNG~X;+5Z0h*dJ1r|5g4wB8=?S#Zy zt3sAsXM@aL)nWAyCYz08&uXYp$}38nkeVvA0^C`|ts22ve2Y2>mf~J~_Til&y|FUz z%#l)O^+i>bDr7NsoiC}@GN^5^{=sAkPSF?VF#7ysBZm@DnF?;le_~|Un-B}Itc2u|IlX``0V1M3jKlcCTY73+_+5_^1 zO|_7<%PEyPhbqxCEnFv#uom}FdO$lY%`OKi#h<5Co8ZPBFZA{I!|wAx!c?aisEfxs z?T$*AUTc9D8_Hpt%L37MoudCVml+QIa-Q{X>F$I{4t=051yd2KXJy7g2ho;dPy9%m z&|3%hK)bgG?)N=_y3^l5BAU(HpEX16sc+%jjdr-wd5e*w`^js6LDPj(u<}q7%axih zoQB@MKIp*y%l0*noe!-3>L8Nvz`X|#;P=}%;m-Yg;Pd%Hg6jXkc0~S4=WWP7_Qlvb zG1>9)E0=~O9SWcSdXd@th$;|?3QV+Z@1bR;tdb%M2ko%(GTA+u#e@F7$5Mb+;mB`4 z!xVgv{Jp95%Y!hpT7-)jrQ~&IJFY@h`L?H{0L^~?0CJaZ z{tZjr)sT1m=#VQw^-Fg;S$l@ofMbuY0uykS+-JWJI=h~`ci}FY$50ATJ+%wA zO77DqVS>075^y6_kJfo$5r(}BH#(lkaYNw(n&Hbh&XQd-lYhgIk-UdHhZ4HzOR6cX9O(7$kLq}D}u9EB; z-dhHFDZZ<8Lc2GP(}(AKLrJ-Oau&a1s?6Nk^&FO z6KSRZhEqx_SQs6S0+Eca!Fb^G1gONmI zC+HbyhfVOuc?OI&h7uoNn}=`c_>iW5NO1q-GUX8K1^!Zxzl z4XfveR)GIBSo>}=cI+IH9~|U>#(X~teA-&84{aZTo0BMk;yjBqEL^gX=_9kDnP=}a z`+sm4^17nldnZj&U`51GznG$gf}Fz|OlbvM2~cNtN6bbO;LjW>4doDpXIHr_#-WEK zTp3oTSyarnG|L?64R(Lh#u7IM@+CF;0?j-dAKR%u-gp$bMThf`Y=V%QniZFqb4;b% z+^sU^c~$y+58W}2ds$fqbXadxS)oD}YcBF8+Kmro`dqK7bh9_jZo>N(2|7ZqH?6u% zs@LZQps|*E)s_+u&N{X0R(-hsYauy#KI0bVpUP;&tcc8vw<4D;UKP1mLj0?AU!cHb ztdAKWi}A~qZL?OzGg+1b@q^keUNsrViJ`HuE@E!RO5*b9*&nDxR@U?Q6pMIaj1kMY qJl2nQa+aK&iDQb84*TpHAJ>1BQ$$nT?9A!_0000+Hy9+Dw zQlg?UKB$_cZ8RBMYcyI%jkQf{#wz1Xr!PxQ>w~B~cKP~!=iIw{_rdOp7tZhwZ1+g(AXy-HL10DFmbXNx@L~ z3H0wQYEpsnp{iIyzhEeKgc((i$;}oAoqHl}Yb`&gx~}ISy|wl# zwdwQ;nvEgzkAnwYj%g}=Nide26RJwsNTUEE)Q2P-5}7cQ3Z84R%7rdvN4sQKhOlPcRnSrOp+WGP}nNJgfkDx!pMkypKGe90p51ezT#4MxAxQ zN3CC+fuRy0nP8u@+)%h}@FHZ>vWFTTCD?*bPf|6Oz4#LAYDsH*sO<_ z+8Vve2|wE19JrkK!TNc*tzkb>2=OxIfDS8-yiLEA$m0k(kQf0ZJlj+Q&+pg*@-o6x zTdEi#&vL>m?`;jX+>v0bbWnM`S<~tiA>-z6^m&Xo6y=iH&}dMDp40vqOvn?CbR0P3 z0YX_`z8klIalWefMaf}lN@-MvK>)C@OTMQsvEFV1j6zbmglN3)tDNw{&IYft@#yp|U;GYg&z^)Rt7d@u#0Bpe zimnOEmq&Tef~aWH7SjqERa#-iBMX%jZKUfNcy71bp|`IOKD_d0nA~D<-XkQV*jewl zx|K$GjP@M*^t)>e04FWS7-Uwy|!6q{ICob5gfvYaErq&g;Btk^VqnotOu zSN-|V;a*P<^rDbv9KD!YExR|ex)jop)as*$VeKa$K-3I_~rZ#$8n0D;V;;rwan!I2{& zEnl34toAlI^wpPe zlye)Ao4ycY%W~JdLaI0e(MHvF%G1SkH=uyAXf{=!ABS!n#lZ@o8CZ4XFmw8#1n{&R zVs(YP+3GCIkwRjs%TCiYQa(?iP=b^m$jib}=-N*{ggXx&44S-zukU>W+LOO#ZOZ!~ zOnukpUM6x&FsRNVXIChVTfbhB(rD_SHz|4}839cXjAmbiVtspfigR#uEFjIMj@si>Ore+Oei$<1cCarcfF2@0*j682U1A9rp; zlE=d6(}XYz#@Cd03QHCwxdi0=G&$N_{=Yy1XfbK~!v(L-Fa7gxu<_$VaOSVq1CpmY z8$Ujb&-~r%UfZSfpfHyQ7GTlb5>~#R>JqSaSxPVhD7~ea?b-3_j}BnQxCvh0zmvuF zfymQ6C7Oj$o(rpg(e8EsF8b6fI~#$e4S@tKotNPf@Ro97lv&dmNB}MOzKDHx{Td^7 z^e>kK&H&X>w(nxk__|+v<^;uhpfq|w0oCgN2n*&Uy98ur#zdLa9sUH2!{g=78$;%} z1L1P#zaX{-%}ARM>G(3`OF*1abzPV`HC~?1g-^B_&(OXN<=~`T0!1J)ouwb`hnx4h z9=m{>-*my^gYQ9FLp5Z*znzJYxJcY)*bL{8bEG_x3mc;?*yV2q=Kg#a+Xvy`pEue zJ2#<55|A&7Ku(lOR2IUxb#E82l~|riL@t>>J=|1!XP{(Gfq7D*RSSuh3Wmux1H9O5 zbzVzIvg#nSb+dS_bpfB9xub!%!Jvc0T8>$5O?a$?#5xXzQ6&nfaS6~B@Yl=oyt`5J zUi|^Lo>^h?bXpN!k$b{#I*o}Gg+L0KqjiNap+>{bdB$Wh1B{gdNt&z zkU*wl;*p0Tp96`fH`Pew34JvBLf)EFl)AaU3W$CXzIJ5}*_hmnyplOlgkJ%5dN1-^ zfYFOQ7f|g*o(nK@@|F3Nh4!=hOBWWfJjm^}QhYrdl{|g|c5+Shdb>Od$s<#GvjwI% znqg*ZJ*3tdIBXmlNOJbhCP>{}#ZfQ82y=FCgS0Is7aB~A{A+vOWk<4kG8-CsBA>N) z2Ro)Vo9)zRim|LCBI$`F-!JxDQG~E+nVNaMkGbGoHB3M|cbfqm?Jyjr6ln%D z61dqAY5B-YX2WN|HS&_#uo&dO1ZLdVcx6-*l>@yGiUd^twKIQ z1myy3dN1;B0z4enBibGcLp_=&v^1A84wc`CetouQG9=$!N7f##SDg2(;-$ z`!;UT3E!5cpgGLm)#4Fpf{Qj}^JF&E4%N%lmmNV4&oVB`hy6ytSLkp=a!l^3{cMD2 zTZ1ifMFW4}K)*?$c>mDR24g)rEZIEGUiM-d`ALieTX6^VNp)73C?Y9z`9d?=c(?d1 zs~_K-`cOc>&%IHK9z-;#Xp`TMv(d*wB}E%mPIu_y`4;N)(a6iqDI;Sfv%{G`Tq?Y? z`XY5qua{3ZRrAk6vM-O$&0Shch^Vh+#oUI{16*NgkrFgmFX!!x!YeN2Yr^QVW|_o)XG(ZcBN)a|R?) zB#;P8w$4loZCthCwyD)Kv~>DA|AHfFa+EnB3aXYkonv5irz&0+e_1c`|f ziIC%^3DMCrgrvlo!j#n640IkHIfLEfbrQs9Mtu8!_VBgvQKZl*M~Z$T%?|zlVT_2; lV%Z2*hu);6rydA(}wUDXPCF_W1vnaRBK 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..14ed0af35023e4f1901cf03487b6c524257b8483 GIT binary patch literal 6895 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b0907cac3bfd8fbfdc46e1108247f0a1055387ec GIT binary patch literal 6387 zcma($WmFVQySpr~^b#u_OG=0|(kva)DP1B+cP_AmARxJ*NC=Wrg0zUl5(`L)gp{N- z(%_OG?|Z*r_s2c=$2@ap&UtF)$(eXP9W_!SdLjS-K&qjxY;ZTH{xb;h@8E{&N(%r$ z+p3|gU=%dFmq%!1q&9_NsUvvk-GvvZjaIJ%uU(o!Ypc=Wv%E8e<<)SFdRM{tz(T@!nKT{;0jT2A&dgKu3 zk|GDUX<&73+f+CnZza0G4g29@hmNkl+2wP#$0yi6=u-4CD#*a8LxJLG9KlkveQ7v} z>E#)-tL=xh89y&5li1I!>Zzc!_i6V~nKP^5-+!69FtnX*f=*tr+cf&UpZtLBY|wv< zJ6r*Z5374 zi$7+B3A@szy#|*$Tb~kkzc_N~h3;oe8q95K$w@e#5FRGcF}wXTR}t#^!OnNc>Z52w zu23YrlIQY7UrLLcFSW5ctMBzwrTz=X-m{1Y!*LWUbO~;u&&q8Lu;wlGFqO2h4olL; z{rpPfr}7f=Z)eZhFw1_ITpft-VzPF1CHv-W>u;OCBJBEOEn$HmTpFjX=xN6-H5#V{ zn6Si;q3V*@lFMd>H8;M}vOp8McQcJ}^bBfV`1xb0g0`9ZZa9(wb+L_RGO6wD&I8ouM<}YVDFU ztMSz*yMDz3AkS0YO)3_lYDarEUyj?A#9s@-ln${-1Op^nD7zREi=%4Hy%V?=YS7G`L@>`3kHM4eAD%)t@F};|C zfj?B^Kox-WuPMuDp2=LPZU3Obgnl7{dD>|>*A`fn-0|^8uAHJz;<)tkTXA8lI&dHt&xG(4Il=e~QNN6o9YD7H{TR?17eM>#Z8#Y@_=7fZ?HkZX8i|mEGs5mR`uBi^ zzFh5AG^3EMyvpx(a*)!eOI1?nPTn?v0Ly$)KlQ16Xfrzh+}+Ua_I!5XU@ciwrAZ>O z<7!MU$n6`x${EB6YH$hWOMuSEw+72Lb~rgO*Yp26LGdNp*;^;HAD@(SAr(Dk;j7w! zQ>!M4rxUFYn7E?v7)2q)2rJ2%PY>A>-1O7bY~nt&n)jYnG$(iR#hvlih1p}c)I+|I zy^C;=uIJImfY zL~pm6t6Zw8FiOIY<1>EBS(<5`Cv8DBcZEpTCQ{@@-|2$Bhi;6H?Pofq1Z%b2@)&at zUA{9iaqi62D1|=T{xTe3Czr|z52P;M7EB|V-ss{qspYc0Cj~hUUURef8?i5H?e;kA z<~qW5`JIc(rCLz_oJ~>x8O2IVR%>+7%}`TBSQt%i+m+4tV?z0(?5cf&1v8cNlz7Lg z%ZS>-e!({r)+sH_1+QJvE5BqOgmfK_$X*P0*x6beoRN|0FV zBu+T9^1E5}1I>g&wC|Bn^{(R$!_A@+E4<}3n|QMU=H|GuQZRAZ+zSZ}SS{MNj&mi0 zRY+fp&8IQn-}zGeIVj+qntrIP-IpXF?2xAoyT|i)X+@HL$+|t{#ZAvBrd?L!=9aLy z%@CY;X7U41O6VpHq<1UBk2vi~afo_h1Xrb{vQ%cE|Fvi8EjFCP^~ zabJnB#=NPyBD*BaNSQW*VI+TbEmlu2&HD<4U_UQNUR_`K~u~XWideSoLc(k)vEtG^CT* zG`Zdarw^M&6C=~oi^6W#WL!BMe{E&Gg9Arbg2gg;cO^sJ#+L$ zWBP!R+lcV(p-B#aK<&Ly>?*3fngF)TwSRSmGJ!zET{Brabip#AUPyChm}S9IFG!l{ z%+I_?Cl?zVm9nbGSU`Ksi%z1{vEPpxnv}!StZLIR4yl9y>GM~KIIbNdVs|xsuCpX=J#rE`8<@v*FO%Lb)=#c`~s7W#9EDhRI!G*VBK(y z5D`)jJo4o1={q}Kg%YGhdH~@PGate(xi{(OiQn~MMSZM;!kHNh*1-e<+YS5-j3b?2 zq7SYPWMn1a!^Gqxr4d1gZ5G`QQ(&4Ag*OcnWO}~9rz5xeE3Ycol5cj$@jggn@8x2* z)UpG-U2|Av7a)Hi=b^@SNp#`PEDfswF$nyx&rD*+4SF}`_U48`=1VnBn}aEm{Funk zSWQuC>r8yUkd_D(dKEqo`7i}}{#+a?O4 zDIg~&^q#d5-Ji>``G%gDDzV<~+=*qePTy_lbVjK?!d`>ygnhxwtyL65_G4A=A}{Dh zq;iS@h|Y-wJdeGj1b{KBTkst|klERM7*Hwy#ZO<~Q$5~GzC~WjZHz>=z3~>oAVbbv zzmgOw2JQ#Kv)GT9dwrXGJKz5(Jw%&rYPjfi;TI|dyVJrvaZ*ivGRT;i>R6}8B>7*j zbJi0%9UfLcYKp+TU9qXLSp`rm`)3(g6YOdHa4cv2Y)-JCPZ&g1Z*%F~T@dw@_HA~- zxeq6NeOi{(yh(ziMZ)4yIfDP6nhTg;)$=9N_-{KO!ZB@c@e$(SVH`%0b3YF`lgX)? zmPOF$H%(2yD*LrQ;d*vDgW=s=2h+1RYg?DCXa2gXNT~W+Hu+pBZ$bO8IlS+nqXw^| zBM2iS@v_S^5P@J5V0gw2hamKs7Wro(xWlv)U$%_D)AA{;Mb;l$7?FOK*2{U?f_M(W z4#aOFFlOC*Grkxzi#w)?qgNP48e=dJ*`EYNKfLm6BlZ-j@VMi+{0T>$Y6e%gC|6;v z4=~J;U-H`Rv(<}l7sEXpm?7;(jXl{O>aLca zP;<5GjkKb?74YTOqJAtFKzq|v(-+j{(@?GPIKVS95tsog!>*S60XwAsnYHqG)dW<#@2UIte}({hi5+*r;^rQeDpKps%Ql|LRink z=CR6^g!&1h1Ks5JplDey{0{E~MNPgvQNeH21%lrCFFh~_7#;b73>@zaFo0B}hXo(J z#OVP*a2!ZeK|x0LfazsE0=vAP5xpQ58{e}Xtzn5B`l%b)PM2PI{UmZ`}XbW%4eE=4-VAbQ|zojxNh6BnLDzTlx-stKQP0|=pi5R7qw0g}ivih_z$ zN`Pc6h9K3P5vFz^s^};EaGwq5yEdpH4Um!3Lju85e*w5hg)|yEkihSklp#pqhWjij zaK_T%_)PG>g`7N9$25qwhR3WB{&pp8G2;J-#qe6%xdFHO2AeceqW`Q#`J1X4*a>V4 z;Y4EVTMA!^vxOA;$ZDCt!CPots~0yn*Erio(G!n)@W*|^D_=Wy;f*k=tF~9Zmr)dn zCzfODoJ@UXXs>1NP-A4#YmmhGXavn<+z_gJ`>cZaGo@Iz2J)=M7{{ zJ;n45y6T86%gls;?`*1bFl=sXf1H<+2AiBU`}H6YM=+eFPoz%Sg=s>Dva{ls1mJO? zTWP*i(U7Ec^3%Z$g`f%l##*mSt_wOa-d&(0A0@(ms#pY$P8SX-ZAVg)> zpsk00`SNH__*AQ#=>~|-wScS`e>RBCs6NsQ18sz`Q({qI(fOQUY10Mt%YO^v{>w>TEBSR zi>oS_n(}3A8W+^iWG~}cr3Bv#s3W>CFUJm0ejS>=V^X>!UmDV@|xH@hWB5yhc zuXagN9&cY%tMFc@?PqIxYmy+OSGU`O5gvK2Yaic7tFAiaz`*T*dLafG4tz~<{L=*n z1iRA9k6#TYhCWcSFW6P4&4yOea4q&Fy6Mbkfl&!{&@KmDXMWs7;2Q2bRU~gBtDs>o zNeUgzt#lWV4oq=C=5{Id0)=a+u5HaCtDZwXnX5u!bO%{LbXF-L40}KeG4lG*uU{E_AOMMd4ch=Q9&rc=;3fB`I@EFBuF!XcuT783*FH`4zO zxZ=AOG#fzwnh^u6!|A7Fqf5u{$IesB&EF?V9g5dyhcmbVh)|M3^!U*}qJEYbGFaK2 z#0I`dWniJzl~+;sJs^jty%7`^Yv#{r+=Q<#CleH22pEWpQ)lwX9b5uv064&fPlS+b zqZM<&o~(2`QgUJ$O29zuo%|4(uP+zAeibd;jfc(zz|+6+9EUrZ?#^|ymX-knV0Dsz zFn=Bg(*p-JjWR}+{_C#CZ~dR&on|-C9&{&ij%~0x9gtgIMPCkr_rc{WE_}pL*bCnZ z3d?M3AYq3)iUS7jPOFD3m9DVG)E&SJ1*`YXzZQib9R(``({n~0aGXEhgZnJU3vy*N zlEAeqef_?@nqICTH{?wuZFw#7F{`&i?NLpf<7G2noyziDxMHBmK=Z&P8jf>~^fSVF zFmD1h)DVg7D8erkb}OkfElv2i`s#7j5-;7~&l>SlgLRqNM90B`oFJ!3Z!I+~g7^$B zkD<7Y^U2QID5DVT!a*uS%0aL5KAD#Lk5^|WCC!!OQcFyxCl$386q*ohKGP#?pNL0_ zG0d|NfxU%N?);5-{u0rA@S7+4>7&sDwppXmJaj`?8D#?9@k90l(a-Vg>E`q1zXh9B zEsyo)21!OKE@yf_^P?a!d>O%I$~z&Bg| z{KuO5lVh07O|keMJh@ks$3EfHm`nFk6qNS&_PxPbKN1c~Ds8?;y>OzV;B0$XVQ=LQx12PJ2~x!&?qm%Tl)eivoas}<)&`&84*`tT{?ou45c+RPjX;imIsuwmXJs;5Klbii3#Q0kSLKcW+Y@xKcRce+GJ-RTlpMp(c)D`xrv zd|#_rj!Bm<&cad=Pq($+uKOY#CGCK-8EXOLAo{LJ2l({+_%87YR(e2EErULI*gm@X z*m6LuczdHTQHH`3=)x;unt9KH-4duW3nu}xk&Cu4-DS4wjNG}S$tO5H_$l1*S3Go6 z0HH1rN4WcDUK${}+a@ICZ(ZC#*`6h6EK7)q2OePook_w)c5%-9AxwoT6E*>!XDxpM zy_C$yP!`aN2TiCVLn_z`_E((J%LUYuw%2%(GBL3Cve+5zmepidD|^#$=@2Wfp!?NR zUpV2SwaMg68}9+`X#n-Ust|TK-Qk@HXu7dM*@>KO~@YA_S!geT; zxLp>TbIo9^WI=ZuT?ErRN;LqRSZX$7)+{MdSSiDnSdSwQ+6Yqb#nF393O_Ow-rRZD z1MtC55vP=~4kwe+$#2C8b3Q6*<^!T_D^X($HS$*Ns2(pd5~m<_QgfsetRt77rwh}yjg#yx`@p|%;RnzvAN8~6i5D;EQg*azSU-+F9W;M>-%sM=r4J zY%}@{t+!2883WSGMgw_85U#I}O75Rr0Q_D5;Du8|l@ zHWBq-r2&(pezi>6+daPx-qwVIQ3A6$h}GxIH72G*;HeRgyXKy?Uf!HvVg$M3Vs?lo j7HB*8-{6~e<}KKy%g|C8?m&3=nE}vH(NX@WXdCq(XawjJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ae03154975f397f8ed1b84f2d4bf9783ecfa26 GIT binary patch literal 10413 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 XdJ+W}DiIkV00000NkvXXu0mjfKBlg6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2c18de9e66108411737e910f5c1972476f03ddbf GIT binary patch literal 9128 zcmb`NcT^K!5btji2)!5SAPPuNq)Ls56s4*38hVo^(nUfO6%ZAH(6N9hNR=iCp@USV zNUs_|I-wKc#ou}5-}laWIcKxU$(_yIot@8o_s%{sGSH@@=As4w(CO-E-X`sF|29fE z>HYT9T?zm$_~>e0H4dIw&!!4C9vSZxNlr9*d^_s#H!1R~WS_6MVYz@X@%G!e zXHz-tb|VivQj`iFZDUWNj>i`*9rwT8VC9f`)ww2)D0tG&WBFX^J|oMigqUy#_eV)Q z<3?;pz6pkr(;Z)thNWZ3Tu^XIU(m2~K2{iFEAS`~Gy5VW_tC>i*Cl0kv`b9xtW+!e zPD_a1*)E4YGCWy+8(ZVrP7}Y9URLg*>8E8fyY^0u;VQCkoBQJ<_5zdXl(d!zb~b;b z)6|dkG)>oK`*erN6Q98nTc z*T4b)onLqyA@?UYxy_MYQjd+D&|e(Pm(0oT&BjWQ4@?kFIoB**?M#(;rSUW9SnG<- zSt-|WaL6iG_P3uZd9eIpr{TtNWC*$Hh2Qz?uBS}bIbRfO#e{zRE!IEy&YexD%F}@N zL-y@k#YdI*GK@^S9Mw$gu9^2z1mSnEkrdxz+MPN|ZNhhS)_oYvhM)cLTYGn3J-&{3 z*gO%dE$+F=!pgEJp;TQOxUvmXY0MZXd)l&aIQ@q%&TOO4FwrA~ak$>;=zXV4zzr%` z=0~OcyNxrVAu`L~2ctf1)jOUXrl5QhI{u_3cR4;2>t?n_c`o(TMz?xA14+Wh$Va%BY0&2$WKO9mM2sYf3h-OCY*=ZOJ$Ngw)1D_iorRZXHQZi4&2K7qT927nQC0Lrg3 z(#lL522bDvLQQ|!4#s}u&v;Yf6v=QytSm1*VR`JzNHPFHGlJ!`WMgHC3lNnE^`=*0 zy?^9tJWsJlLSn+d=%5(DNQYCcv%)omexK}hyZmUHWQF=7JRFKXB_b-*?UD4{x!=dVwazRjll3YN!e1GQ6{ViI{ zhkd)N+MWKT`q_V0)j;tA_oAca{;nI(Y$Pb7t7Zgb7)DUREOEf@igE4Q;TqcgkX-wd zJ;8G+7!?>DALr#bk)GNchOvQs{BBN~iU1F0&RMR&ou$CHl>C|ZrZ@PkAenI@K>Al% zQ7|N8uxRTq4vM*lnm?oa%}HLn-3G$yJC_b75?=65k%LM)%(H@{N`65=i4pdO>Mz+= zLeav25B?f086=X6O6;%!2@%ZP1|;Nvbnj_2aSc+8ZOx$k{x3Drh^ zc*UWh!@lFm$>1}Uo>u2rUqXSar;=W-2Mqo41Pl(rQD;>HWC;@e#W@Z29HUt(caNqC zC&6BqG(7E8;B^rX*m6|Ejm>-6L>RWQs{?%J*!{N&Cn3FMX$DmBS8~(Emio*Dj(^J_ zk~mE@d*561epZk|Er>78iC#q_4Sp0Y3GD6B@JKKrmyoJG4WGBh)HqTZZw>kH>(OJH zlp#iE)N?g*Z@4^*MV+s+H!!1LJlIN*`JxC#o-v0{2|BS}}kDUMqX8%d%;Zo1pF*{G_rVrzNd`M2ya!T0DJTesuRVwL9u7n&PS ze_~l@1G?`(riUCq#<3T)^gi`sw~pk^JSP})C#_iBKTD*{^N7d0$A0wJ3#IRYe;0q4 zA*$YJb_LE1lo-`!M^fB~U00SLiLywh>%-_CXgSb{ju=7v+FzB+78O;y>TeZvRv&RoWxTLP?d+9Zi&Ypua2+{3 z?&P=TOQKt{%~L~p0$j8^;iia9j_>fKovkcwq%sUQ@nh>Z!)%cfJ0$;z4CPrz6I0OU z@+^ZT$qbq`@V*LyaM7l>CZ1ZQo!IplAN5a81(Tt~ztAbYc(d{@u2@?f2YdnGcoX!#60Ixw-Nvix#$k1X*NJg)beTLqL8^6*<{2f@@ns|Q}RjZ!$JIHK8NbS8xrmu#@ z6ulfiVr7xxNb~dV#acSrSX_pQm;bUeyjdV!{OZy#M4(A` zwu81?V`O!?oZ`D{REMi+x!1hB*6Cy(I?k8T%kET=uKQWo39E}=ca$my=uHTEyP8y z54Nz1YH*)(w%#ztIo^C*PQOjte`Hel~gpFN_jZaXoFZnUzuu<)94E6T<5ZU?s4>c zpU3Uo@d?+!hgYmVil!6X(ly;KNm*OwbI8{z3v|%I_4HT>Nt&7^q0@@SPXaA`iAvAR zSr*v1muELwpeL3wqu$P7L5q4m)-N%|J6fE`4!V+xyrOkr+X2!LT$k#tFYksHJH=n z3F!I2Qe4B5pnFmAer;+($yQcgD*uHlDurPx@2dd)1-RjhQe(5`*~SLS`q|S9v+`3~ zQ>IMi+hcTX^%}_YWT=}koWlGSwSH~mOvRNJ&Sfrc>H__ux(6*kTUubhdoQN>V2}J< zR)ymBx4g=I%zlp1J+QjI7joltSLskIt}qG%d@lfB@0(d>+A&l+Glwv&La86NxDmfT zNv>`p7eT?@iBSF8R6M^wCx1D;HRt!F#6s8>2mF;&B-MF;2m~@G4CaiZ!p=4aG-$V0 zYR+PtSNvY$YwW0OPYxL-i+8&!G0&s(?(IcQ&Iv2 z0Nx*-7_~pZT6#2L-so8nF7QMgH5}#22w+dCGMyllm->HAO8q%eYuJ_BHB7343cyG+ zgo9$W05T7{CPl`Zw^P=q+#rx_`T2%M zMCeCJLfZT%fI{csusPnQ7Xv@XSzVNmPU{iX2w134>~=VfgQ82*rq^p^97wA647vgT`a# z85e!NpbSl#8uA*dnopv4RMby4F4MY{UFn^r{Li3l%Ume;QtBh5?8wCixw0*zSQ${* z6)@M`djm|Nz;H2K_j1ACvx90`pqKN#`9b8Cd=@J|$6R{ZYc5yw){(D1GtABWH=Zy` z-HxQuV(8LOB`UjI4iAOJ34LY@KVEmPb@XIC)FfA6m5B&*8T*hQyR{mweAL1#*kA9n z;O}eZUE%DcD;yjrQM!F!8~hPzPrCH2Fvr-ItjJE$$pV*gv9>ye(q2lsB=uQP$h%X% zlekK6q~fP4niGy&O9mR~_I;)G@;?e;L8#rja{}{3_rR(d$+fAsX?PiFx`2ashkOGP zw9A><#);kE3G}H}!W&WxH1$sg*P@*n!{=#L{PK)y~GHI;RsgpA$#8cpY~ zct*9kjG$l!k{*0T43n={dVV!idt6Zw;lPW%!2K;#E>?J>D|V%r^A`&*)MdYZJT>jL z*;x5TTDFevc8OARtqyN`Wyt;0MTTO-DDG|wtNxUqM1$~ye0&&wUtZ&eqI0=0|Y{WT*|Ia1An)J!bjzf9y3P874R^|FamuD zD47YqkS6Zsd3^fEq_zq1i3zN7fM#ldxb7Z@0Y;<&n|qFI`e8q;TO3t$s`geh?U*oK zp&F$0CKJFD-a%BYO^4KA!5J4T1f9rK@Izkpt4qui#^S_s8AE_pvL7$dKQ z*TXfMJYx+MCq$g?pCj@15ZQdjbAm~v`@A?MCg`$$;e!iKvcv423 z^QOF{_mgOGh3-cDZ={Gyr z_&&UYqVw>f(5K`SHp~Mm5XB0N9$~=XOXd$uQNj=bO95ChnZX9K@n&#T?vXPDfqt07xJZVvBuujM>H*4hP6HvbJ~#$K=z-vNQnRCryVz5?3YqR02@1#K{#%aX?h4VQ45b zcmM<+1V?|eCnx}P7(IWh<1mpP1d4*Z4r1WAfB;C4dhrfKPC^**Pz;nD$YOJ0I9i3T zdQ`v*UjtnCM$WL`J8L<$;~1_X+Oyzj(IKG(tLOn!YS8Vny{ z@>lc1XCA-~hhrD7h1@0O)T))gw+GcvsVwxcnaCv{EQzu|qcwKGyiwb`TTP(}njGXHh$KxOryTWq$B1F6I8!hh2O<$rL^FOXZoKME=~3M&0eN93bd- zfpL<(mU)+asMc@#Mvb?Ws^Rw;E;iny$Mb$bu)1ovt0lOm4f(~cAmY<65o0ePN*$EX zrmHUhGI1J_t=@d`{#mmFd?eV^Q&jw>g^;Pf)7JHdLzQB*87{77?Kto0xMvGjC=&M5EOW+c zXpXOY6|Uf)0am19ZLde+hX5J6c11*#mSinvk^A4NWc#m5P)?v~|Bppv*0~T;-^rI9{w3{`~5)bC}`nF?zGx z#@S`#(Q@kl-1Fmze)A@u^#@9=c>MA>$*eslP^G`Zvb5N|sKK{mQ*V?4eX_x+nT?*N zalRRl;P=w1HG57g+d^AJQCZh4&g{?mbJZuj*>jJpGL#!`*C>{MRd4-HML#+BNUG#EHx5`rs8QUMda13u9eMG(lKCYTHCS2gO0L&PIU zkkI-^jv5$aR|blKRsJ6xJ^?au7%A7>eD6+l!ALkEL&*RPl442Nll#UeUv)cn5=YV~ zP)$eQ=SZYMG+hSAy@o*c95}KXP7(~*M%`ovFuZos#RM5t0XkRn?DdjD!7zh+HMGoz6C^Gk*}xdzg{VaE0-2L4An_I# z_)DVjA|u=a+{fkuUkWg+!HA~@f87&ENbQ{u_}}LPin9T}}BZ5K1W#~XT5z0gcc+cy7@$?+tH6Ta*1qVBL@ zBwd%m=LAwRv8~~Cx3MfLmwax@N%=M`ciGYizcDPi#Qug{`#^)V(iZGpR*3ayNFiWv zCT;%Yg?Tn;SO3Pvyu6Dolgt$Pq@8;O(nD{uHM<__6!t9UUP@K#N73GQB){T~9Hpci z<4P6T>Kb;ktBMTne4`e~@)E&sIdENQj5G9OYu`7~bvsRTeRl1z?i^aI{)?VNlekCC zXJKVy+B;Z0|Abe1cpfcW)93y`*4%NW#+1!-OVtut{#3Q5fvBQ-b<*gu4x4f6pmz-x)Q8wc+4G^!kGq??b_{28Zdu9+dS0=wgR`1Va^@f*j96v zE?=;Q{AtjKXi>F3-EkrPfL<`s@S z(Cl$t|NBt^_k;7j{U(%~9iLt{7g5yFfhq?^mE$`_Z>W$9l{seeXUdzmz8$X$3_fz0 zNc_d*naeGkU7&S83}C%)Owd-QTjWCq)4F3puS?Y*tOH3*JX`9t7=HyB%;}BFw)~fX zP3M8Ef?E#|5Tf;EuVktd)#&vh7trJcyxkI{{O|eok{tE^hzi3_4LW$*rN)J?Qmy@$ z@GmJ)5nOLC0(h_C(Ayd(aO3hP5pxuMsRZfvoFgBCNNrsu!(1gLl_W1XDWi)1KiM4& z4TFIN4Z44?71-@F^TGn<^DjNF#jfDTD;qdJ36mB3{oK$>kk1T9x32)H^4{v<&J$?GFZQeeKn zog^e?9JHCkaVAg{99*Xytpn)yWZ-y+!;hT(I=Fwaat_Fckc87LJ*r7!)y;@7k^fUK zxl{eySNWG_U%a8X+L`q+Pwk<%iyJN!iw;Q%=1>$p(4~A8CwtPS13^pt$BA_79TEm3 z!hx@gB4KmstaCTszUdc8*ch3y0f@{;*awP0cxYg(J0u?XLQsFzBA;#(`vHd`I*lBM z;(99!j{626=)R8+$DgEz-MfuzaGI&_b*%9#-BUQaw^>IHgp<=gob@UA0r`@#>-qw0 zpfFP4HZ?#}t^J2jFG?J|6<^ALo3?t>Oz5`IuInteCESw+$NTFo3L77A?}>NbqA$vz z-v81kRTwtLT8^1Hkf#X&iRsn`fKmr-Mu&N{*qwp;$qBXyT}BAQ@L;wB^UWEXX)3_b zh&*ke8czIhFd!IxCi_N!jnrKGIQpfPR2xJo1%*JNF^PvDwB;>G~7@ zQVZ23Q}9_P0C|)?QPY(DS0!&Y!!b^`S|XCy zKNy*Kil!;HIXgI}+mn{ko*V0S7_|JPJm`{p{nOe9Vi^>B;a*toh zNY>_;v-=$AgIA44ebwp@a!75wJN7K9j;+SW z8uoQjVUb03=55d=@#Y_9`Fs=Ut|9xs?0ce>@0mn&q+oSJdb^!tTO8;mb$%l));(4- zKPebA@3lPn z@G1otTd9DCo-AAllf-ruy4anJn=H{RXLG>6j;g|@m(&__Lzek=U-sRZzRO1lOrtOJ zm+5k9slTfFKsku7%a$T6ENphjA3uy9eG=kh6ii90n}D&mc!E$-XY)ycsx6qljq9PY zpDzzbG!`4}xmvrE+7f*Jx351b!!}L5XmvDjt;&0$*g9U$nbVZwscA2!5>S?vG~K*d zPzXIIrnkt|yfEO5^dk>cVc0*&Hh$%zYA8nPL(Hwwk?vVuZpJ+&#LxCsujZ^dalGUq zk8X*2y(traI^+1KZEu-(_j%t<)w?tI>hVd#CUfisw!-|mSM{#>X=67C83>oRW^)Nc z_@hYvV5!q}p#c+`qTV9*kqk5GkA6Z;&)MXHw7m;gzS)ito45k#Ejt_oX>5cfTLfXUX@_N^+#UicK@ zbUwcCAj!Nyi??H{sraN8NiTB?aleSuG-iy_c^*{zg2xn*m1e+7rBnP~o!PuP9z$Gcf(C!4f_G&|`v9JI zHr460gE4qwW4yYiYMyx4c#(d_<1JDCcBZLe=D9DE4fC#q8)2D2Dpnaszf0h1)i*7) zxyKd8y*&dyiKySsH2Uj5(~gfdkoWmaI$)6ycN3CquawfZ+R8$$x+k;L>%Fd*;XYy0 zkq~3{maC~f(~h3ZUsXWo-EodvK!+KO{DW8g|IOnpPq%l@9Ky`Dd0%sz0@6$Ox`Aei I20H400LcNok^lez literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..beed3cdd2c32af5114a7dc70b9ef5b698eb8797e GIT binary patch literal 15132 zcmZvDWmr_-8||54h>`B@4yC)hOQZ#cM!EzfhmdZRPLWXQlpaz*O1gvrk&^D_^84TW z@jlOq4`=WFp4extwb#3MjEilFPELs0YL1Js)Fn* zzr}qsbfZ_wbNOa4S@vf>;bE~>+%RD!>v%IFV#WTd^7(B=#T|Xno7mV6xS4f=u6692 zQq~7{i;;}Y46D{(Y+R?~SpnS3W=+e#JKDJX-SSUi>9(#}mwE5Tv-r0dn5ZY||9_k1 zWM~Q&Gt=O&6oAqZ3T;9&9$g)JWBOFs0NWF6vYJZJ24_?zn}`jXIHjr$^?F69z!2p< zy%t?XyTRP;!zMXPY^&6kR$$J?UW%?3bCC4XDqr@?ukqAzCEf6lUi%~QE1bZLYf8h# zNIFjy{z&gk+iBasaZQZklPN%Bhl~H-pewWJX`t_4w;I)?=gcrEWq1%u$-pwhg=Fn& zj3nJfbY`j%G4F^8@$CZRg?Lweh*w;b>{2YdOIAi*x9?W^yUNovn|q?NJ#6TPeU_fVowC-#v9#b~gYH6zAw5m28>MUeJ4Tj* znIVgljj#XhW$ zhiz?z_2X4xbgPrk6@%1I-IDPigjXj6D_rk=N!MHKhrgxgN|sX9wAG{r8mKBc5uYx! zD6;oWKPFPVaeKY+;_tfGk8dnA3*mxhD6c6ylsqfXvWFU-T3PF_*(Y_!aR4ycp@UiK zL{0B(1-*H{F=ezF{RJj(g)4PzJx50@A1Bg2>XU|TM&*KjHze0G!vbN}?9#L0`)Mh& zSDg1vm!sTu701b=n&--{Q{n2DpuDb{%No!D^gwg^bAW&J!~L20v4&-T0QrdY*80B?ozklkW% z0rk7=VB9&#oB_RdT&RhUD^ z<%mehua9i+?=)hn7$VmdJdx(xObB8b; zd)9+r z`yz+r{dSM5hDz=4ys1#(+WoWqC+KtBRNG8x2R zkNK+s#C-E*)s>kZCpyIRfB`}hQ6FwUXyKlgYs)!v{kjY>{yEe5^Qr5JEe^d*zcU@; zK#oE%1w&_PZ%A@P#G}S>`1qbU0tkHPO<2-5_Uhe0Y6$FovD9c;Ov~qVD?l$$zpcmn z8BGk}4~3UeEkzOUc<9FqtY1TqoY%qGS&?kSM=O3g}NY85}H(VQS~6J6eJsX=%$ zf%etV-q-i9X(#Qm$6xDNs6>@0-*1b4*6TC?1v|R@FkpbQLy%N<#0-I&1swvEMn?Y( zQKWmqz2#a=uq>R|^cdhnkaB3z*DB@@Q=Jpj%9EBXLuo{WDl~W0E}qH^aARnpD#`Dn zAO=+iepMRRSE1j%9nTDc{=3ACQK(De^37Zvsl54F9`aO8G+M-hmV$3r9l|3HavVov z=cO%-IOVsvo}L%}Jm> zX9gR60KV3P&h$KA;XH%c12K@uFzJy5i9S6?U7BKXLk4&WhD>E$HbfP_Ojp5OF9rfm zT$`)n#dWaGB<22Cl)AZ@Gv7i0;!*>IUJv7##H1X4+Wx!Jki<;jka&jGH6W2$nzJ4> z6yD|%yOMzcBZj~}DSWA5Qj5Q$P>edSrrCzs=X;k&irN=Q9KBAfO4RZ>klxjm*H%`2m5c(y7Pw zcP@DyYA!WftG!MB6T>V!I>_ym+&LEFyikRHI`-j@U5hGl(;JWZbO|orN^1|6{D4+0 z>5k@1pQ`!&UM0WB;(#4ds`}Zu6)B_YebI)X)jZRhJn}_frc0jF4SFi~JHS=t;knPP z&yEu(+8%qK>YIlcGahTfF6Ze^7edgT$J`6#2qm|n26OTFDY|d8s~3hl zpLtuXp@mq2GW8<6|E)D{#yU2)#iuPY!=|5Hmo-<*yo(QYr$3HQqx#%vtHjS|I7NiRxC6lDQq< zTXIalFx_Ncd(TZ(!iRaFymyh~tc4h-VJo_vaMKP(y_b-@V9j{@6aA&=*?g2r3#HBa z-Q(IP$--;P*a%%PO{^%D$`G{5nl&>sUgEN|s^PG}Jh>ISvD%;O|psp}p`-pKAK?pbIHTV?a9?u}(q*GCDRrVm> z0lC9`wd;C96R!Yg%?DnK2`W*_@jf%9IPnwdr@BgGxWS)z)J>cDasy)mt3Y7)p=txP zM)#~H^+!85n&7b%$l{U`iUrdD?1+BT#+yClM)OQek##8!6GFE0paMGl~ znJT5wR_VzqeBv^?U47rJ0!hXwG=8QSN^}EyUNDp2J?(D#FGFgCo^@;lRCMe2zczB^ zM%9XHn3ccHp;wqZ^Uy8mD<>D6R1W$5gqQ>%@AfWuiX0~?SIt2=9&6BS)f-v(V+-C6 zBfbm+ypV$sk2v=A1#JUeO~Sbved*o%-1Huvn%MCF?%m%fP5;xCPP|-(b1@laO;e4- zd6?k_0KN;j`6NXEVgi#X0MXBw38O@O`lZ=y4(f@Vx@QT9*Vpgk{{$@lzYwyh%?NrN zGtU^kn)F6?fKBPA{djTaw^L#(7F&HK0b>+C#os)3 zXBq#MC^QE6lzK^4733pD>UE36G;-{`GpU&0a|`(V-vTwp@G~>2EL6F$*&3YMPp-<3 z$pGu8`_-xR9b-}m{9;+irLXejrTbK_!ep%zGnh;U{^iGo^_=F2)RW>Gnr99OXB*dm zfO+ugGg0L-0>cKR_lG&~a#|_x2{kD1`&ncdCyi6M^Lm931EU`O+-XCCFYRAnjs5f6 zUa^V+z|fk5UB$rN`lRE$u7^I~$Cjw-;Cp6f)HA(2LU;};f)pd4T8-D?I2up+3G(m$&;vg0~+JOD};L`gqqk*eJg+xpbq{T}SE4${0xj>in~=ldQi1rE&?>CiYw2 z#vg0Xtv2hPZfP@t{cR}nkn`imMzN%Ni-Y?Fuhn*~A(k1`mx6vQI)vLRy&;WKU0n}B z@ZJ|)Fn=>TPu!<>B>2~#eYSLuW5D_)A)V?!{Y4XguE!i#eiyl1d{uE|RTBFea zM(g%RB^85qT#!n$qYwxcyR1CEXmt{nlJiLD0Zs8{OI%+d`MxVXSwT?e&2t6`t3 za4o!LrCv}!1now|E(qC6Hf>E@-0qF^3NbW7_qjxU<9CDT$8j)VXDt{8H;2Pzmw@Nb zJ}1NB7;d^GlLw5^EU`sTe0n9Pg~GmQIXwnxEAeh@zS%X#f?&FG!fvUXW1I^%m4Huq zFb9-|D>sEz%pg}Dy}4S#5$%jBg@1FfhQKlNSk?MlP{oDv8s=i*#C%7KTfKRpT((!vAA*0?h5%4doY~|3yq_DA32&6T2RHbNq-AItD)b&W z5)Ng>T|a!hlRxqb6(lwy3n#TR>Q{5$zoTQ(7Yp23btrx0L6lb;lMIld_ZsBm;X65W zhL~-DK~O*?iR1lG`e>ZDti=^0@Hu{22rk-ri$|Mhlfjx zz}x1wtNp{S65T4sftJev1F_{RMAe{B#a1+VB3lE#HN&bH7Rc8 z9d*c27p;2oA4ZYZSk)abazBuwEu8=L?5J?TG~{R3V8o868I?F z#Lt>o_|ohZd7psYl9Vtz6-np(@R&^Q6yKF@# zKK_Phwv=G^eE6%t(B0N4(**az{Z$|8Nab8SLz)m@0bPk@Wo;!3I&BJu}Fl z{}e^!Iy||DQ~DlD9=@%{OB>I8fpV4ZTC})4v8^-k&+wR4`hMI|wtCe3@xtk*M_gV& zT7}a{1ERd3c8RiWPPBvInQ4k+GPxSExF}CJt9v>(EoD>AsA|3ioYaprn4PVQ}7|zFbK2=iyU{SL8K#I2+N-*;IUC zGNwTD;XDPHkYcjzxc(jT?|J#?A9c3l*&Jc_`dkI4Rs7QC{PM6ty6TzkxCMvgm=@WZ zf59SoAflkydVV7?TYoT5`U(N`-HxGa2z_V)YRIz`HRRE3`12J1-lEtmojvMCPtH+1 z)V=IiqG9TR@`K%FOk2#6!1{1OD;*%xRAYo%)EDc|<)I;%EXi}?^()_B6K`pYE*`4Sg)tmZ&*^v8jAGJgK-rh(nO znii&AGyPojK+Ee9+EI?hH-rm&m>=`lAO7{E>D1JKm7n{&r&z%Cwi})WQZ*k0bJ6u=B0Pn1}ek~+ch_lXwn zuc_uu@YRZb$iGWq5BG|g|^Wd_oh(t2hEHAQ>~0CE_L3eNN1(NZ={TZ z*Q&K4gY{whUfZO+x8Pi73^^HTU(N+4u|z~}-7IGjQufEje1K4zazaTk96zyU#Oomt z{bZ_BZ#I(ren>G~3QNkj-ElHS()&+TCR+bjq4vO-*_o`jyU7mwVd?J!edfIxKubK~ znqmum7Gd^m1|fh?4|kW$?Yo6*!cTvq_fNlm%+Olmz3Wf^I(4mQ zO~z#3)9fPojD(VbPK-c6xq)}DM$borMa#X!P?x0&SBqzQG-BST1On6bd~bfeDWpmL zg;dMkgsT6muQ^9L>bR6T?+9!G07EA3XvMR&Q}8^MSfgNeA zEzFXFyts}my(yK#E3|dx>wH+PW-82HFn_p_ z{;sH%Izw2f?je+3ZGMKbJJ%-MUk6I$Q3lW`X#vZ{OC+X9zuDb|vQX4W2a2z2W*Oj)w$<7+lPbGYqEE4!Y z5j4*J(;o`UAc^wryi7M1qZAX{UySopT5y$cT@|8wdo0j-F+*z55(QN4-0X9E2(%0w z->Pj3_BQrPW?JjaUyorsqkqgQ;wow+pkug_qLB3byas`FE+^x`c+_Iv!A2o)GczmY zAV6d5;m~?7FDJ}pHp;5ORZwuDRq(s2BNghbg+aq0nsM$z_3LiUp~h}O&p9WQTkF%8 zM=j%0_<0RSBT*koU?wS=bWkoexJwQclztyKASoPa^=_gN4ebgz`-%PQ4pC%-=4Vq0 zfe#O}LUsDlrtPI4qXRa|3{g~nzfS$+u@EI(83`y$`zM*F4ZrP)V>J3FyYXx}ZGKDg zcnAHvt{Rs*n3G9nWAYgvN_?47{`Qg%8)$u7L&yUCg=`X~0xo?Nm zOT?BaawiXVZT^N9@PB8m9mlRme!pMhW#CUp&O)q1Ff49V5&%z22#hJ2F`M#8APaP0 z$_Rp4aJOUiQWa7(@mp|%WL)nG$d&Zv_rF<$bdOHX?n0#JYw}R-L?73ZR{Dh~d)_hC zut16KfP{BGRQ-I6p%4Q2bsb~&j&!tu<3}y`>iw3ht$>i661@OYn_Xr&XV#5d@S|oP zA@W{))lxW_UJQXd+s5{jYwPj)u*;o$QivH&LtwNF#bMPtindqcy_Sg_0jNOW`lS26z`VMFkJaH+Sv!=ug__rdCdmKpW)`?T6Ob{o>w!vsy+D z-B>}mgAw_|pUbN&6M&;nPF~<=LStpG+Z5n5r71uf?m?gQ-F4dx9x_V$5%CbECK$Gw zzJ2<^i95T446#0C`xOGneN913e!;7o!R%C)^uMCe0=Tn<*P?H{k7Z&~3QPz=NJW=T zj3CEU61-h1U6W|>zbw|;d_CCnt>k5|J0cEO>N_La+8&pSKU3E{M-On-Vw%ehQ{LlX zxIB8%LF!fTxKT!H6<|d62Qh9ehYjV*#xl%&Z~JpAI7ZChyU6I`b9k!^*geM*&r!)0 z`P_*C_$(P{7dfN3zXX2lZVtYo4StL|JW2|=e>3xO1G$K#=;n=dYTEcI0n01mkFdT* zZlxjCcP7Y5aQ>oPVpawo8YKRl#hc>oIaxO{*fKmVk?3H*sQ8bIy$$PNS zm^QUJj;!T<|8X&Tmhjigq?%e(ppMY%uLMndna;mU(!hA{kXVc%0H6AUgIMB;Y2q3as&sY398#kE0 zW83CIlm!|%OO&SzQ41d zS$iN9BrRi!79O=xyI?ngbQV~+RpO` zgt2WYwEdm=V<3qZ)gKkzTAP9Zf$LsE<)l0?cLpV{+UkiYYIQGnS~Bad;H{xUx0IA93P!Z$Ub zRs}&&XlPF1+UESgi+B-d`JNY2Bfq~xE9@Kpnx?;#;mg;m75vQ*?*d4Tztw|nTLS^Y zH-`iqEf>b-r);F3Q~_D`cZH$BGWu)siXg~pRDs3)1|az7kgqJm2#$NR_{p2Y23-4BY)ULyBEa^$KdzDc9uq0^ACB~H-gaD=Y4z@9VVD}V$kHmZY*Zd--RR|Y0w6WlPWsSq`9?!a)pOu312EGz zk4m+W%p>D^0mr(5WfHSjGm4$@-XbLhSU&;M=<@H`iuaG1?)qq49eVAA5|f{k5V){} z8uBYG8s*=a?&=i4q?=aPx<^%phdi8kO`X$JJFg~83BLUMcYF-+MJbGo^^{rW9Z@->vG69q4q3;`%j1PYG2lz1;eHLUAMDldZP&8yIZ=zAT!_W^5Gh_b#n%EiU zZ%Fin+oCFPL;K`A8?8xGtUp%fnKU^o)jCC>R2*P%Cfi#_LmHjMEJxhmc}|a?*)R;# zbyHfgLFFpb00`ZaHUnRQmT#aiiK}x0gu+pd23%n_RUjE4QhiC3{(j_k)DA`~jo|p# z#u5J(u73}=8;tpFvdM1RcA}^T|4=?G_T`x+6LdEhUm=K9erRBQI z%4?gf+wXzRB%6mX!*t}t3Kv1nsQ~!hZbTr0bFyUkaDfV!snDh2##9g(Hhul2EW747 zgi;TxQ%{3b>Mc4N=|y#vIG(4HW=>NnpTpmFun$Rj02m`#o`ex0ONfET z4F{r7@emkC;R~!#dbkG?-M#lhIS+y-buu?tP{T}iowTIQI|Q3D*0|PFM=K&Z8(ngl zIFhy237n_38l?NRLR4+dQiB2V$&rEkfgtk?a6l=H7ExIM41_<)P%KaggZNGFqMZAL zMY&tS8=|yPYSZZFA&!dSI@Tu^@(_*Fml5a%4cZC)7jK+63+eEuZ3PCX_~(AjQOo`= zNPnlQ)GVKn42^BzfT?X|&6O%hoWj^?UbjQVlhMl_0`x{xa=q49T>Mx-$^2R5#O^pn z>2!Sz?&CdJ65j%GFWASd4pIV3tzxpdURHySx^q=6dVRBZ3a7`JP?PSBjkcQPh@?pe)x&( zA66UTKY_1wx3-Ur8yZU zi(!nn?u&oDM9#cLFP7RGZ@liCG@JKro%!fz2GqHc@fk04klM@5*ths6nRZJ%lI|p) ztyuO1VIcggf?H~xX6i7k&p4~V9`G>zjntUEflyoQ^SD~$lBIr*#v)di`!hHHzZ~Wd zJ-QNEBRBq)fz4l2#_xXm8YV8KB%v!-2Is(P`1=|D+zIhS-F?ZUgd{4ZvFP};cKr74 zvi0T|HHv$hL!f3guj8b`g!f?>1v>B0gS~UEbJ?|HOB?fc^jFhtGDY1pfHBHP3X70`g0Pl;1%{(WPrw) zLA={hi)#y_&B|CHDe{&@tUa4*`Gx7EV=fZARJ1+2VgS0L3UZC@{Wc`R>bF^Y|J_=) z6@zu_xnjZE0yN`sSuL5S5%*$tR?_Sn;IN zk+q_-5?}{FkQtG0br0boxa+}qf_r@ocNJU^!H6bY#l--XDfxMU;d>>l#G-kxw=U|n z4oX{wIsAKre7G+PF-;OsE5di0T5MG_-(T zhUl%sTLJ_I(vT32H{#nS1y2{d~Bk*>z;1fMDT#15#7$-u6_Yo!o9QuS!|5#-{ zC0)T!;?6@2clqJa$)sMARqIYV;r+ zk0)L=B>56L%h)=EE^|VE0=oK*K#|t8- zuPFs$^fLQzLGuZ2ZmXe@id)*N@}ZDUnL1)Z8A52hime?+&Bx7u|5)K3ImXEMUQge< zM`(Zo{DDFnt^k6F1jF&@18xC^>12aHE)&2k zs@Nwb?4XI^>w*cbU-d#dTM%R#VlaWL2MW8>deH&l@xZNi1uJB>M`h5y{I|JcKhaAgcz;0;FDw2<~EhliI5igwCTS&^FLFZSoB$eD>H zD10LcRu|WoR}}rm2%pHJGsgh+eOu9q0~qG^b(v)v%8_%bfYg<>q0IYcTAhF-kNC49 zGRJPK;g!YDNi0#B-0xu-ox&gG{wQ(DTXtXWgzKH6KjnvR?85x$A$ZN+G0#8>XkFb9 z9zWb_5-`)TxAZ%jIz@ik!2)usZWY?tyjjOd<;04s^5^fjU8zy`7I$70NYN82zW6h| z$X=NbEUMsfM*!<{`)e40n^{H-)`KJX!(mZdv-cC!9L+JvSVnSO(VKcNP;t?UGtk!b zSPgVYsnD9ejE;FGyPg{6YW6R5Q$rGiy%J(H)2LXP4eT;Slga?wulT3;iy&;Ia=@Rj z!U(jtPyK}8ZWprMhYw6rMgQS66{Y=o_anEEOn1Vj*{8icX-1vaY{+vNoJDFj0{pO( zMG_NH%h3QMU|oF!Z9ocohL5ayn*Z36RiYk>2PU&{vAU1j? zkRdJ8tizF;3llfJ+zh|bK4_O(7pI-9w^Y4gTB0F9sU?J)5ad=AE{p>o;579Jw#@~5OWbag~+3Mnyph?f@wbwu8 z=fB{(_w#nycZtQsdzOuJ=!+1W3GvhPtLJ9m8OpCA&1MCEcLm9=MUSexJUgvMnqDuz zd3!`HT>912mxR#8IDT6FH+LT`QmrCDq@~pdJ?clm$SLSgUD~0uNXRqN&U+KZqw7Df zzDBzgap!mUAGRk7ciu7Jh?&{>=jdQn1ag0rfaz2*?e8k)dfhWih%4+tNn18&)E9RC<4z zeXoG((fW36d;|?kq_y=zW+bjMr=HBC9G6~Oz67sXY9iWf{^(T=lY^M^#K>_LyRTd# zP2auGUqc^`u^ubR5w4Vs@kxf)dChil)2=KRi>a|4o@pNTPdUTmaKG~`#_vwS6!#k6 z{+4VvCc;c#xdy8hCDR;Cl~`TpA&O_}1i*3^LT54QK|MZcr> z_WFbw0$>}L+Ody2Uo6A7WL7!Jjsi|{&4b%5B5BgX4~e|uY}|YIqYsLi98Q<{`IYRM zg6GJnsy+;=)vhXW#}ZcT6Xz)uFQxpe`U{DB-KsDH#Ubr*#odC)p9`{S*v9t${JC%W zNwRP4qvDI=x+u!)g-*90R-vYQbpgwWYEHiCSSi3znGDt6hfK_&?&t8e#l%}MMpBFl zxE>$Q97^qR@(KeM*(xar8JyGv7=1lKpu)}4U@!(Ggn@EP+h#cPr~OUH-`QqXhlhNd zjl-d^u9-i0$Gp!aVs!#8LeIRnr-PZYrSHxBwm7LpU-rGj%`%3{jJ$YGlC;!ih7QtL z?Zt!uX4Po`%PTiH$H>#58o08=3zvG`f%ntyD#+pAjuhI>e65GIil-1!j zY|&2)#*BgVwZTom3H=~rSH4u71~5Evh9-a_APuJ-&g8=GsZ%XZ`qc>;Jya=i6~{(4 zze`0_$3fz?k)M$&6Q&2k9O@)|ms0J}WX+PQI!AD_7a~rK?MmT=*{6>HgTC8@7F?wW zQvP*i_&d*0XyEkG>uvdgHGS``HxH~dcZ(_r(SdxGqHQ%PTNR$W9pbwF`p%+Ykchrg zd;ZKP$e_{BKpcRu)<0Yc9BtI9zz>QDE10>pjI*RY^gW>ul4rjnPF^nE9*z_fjWPsx z;rz(NO!21+*w8E;HQ$iEs5?KQdY&WrS6@)|)f2@QGGUNb`pZ9QAe|~5VNk^MzNK=| z;9mAK2uc9Z4dpSjUqcHr9b7A0l!Z0R|#ihlchp@I~KLoS?6Doh)_ zu=K%3UGOn9lpxZdn;Jp5l_rCG^PfI$I}&ztJSpaMC0Dy0lkx;${plYda`3~ne*P2} z9ns|~NVrt6b{V?dJkGZr?$|N@3Us`o=$|_;^#S3=1iixlG*FRl!;~WTtHWQYrv4vi zfe1%Iyo&Usa1;vcWijV9f7lG3%s-7n>1JhqP#>q+%Q)cm8&5xe%t7J#7D4;Pq!ZrW z*g^ioamw?yQzmW9rs}H{8t5HMq^f8a;yr5&UFlvWAEjU8sr=MHK{6`(@8X=pB5QW2 z)rThuRkfKID&7*$00)V;uz|kjA&u<%qJ(-ftQI~Y0{FUqmAQ!dX>BIlbU4uR1a+&@ zkmj#sFi6@RVdl;od8!Nb$k?GwV+%UZN9AD$I^SFxGhyZiYBo6^FlHMmi!Ic%74vOR zTbAhK$tdDL$9G>b!@nzjgEd46*Yv8FuSvFht22=+*rv|+4$3b zZ!3S9Pw}ln%eG1#?EZ^BG{yxDUxw|9&~c^5s(?Zdx-((jv z13BIiNg7v<)1Ffv6D%?fSr_TBhX^49!*M=iw(6`RQc?jsR0}$}pNjkz<6%^oMiYn`-l$ug_5e zS1DRhObQInw-Hk}ce)nOJZ9INf!2B`WzZ4KR@X3E!~FpiZ)K(=-8Jv@E0_O7vHoC^ z*mjWnD^9@x&n<51a}BtoDA5<;<}xSCC+OaWNZ$ME3m&cIdTfwC4Zm$M?e4xF(O$|$ zrSzuPFiN2WDjj&+{!K)`jnAnWe@$`zFB!7C_VUHc>G-^C$sIK&2Yo??dG8%0cY(-P z1rmXM{)O0gYP&rAn2vYb`0|l9nE3ECc_<5>4C^-IkP5A?DipVEh9TOz&DpiYx%6@C z#Dno^dc`iX8XU-yP(<05{clKW%B~$F$=^>896~*gwp&*&IxfA9fhpjF$7_{qs|GRM zLX+R8N{JxU6-9q%_r?JeOsI^WN_t7?pj&xEkHMow{;zu80jt}tvI zFD>(I?F<}NeZm5#`PrYw0M)P3Kz3*VPJFh2r$Th$n@AOsr`1dhA9WkD|k=MnY0PQDYtoFoJo3AVzoQ(6}uJ5 zwBXm2)hE`7bwu6b&XTa}cPj9p2ZnQpcF_$!1-P{a=mYqW?0lIKJ;w@^$6in|X0*YF`$DQZHSS134zF#>yPW_`4AM znjWs@7CMvwH&w=voOp3Nmp*fLCy%HIhrP5`8tIG_zpnAcnl=|XlAwc5huL$3P(55h z>c_yBe?U^0$VIy65!`OulJGuDnbnWNi(Y(X%(q+=wc|?Q2Wu_JnDJ&$*`0Aw!ZUIi zLNC5ADY4@dQNnc>jc?!5JbOc?nNQyEX>`M5$mfqT$&v=S?+6QQU0tZYtev?)e4p?- zY{z1l6g8L;7w5*j(|auG#MUb~C2FLD6F18@z+LutDU_~ID;*L^^u`B!#;k#f{-zo9?Ko4_oPY}^K;S}Z+?xf&NYM^|v z*pkvo9N^|^q7*<0z0x+Hj+W+}ccPQ$H(-$H-?fpVpC<>uExt9k+(1qEU9M}vo%HvX0RkxaW5 z=KK>pm4^BzfJRm1U%B1g>RZ@jDfLn$`jQ>x1y$v|mymsRDCL?c!YkXHKGa-HgE^c< z&YfRD-oQYl9&jEJOV>1l30cc7hM{sP6OEbF4?M=-nqywL<U9Y?sIr@s$(G5wcSm@dzPD$+RR=zaQD*X%5`4WL^3uN+b)z#*3hP*#P%bC@!UE zZ>`)nYW}1sbTh`W{0WJAY;H1vzX&xGt4PFK9HgIS)leN-3# literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..69b2233 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #008577 + #00574B + #D81B60 + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..b0df8fe --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + BarView + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..5885930 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/app/src/test/java/in/krharsh17/barview_sample/ExampleUnitTest.java b/app/src/test/java/in/krharsh17/barview_sample/ExampleUnitTest.java new file mode 100644 index 0000000..1edcae4 --- /dev/null +++ b/app/src/test/java/in/krharsh17/barview_sample/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package in.krharsh17.barview_sample; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..b20a463 --- /dev/null +++ b/build.gradle @@ -0,0 +1,27 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + google() + jcenter() + + } + dependencies { + classpath 'com.android.tools.build:gradle:3.5.2' + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..199d16e --- /dev/null +++ b/gradle.properties @@ -0,0 +1,20 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6b961fd5a86aa5fbfe90f707c3138408be7c718 GIT binary patch literal 54329 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

<5G2M1WZP5 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 F{|7XC?P&l2 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..4dd5d2c --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Dec 11 14:55:21 IST 2019 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..cccdd3d --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/library/.gitignore b/library/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/library/.gitignore @@ -0,0 +1 @@ +/build diff --git a/library/build.gradle b/library/build.gradle new file mode 100644 index 0000000..41c5fe1 --- /dev/null +++ b/library/build.gradle @@ -0,0 +1,36 @@ +apply plugin: 'com.android.library' +apply plugin: 'com.github.dcendents.android-maven' +group='com.github.krharsh17' +android { + compileSdkVersion 29 + buildToolsVersion "29.0.2" + + + defaultConfig { + minSdkVersion 21 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles 'consumer-rules.pro' + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + + implementation 'androidx.appcompat:appcompat:1.1.0' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' +} diff --git a/library/consumer-rules.pro b/library/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/library/proguard-rules.pro b/library/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/library/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/library/src/androidTest/java/in/krharsh17/barview/ExampleInstrumentedTest.java b/library/src/androidTest/java/in/krharsh17/barview/ExampleInstrumentedTest.java new file mode 100644 index 0000000..513b041 --- /dev/null +++ b/library/src/androidTest/java/in/krharsh17/barview/ExampleInstrumentedTest.java @@ -0,0 +1,27 @@ +package in.krharsh17.barview; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assertEquals("in.krharsh17.barview.test", appContext.getPackageName()); + } +} diff --git a/library/src/main/AndroidManifest.xml b/library/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b62685c --- /dev/null +++ b/library/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/library/src/main/assets/fonts/josefin_sans.ttf b/library/src/main/assets/fonts/josefin_sans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ed11900846890faa98285ecf2b6ded1b18828fd9 GIT binary patch literal 87260 zcmeFa34ByVwm)7~x3`dxq?2^^rL%Ps61FTPgan$fngoOpWe;0eMph9~5fL3%WE35@ zaeT&6^a&y&qmC2BQJ-;?QO0p$90wH@(ZQ{?l~E*p|KD@&?VC=(nfK=R{@eS!H0Si` zx~J;aa_ZEnbLw7%6hb5b*@SoOv@<5)mlU$~4Sc&Mj2$0&-{DTe4>9%KFUfH{$m*LiAs`bisLRkRFfUQ}FFty5gcG-<)`Q zoDg&H``NFTEnd(b{lKJih0Gp{>%*2I!7;?~IDT)$?}BA3*IjsW|IkP9`)(nk?q0Ea z(Sk#{4=xn4*pCLjwsOIRYqSSq8-yH~1b*+T1uGX%J9q}E ztlTAp`&Vn$E?!fT(LDwIF$DbgqGyDN0SIvix*!F8b`H{3imQRI6?X!62-HSAAp*c( zOQ(=BN|peZ%2wdB7xHW1Z{=|z zRji5y&Q{sLUNuQ*YOZPrUaXelUP?qEb&ybMuo{fiA*up=RcaV;jT(pa@oGHMC#XiG zG$X&{{0ez7bmB#|Q>d}yn_ETfiUsRdiEOkDf4VL-zMdp1g=_SzabDpcGrH9)n#Z&N z&uAJw%PZO^o!RUaYg*2nFPDDElpl=vzcFtXyGwwh5k!6X-)J;9~$?tiCB?p z(smIi(oEU`X-GF|r*Ml5lXi&&k!jLVB2i?C?B$Est`d(kewy(Mj1MqA$oO5xM;U*? z_&DRx$^~neO9$h4#_5a;7!P7x!?=NQGvl)v&tJKG<#Krr5I~d>3crW9p z8SiI&5PeHiiN@f+>sv!f8js%peUweug+n-n3-$hgj*b#Z81n(5T-1sN(I{HPEVR{y z-kZ$dHYpMZrEE!caO-7ig7KYk(D=^!PB_rfa`;=qfzFn-cMAuETh=S%cYU#tBR^nX z7i7+hJGEneuMz77G?d(-e+U>wo2v{seqnf1Bx77=JF}Q1<62JBX5Bmpef}h*Ear z`(c#&K4`kbhxk6CA2#oB6eS-WSd+eH^^(`t#Z5EE1!`E zZF#e)oA0jR&Akng-zK~Z37$|os*q2oR>SdIq!1r za&|gjbRKjbaenO*u2@&5Yk;f9HQv?gTIgEi+T_~my2JH=>v7lfuGd_LU0=9PMqM8L zX!L=Y+xsWNqJH)g4eF7_!_#1{aT0bt^@r~6)Ua23FSLuI~x8Rz_+~AZ~{qHaI+y7}#%|cC%^@W0`vn!17ZOE0kMEMKs>+=NB|@Pk^mk+G9U$z3P=N_12O=a0Bck+npa^q zT@APfa4leq{yj8NmL9aY!sAXO>_Ywi0_k{9JfpvZ*1l(Pkz^P$Kpf$#(3?N{%Vp&a z-{DH540#>CNxE{7dmnmZA9`aSdSf4YV;_2BA9`aSdSf4YV;_2BA9`aSdSf4YV;_2B zA9`aSdSf4YV;_2BA9`aSdSf4YV;_2BA9`aSdSf4YW1pCb8XnO1n{xiOY=_2JgI=j0KDXj0da+tO1-0SPM80unurO zU_Iahz=eQ|02=@o12zIK0c-+X3fK&|3~)K%r+_N}R|2jATn)Gea2;SP;AensfCCuS zKkCQDtAIZNUIV-icmwbz;2_}7fVTjD0lW?PE8q~|9l*PQ_W*|h?*l#ndR>L06z!Z3~8){LwP);_IUY$maS{-SNNI{xcf(U+pDYg*u^kJE3cRQhX zJE3cRQhXJE3cRQhXJE3cRQhXJE3cRQhXJE3cRL{?e>-LD_v!b_rvcCD_lm8U1p&;00A@h|vmk(35Wp-5U={>03j&x00nCB` zW%z^-BK>)KLfLRd0EC^s01TYH%m<0jMf&gYg0J9)~ zSrEW12w)ZjFbe{h1p&;00A@h|vmk(35Wp-5U={>03j&x00nCB`r1>~ngH;6b{YT7- zR{?(lyasq3@CM*bz(K&D0dE2R0(cwnSHK~_JAiiq?*R@2U;#tF2BBYr(62%0*C6z3 z(A2L%=+_|hYY_T12>lv_ehosu2BBYr(62%0*C6z35c)L;{ThUR4MM*Lp$0^$Ji05_lx zP!AXh7zOYHpsk=|gV3=-=-421Y!Es&2pt=QjtxS`2BBkv(6K@2*dTOl5IQyp9UFv> z4MN8Tp<{#4u|eqApgbG*pMme0fLVaKfUwq}@o`x4L^Y)q8~O`cIEWpN4VJAJS|=Bf z2gnB$015%40S$mLfU$safboFUfHi<~0c!#00oDP|2doEN0Jsov5nu!0V!%egC4fzU zO97h!mjNyZ{1k8n;7Y(%fU5!50ImaU1^f)K4RAoeg{_e*^)A$Ym)xg6idpd}X2qlA zM?iZpI+&Y5%*`O?W)O2Th`AZW+zeuF1~E5-n43Y&%^>Dx5OXt#xf#UV3}S8uF*k#l zn?cOYAm(Neb2Es!8N}QSVs7@f{YA1h5?4&kPShE=-hrBRpk^JY zSqEy?ftq!oW*w+m2Wr-VnsuON9jI9cYSw|8b)aS)s96VU)`6OJpk^JYSqEy?ftq!o zW*w+m2Wr-VG3>$^c3}*=Fos$^ zc3}*=FosGbZ7uNGyokMfDR2nhX$ZS1JI!X=+FRkXaG7i038~D4h=wu2B1R&(4hh7 z&;WF306H|leRd4rp8`Gud=B^m@FgGs_!oIy3+s8h{QBK!*mPLj%yE0qD>G^k)G2GXVV=fc^|Xe+HmG1JIuV=+6N3 zX8`&$0R0(&{tQ5W2B1F!(4PV5&j9pi0Qxfk{TYD%3_yPdpg#l9p8@F40Q6@7`ZECi z8G!x_Kz|0HKLgO80qD*EbY}p%GXUKgIPG{y-g&XTCXQi5lp(>OoERIn?@!IAzX7{0 zQj$+M+F|+Y+4qGd*_0*PKl0tdp?_&fTBOv3%YfABC&M)h%OXpi#FZfCMPJ+_^Pq>Q6ta ze*w+Ge|k`-)%{2R^sjm@>HD$2!=L_dfJ6GHfHzRm7d;$&HPHL_KmUapk3W5#{-*xs zKj$_$=&t(f`XBVK&EG-&6}05fJ^BAptIRylq9+dZeI6KnY~<2+=)XQ){+=|*@{j!Kf9koQ-=OcIU;1vq zv-+bL{hO^Gd=zPa=c|8+$Z-#B8p;8z-=`lyAKw|y5y2H91F$RjPrn;EeyKkWe0vWk zetl}RGcv7*{^v5RzpsDW!~d^P|6DTqmZ~4_oAS?o|FayB*4O`88UO71kKY4+GwTmy zeBAo+V}vR`OuD6XZ&|#E!g?$8zeV;Eyyy{sy>tTh0aQNp!1rO6)7_6s>)|js^^hI{ zrHb$3dw*6+@i#m89)(oi38|6ATZ->MN{l!v5EGMc0LcG-7y$3N{0u;`w(kHT#KvrZ zegMQGRWcwGkOwG64DD&?{q2CA0L%gTIHGHN@%4I$KR)dX9BcJth``-otGPaDghSi-j$;Xj_Ax%pEqWCei_|Y-e1Uo$ zbfvl!xJizK#FCzr@&<({vN%Gt2+8}9l81Q$tVq&dW}X*_M-E|n2$dr*WBN9xCo{d0 zY4SWsaa6qko(t8hz>s<1!3Jg?nx|5Jul@qeBO(`bdIF`Z9ICBMln(;`h1z0El>-^0 zPi#kJHPPxV;Cs~{h=+2Cy_8G5siCh#H3-ANR1DXLXfEj=`Ks(?Zz#5^+6DaR6fNYr00Hg!r@%ox^3lIxP0;HqtIVdAs_AJozQT7U}Y~}WX&j%<2lmlu2BLQOp zjq=*~YvQkuzd8M6`bnnlu&BE&>VBqnfv+cRuXXhai+b9kp0}v|Oi|vRv{$XG2QBK5 zMSWmVpD;yvd+PUvb@dyIIuWMaB24wv^5;im6 zRiL&qMQJx#)a@2^mql&2sGSzIhpES{@~D)jtgFvi)Qc8%z@m&AP>we^?QPWWutgnZ z>NBK$&D3`m6-qyu*e}tR7@wF7DwC)LO3Sk-<7#o3kFOeOgOFC)hp!fCe!55Ec-(_~ zJh2(STEc0GGs08?_kCiU#fKb;?cuA5=P1)K^IbfB{Sm0X2-NI#8@PlAtq^CUY85 ztSvZg7N^bcb#;lww}Pp)xO$;QZL+8d4+RbUKTbSy! z_?}66A?aoOdM$~lw=C*ii#lRa$1EyfQP2m-dor>Vj|yM)xWW|O!xJ062PiX#kw!U8 z3OP&)`oyHt!=-q<76oZH>g*}ADC9_b%>zmI)KCw3MgqoKRHH>rv8b~xY7SEikz*NC zt3a)@s0|ji*`lsuYHKgPo2;w1Thv_^wVkP*$g#(w9=E8cEb2L?Ui2LBykSvqThw8T zI?B{%;Oj~I+PeCkMTNptvdyCUF@?MlY4O(8WQ)qQs62}*W{U1>)h`+P3GG6ilPfK% z)}s7GC67;TPHwT%W>{34MYS{EImv61*IU#^rY=YRYnZwo)Xf%kheh4Z)cu65v|Sdp zmnkkK`HAGGlTSxIkCOLWS6^l7VDh2l4>&JTpIFov7WIuqod{DYf~XV+a`dFdSXUD) zD%GO0Evmqx1`x%iST#r)VqG0(QFRv8U{Mo^N|~I}nlg*2`S`VjsTH8sTGWLWwaKEc zu&5rsEtHmoyQkcmvh5V=PD)F;C*^^Z-JJJPP@NX_j77a*Q7>E6YZmpEMZL?^kzVB; zv#tg#>Nry;QyxfF;j~njMa5cF5>ct?0Ix;)EUJvDa$K!pYNSPt1vMqLG49ph-JE(AsI62o^XA%{uTT9iLrO4@jfYPP5ri<)6kZ5Gu|RN6UdYtjs@ za=E2TEGlhd`pGo>0w#(z4O7>18uU%X)jKS{yP3KlS9e*|UW_S+p`c~Vv@e*Ou0qS0X(!S}x&!GkX+$MhRH{W~TU3EX4InCgNUyx4L5x!B zEQ(5Quu5*Qau{ip!=NaKL6N30sL7y=@>(s5w2zV2Q)lQRGmY}bq%Q$p0XUhy7I2|O zZL+87nRyy~p0ZTi4g3@4pRer$Jzu++ zuhPBlvcb~}&i$x~;T5`G9R~f120yJFPBoOn*-IJWHI)an=aBw$jXasR>6yUWw3isK z1-^uGiQC~dl(LfY+I*B^8^Am@jIUsx4(1s_JldO-qP;`@dU+<%cy@>UfM-&D&i zGqoo{Pty(pPtnNNdZ$J{+cUYBH0=w}SKA7KTW!?FTb%w`;!z=UI9&@a@_{;H#;g@@j6y)!a)ITaxm1PI;YEuAy9l zee$Na_7~hD_TS>^0<=!NMXeLJQ|rVpsBYpMsyS%XT--r57r&r3ip5laaS!wSg6a<* zzDlhS576Dkn_T9b+{V#dpZQ!957!*tIMlF#YA9|aPPK&lKbg|CF`V}x_jWSztK*ce zzNhD=;De>SuX1VZ-$suk#g;+2prVo)1T;Xou z|4e%V_#y34;N5)R6B_xIAL21xsC^9jBU?7`UfVk0OSNruRa*hPndZgdp!|5JQe~jtJ zm>$b?DYyL`uK8e=%v9`wvRd)&S4q`c!BgpwH#>Wn9iuZbduiZRc|C<&j#(y|I{QA8Qpv zoBAPdImb;dQ>1^&)eXSsYXg9NI?YpuM*UW$wE~aPMgf;A_`Bt$h#*qbhUWD-Dga!q zktD>bi-613RA4*PMe0t_6|9{q6yh?7pP*f8G~d07yyxJ*0{AkG`f~(DVdSmM^C|P( z$~+%Y923ttQlFGiO0NjiB()qVA*w&lBH5TmtWD@@75M*%n5R_rluN@Cn80;R*Kw`v zT;}t9ul|U#NI6H5-s`VuzVuhOGNyi>rMiIa)HC8))d_l>`U*Hfn}C$RsSTj}Q|uM} zupTLgIYp^|*#5 zGDT6UYt$^@jT)Y$1;%_AmvRXl&k~pMT`uI5%eeeksSlBUIpZ6F=PGCeq>Kf=ocS;1 z)=lH|^SM7SQ?w#*Ir3uWxlDP%znSlTt(pn?8otYQe02-oYm1`tS?0y}oN`R3yKH98 z%>uJnT&^Vmf67;%)zFhTlL#KUh0EbJ0?)h>=e5lFHE~Lut_mi!fB6H17tzLL$Hp1@LrFqhoIxL$sXl;83^x|v6$ciihi)R5y|av}FvBKKG#^_cjQ z+n8wd3HRGkPH}N>?BL$W1#l*x6)%oqnIMj7IVZxu}rKI>%<1k zhO2O*|Gyr6y@`5OFVGhQUrQsTkI@xyjb05rgJRhFO|(LQ2XjMTsaF9Hp|ub^7<=%n z5z=w11NshaxknVDp05Gk0=x@20-%$Q0RUMtC((R_o23g73rGT_1H1sNC$bDs4yXZ) z1dIhV0>Vw*&41YzOQVSu$OE@uX=P)~Omf zQjV34c;fVIIY%y(%j7D#4o{wLmRHHG@+Nt^ybDjD?v#7vK=72tj(~C&f^$98+xJ7*qT+ithYCGtw)USan)t`WG zRF47AQwM=BP=|qQX~yd1>OSB~MLj%>R!99TnoD{L**$urB6*&vJ_R1YC3|sVNZML# zSQjB_$pTV@XKV#i33$GqN`D>LIB7Coq6S*XRu&t3xJma|L@4G z3-ba`86A3hnP7|*|FiZXn1gkOxtl?nLdiP`w% zi@Ep|h$Z+Giq)_(d{_s!g712K8pMtGj1jltGZt^e=n&(?c6`P|MmkZ(GvZk>QS8U3 zQ5?Xh2|Dcvbo0mfOu{MYV|bn)Pg{y9GFrxnsWJhlJEqALnIc+cF|5?HWQD8{XXAWK zotO@tbGDd)XWiSxOxcdJJ+ts;jpbstyb`CP=Ado;t+wTuZA<62WpJyqQIm;i+f00N zxovsewtTc|D_VFx-s;gH?h^Nlso0CY#BUsklKuGEqGDLR3i_{7*l=2>S~%qh?DM0r zDxNK}M5hj{1X%7U_g-9!MoVdxqxX?4<@b?X z&hI0+mET9Qo8L$BF~5(bo8Ctvv*~>#aw5HtL{6snk>Kql3g;K;-64YC9b)76g*f6USo^ z%VQAFW1#UE*jTdcXvwvB^T!r^5?IRY7?m4@Lu|t*5t4Q*&idbmadKgt?!r4FI$%FV zLEi3%mG*%6EilPlw0Khd4tnkxd_0iAmmnERl(Ka6$NNLFz~O~7OVo&LNRo>vu2US> zgDkzDA)W3j`5ubzq47O5zK4zPVds1F<9j$*&SN0uM^VdT&`wUAF~gHk;#(O7iHU*b z>y#ep5pG#13-Kl%lBZafr&!3-2+(zqDkr4sEZ`Y(7VvD0R4T@8E@+bcSeASbOMZ%6 zgOhEskhv={*RR9V>4{i{Zw7q}W<;{wfs>F)a-V!!#AEh92aT`r?umXlp{8MWl|Yut zVK2Ba$LJg#$+hBoD6WUb(ygH$Gr>O#wQ-;}b3ju)Y`E(dVduL#`L1@99?Pwl+}Grv_rAvc zZo@tB^sXFfzrELcZHkcte|WDA>?KHs2Xa{=MnFTIX}#g5ncr~J&TqKc$Zxp0ncr}; zi{EhbJip=Q5WnH(8!jmd_lkzxB}0A&h&o6QY%AO$3N?zs8*XwTWfh_xnh#bpr_-Bn zQlU%BaLbaV=Pg#t7_VZyj`0S@n;Bolcq`+Z7~jtL zu0@Mhu2I|DSNvqD+RgY;#+{6xVf+H)ml?mt_$|ioGCs0o?Se(>7~=rrg}`M=~DExRLP`#%D90gSSns&=xXY#&{Lub&NMK-pu$a z##>jfZC|C`#P|-z_b}eccrW8l#?LX{&-gXQZ=ZMmn)9>|7=Oa}3&!6tK0(+f7&{op zFiv2cx?%C!)wXQL1&jwU9>RDS<2uF-j3+Xl%ouXV^N!{g&Avg}76mS^%66n@p(^ zwFsE3pD;%obIfIq`OGnoIjB~x0IbOLZPlw8zhNgSd?O9JM>P_q-6`&cHMttUhD7|5 zur{3N>n9lRWxR{={e)FKY9SR)L*v^E?12697*_oku~$Lw;d=+}Vw1lyY1Byu04K~g zCsW_acRAJQyJXNuk;g^(5O>pHU%>X3Z;2GSAJ+45RjWp*I#rLiV2x6KHCi>OF?i}_ z9Nv>RK}}R=s7BRfyeCg~aydq=euY6ukm|c|S&+`9a}CK2q+JyNwiZ z9ss`*tFiy1+)F@f@(&Wv8gdOK*CURuVV_3$K5)b!AI;y@_#gs_kAl9r2lb~ts15Q_ zhgL6@OJUKjLM@!Q;||!tRBnGRHe z%{m&^ZzFb7voY3-F=DH+huem|+ikGlx5IXS60Lkz?8iImev7D3j(kZ?$Ec7m0R9~E z1HcR5k%icylwyBUfnJ@B{XrY{J>##4lMZT=k~HGfzZ@mUW9M6x^T#Lnq;`I`JI-pKckd>7B`xe-}-UOoyBz+2?OmmMk#QuUsE8@e$D zE2bS5el0Bd$=F*=!#fGrqJ@`;`!K_HA!^mC=BSx!DxTGwt){6Nc&lHFusJRS&#huJ zv}rP^{@5jKlAGiW@W}of=Jp=>GV1U#ybVE>p$5`iMj30d9{pauq~6hNT8tK_C1@F1 zfmW;y(uQhP+RfTi+B4Z#X5W?ly*J65?#=e*d41j?-dgWi?>g_VyxYD1?%m;i$h+73 zn77lrFE=?iFV~mn$cxKM$n)f-=Vj-W=1t6-pSQSh{|^c~A^PhN85tt(HtTgaG~n~7 z*HQREg7SnK0B=ONUN4|tZ)rkvpk8j&D_`^Vs@G=J>uztNH`SZz^>V$2oAtWadq3*+ zp!X5f>$l#gBI@Nvz0$0DwWD4V^^)P|g7r9YcIb~>PZ4^9zI9`MiO`p!M?$}+r?d2{ zjO%)qo~bA4{q-2#soQlGitYZm`-s469q9V|U5syk|M2@A@2`1()cXxcJLCOkPAy~X zI(+=_hlg$N!K44)hk(Dm_s)Ayy$7HBp$WKd-1jE22hX$dpQbQI&EzwqmQ+j`E?YO?emJN-PZOe;n|7XstY22U{o zH1Ge9^@KbupP^YUk6<2WD33ZzC1VaBR1WzjX8cT*rZifQG4Jv0tn5_NFmHZ^x%{|% zO#VhbkNHebmu0fH$%4MAg~l0zxjN09tHsbim+*YOPFy5^5Z8)bJZpD~=fn;29B8FK zLN6VKW;z1z=jYH%e`n2<4c!FIB))=fYJ_$g1Go`hbx02&JVN&XD6mK)$j_yF_! zRd@~XPCxOfC=g%3AMhnCk&;NSuPMim-BIsYO(mGTqf?o zTKfyR1grik@hiC!I$(wPt-L}!j%QNumutln@~7fad8zn~yj<*)*NFeX)0fYSKi~|) zD~LwDEN>H+VlM2K7r~=ZD!xUeZ;>1V&*w^6E5;xeb`5+<8R8>&Ha-zs;irVpVd=1QT4RE7T%$Ep@k1a z+x;24xWB+ccpE$3zrtF23oHJgus**IoA3?zk=}$o`I;CmH8Dck#VB|Qhl(HIKkA0B zC4@1W$&6jl!S+{1z(&bM-t-k7x!_w~x zkr4yU%w=mohkV19LwtAytjSM>>k%dQe7dIsXEQ9G=PaJ7;x@==6nLJHLy0NOV_RwP zh$6*2T%J#Mi3E%H5e=ETkcsl>OVnMOS+2-e6XYvghj97C+PnO9r<7j{dvb5z^7oqM zQ@`0dPRUcM;^eb^^E?}w=hjp5j7IH-_02OZA`ea-h5N7-Gi9LJKLf$i(?2Ozxvk=Q zM0uTR3N+t?X1OE5%l-49SuXdFS#CuCgv+P?>0N$SMETc1(>Y=FdF3N!`6I&RKVp{8 z{WCBk&lavzsd^YvZj6~#r!yn-Y>miswXDW{N+3B^W}a&EKB_7r56+u%|A->g=~~V+ z9Xh$XPaa8`!}6qUGV-AO8tkoilU%AjyTM_|CG`*Hg;6fv#ZK~L<-NnoTPt6NR$!Ta z%gRe_*YF-OQ|?P)7k+H;eB7I7r^Pc)`Jvqnxpxzjb+4HgPlHOvYQgvVlFOm_tCy%Q z)H4n1TD`wE3c=Jg31hc09@H5bvC1~lj)e*@$$%nP%F`q?P0Yjm%n{A$>FJs2nI-Pz zJcl#2)b4QP=lQBChgBCDQ@q0A@FXQylvhV9)s^7SDIYT+{|sx&%i+T_JihGrmM*_J z%U3rvr!MKYtN_vnWu&DJ#>xjZV71`|s||kG*LBoR^@Oa8Y^Uv9g9l^CJQx?~3;7a_ zp~?G*4MO=6GFjz5X_Y%#O~ihM`(}2yZ~DXFS&w~J99EMF{;_Upx8XDe-iGe7I~MoD z;wqgk^oq@<%|)*yHAP9M6NkC5;&?=JJnW@-yv!Q8F+N3Z zO3zr1=__mSb%!-u^Gdv=8Wow^ujsWQYMe`$ZnR(dS< zR2dSLLIo8p1}W1m;mQ!rKGettu__>`BC#5V8l^aW`FSi>Bv&bF#`00Ccg&u1@6!5n z1{6(e9e=@u(HEV$U}8y5(Zc)Nmp{0`n?Ady@zUnWn!EEyKVo%Z8JP~N z%Jqnpdp_WPw0It{cv{4hG6gaRpO#EvCTdR_x2IB^?VskAHf><8vfBoEl*3-0q?9w! zrKEDgAK_?p!6Z|-)lxF+rC3A)GY{=XbM1D=JmGL;ILOSe6qQN7f&m2u1yK+b8+Ctv zUQu;2n#z5j=Paroq)y)x4u{h@tU|ukaOQ}H;_T>rPew^jUQV8Sc-zmKPVJt&_7S<7 zec+%0L&|+cF|nzh#PpbfRsEOza#o){OZH(3MfBSbJEP&v2;= zyce7LcAp`mie>aSkWq@p`TY6l1{TDmCYyv5Pz(?TLrip1LbNBwCV|D)Fc8Q$;91*UsJHM*JU6By3w5P(8j|udcQSs^1Uzl%Hy{+y1 zaP8%Y8PeZ zKWy3rp6BJ@j#zf}X9FgY&c+AM&DODwAo>KEZsw5(hcAJ%FI(Dj* zXS#I4OKaRGoJSI2jSbCfV{B?v27IZQ*J{r_;D{LG)fUfi`8#;}c@?6f$2%{+19bWQtJ(gvp&SSf%&>Ol{9t=+((=uYSD7z-foJ)pX6wzM~ zTWuJvYH*@~+d!5u`W9_Kf6+4^QKH08F{<#Kw#|h(XX82T(VD>;C8DUlWWkxU*`4oJ zp3tK*KlIK5-2CX=&?_{NjWxUjYk000;jf`JJQj}^WJ=AJi)GwKmXS@f!_GL}a_&y_ z75Z`=&h%3j^oSLGSalUCOttA}b?5Gy+rD#g{fbhrcR^9>W#h+hZt+b_-S%}s+1z^; zuYYJxR_e@zjIo@U1t?eD!4)n`to|{v}AK}?B#y`~@e}jkC1B0gp zo(9sTw6=$Jsll_y;%ODnoT6t&Kt`x9!sV39Pw=ifE=Ldcy4OOBXSi~Thm3K0C~}x}h9E;wa)eo^k~1c!Q@^e^&Nc zJM>q<6U+LO>VW;C{+yvdaf0#3^e1^kiZs%nM!7YxDEjKpg(&S$8tG4iXE=O8ef8&j zoF)HbPy3-io!ox3O}wO${xtH|!r#?bf6`Px&id2fDTO-gqd)1bin2^2{b}%wlNX($ zKkjtFWZDxGrD1#>J?F|zoQ(3`UE;?Q^Xa?v8WHBnZE_J-^bsZUM#{AM~-J?^n zJiino3Y3nv4d?lVbliIcc5Afv>}$W#z0JIcb74%l%o4=k&2+B!j^6b)%O{=1d9mDf z!Y){3l)s4eB$rd84Gr^%eCeaQp}e!z^?1uD+rs*H%q-z=MSa2BUzGVvVxs#+IqWtK z`!Q1psb}~}5t#63XMfS(!<~Yyxf@$7j7fEh)1!um29HaevEa$X18r?GCuLHWToC$Q z{iLynk%z}yt5(Ml4@mWUVxprQ6rPzVG2STE<5uWo3H60x2F7q})$>EgRp^H{Jmf5Y zqKR8A{VOz30K2h(gzhOx(_7}P|3WPUe2STMz=%XUBYA2D3MCp>m z2ripwZr~qq^LG%WX|4I}h<#9$Rg^nT~sE8;o=sTQv_J zX&&3xditJtXw5`k@SJYVB%6uq9_A@m^uGUy^$_iwiFaup08gwK;4i`)LDX6{Mx%i? zw6$*wV?}J5(ZVEW(Xgtja5E1qtgZ`9Pz!8ELkCUpgvqsS7#PpnyfNIzJYuT^@-7$hAi5m z!fhp4q`o9s)Ry#?MdqcxyT|I6(Q313F#5N_umKd=Em}5gi8wgbP-EH?lPL-RfN4o( z$Y!6kzM@Q{ZI09eWVkOYt6roXEE$6PLS0 z%jWeP<np<6etro4Tluat}pRB6#*%Jf*4) zQ84CtgLz=T8ZtH*{)}R=vT0B5lo^kuN*nY<27SYuIg=A5qlyvpB72KtirB((`FK8&j&vhgD;z=2Q{$D+%5>_3&zQ ze(h-Y77xg`k9TCG%n8pk%sF-WBg>3=hNv@OJh%;(VV;VAIv$D z`@sg!Y5UvATZ_|LKi=O4&nf+FjT`wo4W7~JR-94iF`3wV+$gR>V_u}D;9!Ioaxw*H zaI#IA^@5oNg%p8RF8LV@c^IdzM?{m$4fQT}yu|}qMbwsg4lxhQLkY`UA)=x1!DmQi zcVjoJ8u8y4(~cajR0noT=}k_!s<3t`l|dSfM?8nrrVzd=U*(`OQ78(01%q6cd(MfW z4cnVNR%nm6IqbCy`p!jKNPskvG}?DO()dmGNEnNYrY0-7?iv1WYek24D79mQBnLSI12E87Y~?Sohb&?dGmuC?Tw zYzs~9v1|)tzLWeJa`L0{XDhJek9kZzh5y@&bPUNVi=W|aQux1izSDL?PbFi0t};|c zzbpiBGI8KqHD>tDA1?fWM#-Eq!=DTD*x^KECkhS{HIJ;s^d|W3;nyL%0cKrB)1GWF zR`q7YSfnHLV?}{D3mMQJ&drjD1ss`k{loROJ&#>R=RMLWqPam_kB=kT+e8tp2>4(W%9&ijf&*y;2?Mi221bRf=%XH?;+ zApaV?@3en0;sG&2#CT$o65ZhK=Z3mY4$C+BDoh7E1+C=WR}Nh{ZTW)dMvl%LJ8{i& z_4@jA>d$F_>HT`>marv2oB(rmb#oUo&#T8RM2NQH|?XpaPev16PD@ zX{oN6WZs|Tz8>K?H(uDV{Qs;d7Mv(wellc+Jyel0!$A;d1q)2X5~|gQp7i+)r3tyH8+K#&!bn5a zW#~v~&`Db=e#eHYp(?F$TMC(>|0%r2UloV5x3aNk&@gii&n$E%i;f#X9e27rEj1Zg z;&a{b%BGa&Y82tbz!`xhXQB#6l`7=%ov!%h3!ZIU*D#{~@sG!4jT*A%CpeQz5>&Z( z!k9H#p?Bo6mMZValF--CakMvH%6sD*4IL-(|Ku5KSg+W|QjS{~JS{kFMgB0dbFH`q z_D|HVJe-pyyB2SR;r$bMEPvu6z89^j;1TdW;Y1Vr?!|}fd+KF3NBHiSvQNh-cO1^} zkWZX=*(Z+u(opzKW7MBTkw9$L2VZUx)*g{4r9x~LMjiz#*>@Ax7o~+|9GexS1rXy; z$yPiW@_aqv$|4R`R+pzZp-ig> zRm|e)12lVe-xzNFh!q3+c3F|tr5CR5UoK_uQ0{QsfUHyc(9_e&R$uZewm{L3)= zDTDfndGffQ!hKne|0$MYhwzp6#15gy;?;3Hdl)j7(f9!w%C1UryvyDXCYsi0uA05l zVY^d0Er`9+nZI`uu|mxlg=Y#o!s>RMVY3N@+Z96UQedeztbSv8_MXC{X*jk*j1VK* z9T+$M$7Nv$(f3w;ilH?#s<Ohu z235=-J#y`k(!#dVvc{Z(@-t@F4If&*^t^@RuU$B`qc9`cEfb=PDs#&Q%DDq3R#i-| z%+HyW<{eg^UYwFuIA_er=?U&_KM!3juU&cH>`^5XZ0KnrEP8cU-+Dfds z6rE6s&n?)82vzqMwVs|T36~K^acuZs(Lzkz#jx>k&SEZNb*#iZioAY3r*i19g`~(l zmsx=bRIW!(ojrTOtXccyVYU8)8KLK8-HZ?B&ZRlQ_h4UG2kW2~oGk4XKcafzYzVcb zKuq+H!${b(97+?JZs?VGR0)wX+Bx^=m0lGLhuI56f!j@*C6z1au5fztam3^F%7uD^ zYK?=L#i!FCiQJOz8DL%Y;SSv08k4I$qQz?do zKE=@S#!EFP6(q5jY8W3{VW&EsCZatx+^WwEI&(<*)IswmZftJaIAOu7lLnSe9wJ{4 z4VZMn=+PHULIiXm*MslDYwC7G&*LeZzW!!|hx|+i&s3Zu?t5Oq;Gy#Z22Tr4A@_#p?ix=XRczA`t!FHUnB!Y&D;gAT7wSVkqTT;sT$ga2nTO8^Sbc(Y>JuaHkMs$6s80-@Q~Jc{ zTkwz%)8H8mE2>w_$m;)}gU1-}DTx0T!6u`39^tJG94juO4JR2Szn)RV*gEB3$}*FD*#!u-m5;@l%h)L!#x5|2v!U8CA`ekE_$}&( zWK<=o(d#GE^b8MasIX~iX?RT4C0eJ|CO@8}8bUS#&Rh;L?FggY)aORKPw8{WYKi_X z-VsN!t8{+~1e4+ch-(_&dc>^|tMimbsfxrz_3xo)L(iV~Dx$~T(dygozbkqt1M+Jx zs#mc;L_8S*ADACKMI zzJRz10=6^{xlHznKWWPAv+NT`+{-$vYw(aBGI&~L9{am#+{6B8gNOXL22YLZ66C+d z`5DW9Yw*zAFnDU!687ieUWWe^ZOp^O#W6Ru5hv&RIc?Z0V+}VVLli=RQl_O12ec9r z5@?~!)wKLXjhd?^;^E_67k+W%;zzfi|IwE+H}oDJD`^XTCX+(H4B^2hG*I9vApE~= zuj847e7_gPb9@G8fqMn#UBX3SOoX?v3|CQqs@p?fEeL&c;qPC-COiA9ujB`zt#Tdu zkIU1pK)s(e`)@G&_s}N8zi07~{1`l~VjIU4sQr3Pwrpe1rh$01qOV)d|(PdA=%~*}&23T&ZsA{?*Qx%R{ew%V)(T$wxxd+SV!Q^qMsXqxptCBasaG#TY zVjgXP!6SUcL#vc{M?B45QG=JKeQBw_mwBW1-{izQX z^Mz#vbJZwMGi1feXWobJ@N?XO<(Ep1sLRjHve8=krv9)g!4DIYRn9dQ&p;*gBPP$0 zUOWS>I?lW((YRA0F(@$@_RYBRZz3yl`Y8{^9&n z{gAwo2@QGW&?;k=RL`6kT9i7N4njR}I^9BRF6kDBntf@iF{X3?GTi5I>xE?m*D->m zf!-w4Kpj6tcW#Hq>?O?&#G$Fp*AFmz~9 zW(J-J^hlSgsVlFYX;iMVv6GMQ^P}uoEwZYr%F2YO z8eQeDt1YW6t3aCv6yz5c6c+S{02EXkR(Fvne5#F}S)s@Pp535x8!5(9EaWj!SVvM2 znadYpk)Rb@tr`mVXTgZM*;xxKr%qioF0UcIHvf!aLng1Rn3SB;I(X{Jq|g%y^+o%5$NnKNZ% zoNH#@fY57Mp5mm09E5vV9x!%1z8@QFk(|V5SZF2qj;0v8bgF(_6>3hbk6!T`W1)`2 zqeWU)rn1}M$>=Z{R0NWt*&ijLh&xbv}M8`0Xx72O!U@QNP3j$G!!YFg3RFGY<0 zoN%B9KH1Z8SSz|WF^5-l_)vU3F<){;6j8*+&E6}1lmrj2d1yhuY3{JvMYR>v(&x@i zpIx1GW}&~RVp2>@bESNE*uv3cmkcY;^J~t~{M@3@Z7m~Q4%k-I}3lMpqM`2QEUb9~is)t*a!d!*ug-GXE*wr4H%?U}! zH&5d)?aOZ!?rerM&|3>CMTM`R1g^A1a;4dS)Qe_?$@}y*CbM*ApT@6NH-74=1CTkX zxLFI#oes>yu@B_%!F=l3bHt7%+d$CRElN982XzA(>rY!Sj^cec2>_t;^M!WP8; zNI`QnS9JK}+&C+f?7{Se`v;Tp|LfMZyN`8^cNt|*udHpWs#!R4@bt9lP0=xv%VAmL zpXNOI{pkGSn#B!c7F8DI$zOGksvSCc;P67Su5sGK=nMI+3SlypiCO+ccu}xT&d$n& zlY>sX_mdM1qk!IH#TGzH&oK&~mh@sBo|fc-4l5t*wsLZE%5q8z^L;pBVMU;=14GFv zK0a)L7#JP2;FzNIw4%KKOa#B`+iR=ahL=uE%RGBV&V;-nW2*+V=8R8kZm#v!<>%KI zs@(na$E=@Ny?Au};#yzs1xu?(mgV{C3kO!#mvz6~QeQu9I1*5%f%pijD?R;dC(E`+!ra` zO z{`e!tdOtvf)>%rPyCW)NDR>-)eHTCC=>SJ-RnK8V5RQ=)+z3mFr!dyc> zQs+S?kDKev^N8HAO!DJ3Jv?*}2=o2On?XDv4MX_Fk zr?nPhLi-#IEav=ZMqHb(3!iGOQai+3UPhv5*JYy+yf73 zS$V4djyxsuZ+QQSu`m9+d6#c{=TUT?8-0Q{PahPEJkzmbk2Usyw8f-~(YG~TEe1bY za8_Ncv0vzQeZ6@dXPohlw^PRxea3q*x+m=u(PviKW?iUvR&m*V?oB>@8b8`2?$P&{ zqr8V&WR-EP#WPU;RsYE3`KTAqAgc{CTayeqNFoN_BjQaa4~qh<2W$OF14=TIJ@5+Q zXgEA?m|8ekXQ(Imi)Ja^Sd%)S+{ z_Y+6@ss@+Fdk2-}dNwwyukt3{TvDEvTVIhrG|_d@EKJ3=vti;FjO!PlT3nExE5DyI zGAe%NWUK!cTm4rezl0?4EHRx8O62Qb;_YM)gmsP^)?0dfbU)Y*q;tq9OTjkT2o#$g z(xY>rY7n(o(&z{?y^qd0eGJ(QAy-uvIm!O63u_xW5&N4;)<7eTU5B^ znZdY7jH6!-0i%E12A6utKVEg)qGwTM^aVa>rd+|i5`q5vy|6SiO?EeDmn zGjno4-iQOAH(^4{naSme#c>(FqARYLE1Oz(&zj#qW^8F$H5{{Lz-@#l<>G3;bS+ou%uxJ(a@M>^8X!fP2=bY*H zc)db+2YSnj3UU7&UtuBM7=Xt&&4`_O2B*6E$2^$qz*G*{Bco;ys?Hl*GOh`)$D3I@ zeE#qe?Zc~PB|8^Rj)|RIQQzWgD1tL{-talY29#jO-cU2SXmD+N{iwyY19EFa_tg$= z8CX4KB)ppDd`F*h4)qKf+Zk*KB7bR{TANtdOX0%u@P#>Oe_A%-8XM6jg zF|S~~$iHA-C5g$8;m|dV=%zj7W+815cEr%eHT=qx48I5d6lAnX-q42AjW`8t4|h_2 zBE>0i1{sGfa3YG%R)@Faa%;0}Q$AloZSLIJDbs7@?s3(j12Q2W{|&^%vgfe%ZZ0XO z`L5$luw1W9vE(s?wXJ&PLM1z;=CWyvk?5Kih2h1vk=}IzE&qS<_8xF{73JUf%-p)Y z+`9etyS?|8yCu7uZP{$LC)<+jW)sp#HiQ}iK}0~o2#AOQ6$?cK3`GP)1b?WZsDR*4 ziim&(1O$vg?tQ<{oO3sKlTE<)|9StLoO{nbXJ*cvXJ(#x`a{|=DL@F9!EN-_h`vUY z0OrCo(pef=!cu>uVb^the^nw9!5kn)i0t?9@R|)9PVBqLAKAZuyu*~mQ- zE;DfZ2WpuGS_FGJV{eNsN*U%7!`}jTCWedAkI>twpDbF{dqNCSVf3#HU-w78x9x=f zvCh!eW3T~@1K0rH7c=9nqwh5!Y=aZy@I zh5`J&Osh4Mj-zLj_}STL;@7|})eesa#sBs%7(=o`l`sU|m&4b|G0X~8v!6?t0LnCX z9mkC!<}Q`_F{Y%EB?Mw&-OvtL%$qoRY*WpK3|aLPMP*+qTg$%@oNS+>;FK88KLg$+ za^5Lz58Qj)yi?W%{|)d~41+gal+l1FCWIt#EFc1l;{00$qbk4x+`7&ETIKlob2VT4 z!PfuD|GLI-^n=?<&-qwB6Y|eW*`AAM2jw{=nZ#2_9nZ$eBoX)~ zIXOwX{3_3}RF&a5&t;E~|M2t&AKG@C|8xA{J@?%Ay4n`I9ew`vwM+sK6jax82HCrC zY@EO&6g`q+fDs-E#{i@CemaV)W%x^oMd(vznNKcev{MwSl+TuB==~UE!D{>KBI@3c zc!mz8F1hZ}F=`I)C;lpVkCA(_Ql!hQLd&O; zahiS-wsm^Fx(R5(6f3)coi3vQs6qw%hi@qYLl;A+1+&ZSk^(~&`_pDc)8*K%rAqU$ z2Z$Tn#kgjfr^dl2G)?Xr$M}H3zPh5cH9EDgkpHl?I`{-nTA|Hr%YICLw`V`f5B3(6 z7Ukp=ExZR}0pAXPfZn?kBlfiayS>)Ll9Nm)?6q>MrA~*ptg4Rj0ljskCSt1{X?=tr z>?kN*oKGv?6jV}A9q!#$Xw$tL^5^ z8?$PGgOWgoNZ1S(Re~;|Eu7iZzNNC^K#WZeT2dk`mz2JxkO&cs5fPml7};tx=%hOT zY~g#jOltzOP~I60fO3YcE+ySiTcHBRbBfph>3-<&*A@;d_Q(4MUE4evtsQfKvq?+tU9DI zPz0vRfJpT!Sz?&*Kvk-*h+JWxF?x^ZR8GxOZH7&%pl(xh^TwK*xt6B6x(NtLYZY-R zPn@Z(-O$)LQ(Lv68KPfRI*PuNUBm}uU%~6;`}MKM7t^*2Wr$ayGLS)aEXAu(JH&@5 zWd<4}_za{Oh$kC^aQS-0#$ftWYz#ioz{Vh4r$*Ws@V7q2#^3|8F;MFamnt>}51+!u-~+NT zpz?t8VBmNg1A;N^w$%1;A2V{4jUbno)JIF31?Z!H3}mt}ZvR%x`@y$-4@g|8@uDK( zBI=1GTrYgX}xeh=&&2FeqyPi05O- z9z1OL9%~}jJh4e6?1t$Uhw0XWuvQv&sREL;0MG;7#o`AJfbfL;xG;-I0T_t0*=!!0 z+i&)H6?RGWu2H46SpINKK3>7_Teq@Auv`iY+&*1fZ0p>DVu26#7b`0TiiJc?e!-@! z;L}U#6NFqh-KSVLTjl$@WMuM1u!QkB!IJ7O2}|53SSoFw2urdf_z-1Af&WU_GIrpe zk~|S*2t%_3oSFvOi@n6kfo{;k_ag=-9bow8SX7i@5^O!}0(f+^^wG)G1M3u>st&Bz zq76|SBWsKX(o4Z&mM$x8tgb97%*}Q=(3w<^C&}ZAL%2JWPl}32a#vBNc=?cv2b4TE z8LpAk%cmNnv$Z8TmMn9!Db`WQ^PQR*bbur2+k?RVpBqnlQ!4^lI>jnJfC2es&fSrMq%97O z-$}rF4p02_#M9NoD-d# zmB^T+deg$NLTcWu@auzgv5Y_Kz~bnr$tm=gVSO}}d5T=Y-to|EnWx%=0NP`F*u-%#p#3VgVPE8bD^&qL}Od0?@B$KiJ2~o0 zf9NF&`_Wz|3d6@{7^Rs(D-0V?Xi_onQ14RHsx0)lf`Kfip|&9V1ZrKPDd}%&%gTaI zzcfEL%b(>#pEKM(wia-4A*6L z<{YQ^3T}jfMUKbm$jOJXg;ay(nQe-(MV>8nu`=v|fX`B~yuQ*76AWN=vZ1LFUW^^- z=dTIGW@aQHR36#RkcgcOWiq5aE8JEI;>V0$NJg9@b*{&o$V8S=X3B<3wSHL zVvJp-^5vS>SLC{bA8MWqu65_gx65w9+jSJxNjjhgoWC-@x2QH!WQ5@~Nh1uhh=Pq2 zu4p2zs5VmRkwXt*WY{W^u@t!=Y2+QU4451&$AuCLX3bPCkcnHMBT@g=E zxW_aNKqM_w;EYWC;=*NxYxFU%R|)-Ljc_#veX^k7BFP2mer#4ryIi|EH9Ms$&6%6( z^l$E2p5L0`O)RmdXCtJ0S9wNsWzl4VQOX?KMeeo@O(p#Ka|47S{L5 z{gB>ei_PPi1=l|f@iX1@^)50mr|bC$D}SV#%z^D?%~n@d(@Wcs^wv~FlP7Q%O*d>~}x z?zrQq*`KmQT{i(zb0Q`yEh`0(rSfD|= zU{s3H1#<4D+719!2jBzpWaw*@hQ72e5a9<_+Hw=5_B>0L17cXPCREDO*yn`HGNVRg z98_8cDh1{_zJlDS<@1@=sL>8HBT5S+41~51C>R<6HHAY-C`(H^ zfh%F#4Q|AdQe+txAX`!$ZLJ)ytslzwd1{)skN9enJn7jL4XxFBPeEyZUFAemlh99> z!EiHwd6IQ{<@7ddLXEYrzGbCYo#XTs53UN1^5GsQ-VC!59<#hd41lWl2Rvk21w}o4 zo+)s57=@x-WXx_;gs=1OPd|O4yITz0+Zp@;U)_1H(k7agZJH>D0F=P9F;O8Q=>AFsdbV}jW9+~VPO`^kW5V} zGY}w|8l;MNVoV>qP z!b{!<9EtV5`V1J8=jZ-l=c_eC3ywiC)v+EQuae{BmGyDu@K83`;j>h%~si0S!OXDP?z99bs@Jo5e~Rda8TMl0S*h#Cw^Bclfyrd{H{7$3-JC&#JKit zQ{)j^DUXO4S5+RNj1S2p6!;hLKS_B6!9VO9q?93fgffPsV&@tt+TfZPJ5h0Y1N#G?MZzYo^F=2lH6<+fm+?V64F71Q=sJnnLfx zj_V-SC1TPdewOM0J&*U&Gd*0O5ib^r6ydVV|Mx}R>)X$p$9f;)w*-&C5<=F0LtH8K znVEq!sOK=B^{gGAP^M5L*hNfc>G~U^DYI3PAGNshr=L6P;kDa)oU0Hf>0odLPY=Gv z@BR2tdoaW)yP_$CHYF{7u`)NgQOZkb9HoEBLYXh)-KY%ck-f+1bQj9BDrGQ#2br>t zmG+4iM_pVWMoww@F8KJVd>3C}v9B~6U)opN4;vjnUJE)}-n)Hn^4f3AZylew^2P%P zo__MmD}VVcnw2oBkuZkF6Pz|S8E`eyMOv-i@(j_W_H$Z3gRHk{JyU>LWnpXR9eD_CSiu$hD0-)2 zn`uyOGvRl)5o-mGKt||4$Ut*Y8l7_eI1Kj4QWFlAJ~&%=JTBE{lW4D#*laQ)!O6-6 zbAXhli)=Xe>>1}7ikXYmwc!MNPO(DTxnx?emS$2UucN-dFZ-TKxqy_OV+$ec8=)CK zW>X4#Pq3%(n2?8T666z~Fx$61d#QAAl0 zE|ZrTG*0pJqvL#~PCUjxFW!ANNQ(q?h(*$%7Pc%<592M35p_i;f|N+S25lCMCijv) z@FE~N4%Sn#KG*V<=!1oUl}Ls)Oce4hsZ_k;!+0DSZ%r9oOvW2t6<;_;#*?WH~~i#J&isRmXbp%msdto{7h+|0?)=#lXlw6`$-6{)@-a(GM7T zLZ2Y7&vno=r?Ol{-mPIm8iaEgKFBzXGFMh=LW;$NVsTJwTJo$?S7uX_dm)|}dBcM6 z!dSg=UfWkLSan`o+j*-7)^NUNaA1t{u>sAhYiGZGEAP8@X71WPK7P@TtruLlZTo(L zaRqw)syKlDX9QsSgJ}VH&Pece<1-@j0dZ)ruIoZ%jBTPqjv#~t$OwELb5ieN!9glq znpmKGU_6egB}sX?wL6(J-!FrZQLK$dWMiW)lPfRmebsqRSV(U$@DGCl=j_g&j`EzU z6n~vFr)sXFVY0k(Wpl#BgmZT91+@(US9xk6r_wx`TQyk&>+71G8#N z0Nw&oE-lfR8;JW0dwfg~2+TFa;Nt~#5CmczX}?BbJNcOg)Z<+o(E6AV$_+o{DufC% z@XhNQPYV=HWtEy*-8H=}wfQ-kul$OSewAN8HQl?fqCJ1WLEu?xyH;}k32Af4pTudB_MT1`^39}bgvUnmQ#Q^RG{=v|6 z@G1UfK7GUAx^B3E^N)gkPdtJ5ZNmFLh4;;38v_X$i1BAb1VQ9_MB}Q|I1_77hG+!_ z(m^Cd2HX)ZpB6w!aHYUfut9uVfG3M(CYe26pOWcN4ivCMBz$10jocV8>@DNXK3|eVYEhCi7tf>xcu5UT5@#c%0M$b$yAGGxJ)OZ>^_|LyvHC5NN zp(=33$~{jGwde0{EDzq?Sy$7ZRgsnKs&fNW7?Uh~Joy>c6v$i?2KdR~k*#k8Uk)!U zM7#qm{)su0#-Oi+bwnZt4lJ@FmCe8-6d4VvA^{bQrs{M9_LNpWAH$5q+gxTUFS zbHjBd4o6X;(^*^vD0!FpJj=YEMlZKaTP-y?dDtUba`I|yw&~WI_4V+T;8FScS?w0!aTSF*xN<61HS^Ki}foIg$%a4 z*gz3;F<*CVjLA!;N_iU!MI+=JDUoO_ymw3E_$BL`hW9y(y2~)!n;I_csj2M}-BmR` z;)=RWEz<{gH+AICl=`YB>smL}1pm^xyuwt`)m=|Cs0VQ&yT#W)<9!Dsjl3&}6jA`L z6VjCeMPLKD8+WjW#nnKd-T>(~*hQG3kTDM8OB&n>B%TiAS0iPXA^iIAaJ{%1`OKUH zRHYS}?AD5V@n(oa7mLbpyuv>a`ryOCTWZ)e7P6cKJ}I}tmgn^*>4=6v`YDPXO#1== zQ6|UMz}E)fX&Y;_<;7$qb!InoHdXU|y=A3q3Onpc4XIAiTw5|)gkIsHhjn59KDxlJde(pl9x;q z&P}O0!$gL}vSo%Nb-jV6f;6Wu%je5Xv+8=czSu9aY76UniYonHm&+9$wY&9l^b>n1 z@~y8F-;wxrFc2LJDggws)Qpk?mR(xCjDuv*YW;-vWUwee3qBWsAD}rMS%Qp+;$vb6 z6(@lhO*EjFoba&QZ-Q)+5b?_VRX^arsL4OCk6*riJ=`e%ylE5OG8XUovG@Vn%(B z;NzGzht5T`Dp-a}A4-x71|MIL3zlFSM4^rgbr^H=LyWd{1OE}fKS(zB$l)6d+uXxM z2m224i}AZ)p-pAKrj|Vvd|oa4ylk1XOnw(HM_f2F&0lj;VnTdeY>bgCkK^zricL6r zZRXu}#4y18^;cF^VI*x8Wd8n>|_VH@|O1ajWTwLr( zn4ByuE-oxDUbBX#2n)T%&q7`x4Xah8(gZ&lBa_@u6v90ch-m?eUME31KRT*HR7V-o z&zcOrK4}t1(L0oIAwtV#oaFqF?cf4u$h9WZ95BApxL=`dRyyxieH zeCABp5wl&$!#0nMjR282D-@e1u)(fhUdabm)cS5ao>PXE{L=n#S!!- zfhbBs_`v?4kqAKKFA503(p}?=116Un*_j=w;>gjTi-x1I znReK|*zBa}&kg0_8CiJG1h%3}Mv^m!A0$VDg2|;24oiu+jAb)Oy}(VO>5()MEeNy{ z?V&wK#bi=tYyiQw&*4l-al29r1_ne{`04i^{W(C5KBV9yR$Ruiv1`mLL6!XooQ>HW z50wk09;9rU2{DMtp9OEq1l=vy!DVu;(Rxx=qnu-MIW9Sm!m~!gFBzQQ9pZJ+S$S;yp7=O` zf~X_Hx-`V#p)`BL&C1-^iqjp^@Di~bE}%>FKSBciK!f`AKsDTcVwiS#;xjHJW^2a zN_SM}6fdg<-PB&nH;fiE6{M$TlzMaT4o?yE8vV-%Rq&r6*Dv@@_WgTOQv~umshciL zUQj?Q_L5+N%sJ(pol@tlqTxSznJmoft~=rZr<0eFbN}SG(FEynF>HCc(k3SCFeUS* zkjMaTQ#NAch`Y0rYQ`2X+zOLNj9*0=PgFrtd@`5`TNohkp8{$URsm$pOA{|(&<)HM zFwfBX>D2_1+y$_svGoQnlBr!Hd6$b_f){bP-*mIVIeQ+Q4LEZn|K4_9%x4Dz?wAsPEjT3_=K5$D&X?qqA_?Yzr zR{lHn8(IVDK<&6Rh_A3r1_cSNYJk)3)U#GF>lOUt;A#E+{h)hYJb=CQR(SB=k6qMA z6v?n87wDe4&kEe5_i%|;%!l8hFJuEAi-RRwVY zW3bXt-uMRwAvbfrpm%;(0OAzA<(wjq`obze`{F0@8vr#44ftOWsx z%{=+}9(Qq3pkR4oe!>3AKoa#aFL8BLdELSC)qFMYulRaxc~n33aSnZ~Mjs6fxeX=N z56T}>127RJN+W9mE{Ky@9Oj+W=)8K{wx`AWBS$^M2;_>k%Fvc3+!lsF74=}38AJmz za6Hp2ZVTibnO-E7p{cJ9ix-DK*^Q#8IU5?|LxSvc^*@4?rI^@B#Whk&bY`d9RxIo5 zTehNYn&16?XHMsH`}hBTMQ+#oUqam#s9O_R*CUw}8d;eASa{7;TPIcSY@7Pp2c5Yq ze!qYJbEx|-syoAO5!37wOdH)L(WBzveU7gTv<2Nj zKK*$nunF(n&lw(v^$@Nn_%nc)fSj#@zYCkVSnU4ByX}cFP^sr(Z>h3CZ=vT#{Jv}ZxrrvHEGIgac(?59JZ@`t_ z%PikZ|DzZU=E2EcV^QCgIfVZ52H9WCA*2~Tp|6Ykc6@In&*To>#^aEA%@178j-Cn5 z=OuQ=(KDgFfhXP3Gl8CnVUj1ZyiYX2NBc!^KQA(1Zmgacbu?aXQO@JQ@3^QPTz%;b zrH@Y0#I8a47|in+J^Bb|U@5gE`O!7WHqoW=XNpJ7RcQ$ZLqfd2*{ak-d+e(+u6DQ{ z5JfrWH(@k4)f3qnqC2@N!;ol*H~PBGs7L(>-HHq>?eaa?(LLbG=sor*{2t~}UFZUF zj-~{&$jM3qg&FB~izzuV4p~oAbc9qPfF%Vzh{=mU6ojQ=wp7Yr3rla%%kB!9VFoIN zG7F}I&!2>q>wy;^Xd1C*eeK}dFRbXkbYyT{zkhkhKp-dR-7;RYw%p;>>^V1nMmEV-2t*eij zAFZ3H(bv=(@*2_%!M|x!maT~A39(%zShaPbUy8dlX7t7nYI|$IRFLa-rKckBg(e{u z)Hc(T5jB~|W$GY1(C$}o%60&ca^oQa<`mvb3K}zx6_CJPd|xqcL|74XlHZ&xjT^&u z^`NQ|;S3){995Qqt~NlaQ^o;w6M&v?q+cEbyXCY8pzMNw;wj_ALoL zAYwIE%=&CrMDnnrLa#?grZdIGMj7L2LzHrUY=D+nSf>T9dbGa?42F+5vBSD@P`#;B93E1!afo zs!HZhk8Wtt=4AGyU|-fd26|R)GzOZC#a%wbpD7~~uPn9v%24JHHq;j9)>!^d28lN1@$Lj-7v#XKiK+!KmmMezYAlDC~ybRwK#}Sv8M@Nxb1v10&Sjx--;Yf6J z%s7jQvBZF}p~%eO(EsZha6Db6oOZseqO+*;DqUZ&(H;}iS?q=6ywUS4|81~PJkcD~ zE^|^4LO2EZomV$EH3f|k;o!akB*L*~kBGaFcc*||6o|JY22Bbg;1)pDPohUs2INJN zii1PbL7|CcP#Q`(ND@c{10o|;C{$GCPFjG13E?I}R3Sy-iS;7NLTQjMdFCY8oWXwH zFeC}ZF7bVsGl-?XcYWH_5UwJ zBYYHkbQ{fe%p6XVBGA#$GlMRjfoLCOscN$gsuavU{X-D;bfUy0?TIeYW+RDZ8n)@r zpWfBIfB$*sc6Yb8i+%gGoL!!=)uFv_ik+?%<27R!z6I@*jvZULW7xa?Uv| z!UF9e;pg+k4an1)!W^)5=n8ZIBO*dBY3F_E2#yL{ayT?a?rLhbNjzRk&A{LrkZKZL z1(Hs(W7JZUk_imzrm}dm!){lmRW=nJMWLw@H#k0DH@Nna6)P_p8r(kQ$eQ%O8f06> z$G7l<`#i1oMnoYx>->c2t4HT7_v zH#5NvYz_80l31C$qN9*Q8+5v!tW8OdBW1woE{sgWU_-E@41{ig$tlJOcBW+zV*-HO z&3SwkU*F%qK8q)x7kulno4N6v;88wW5&R<`g=t3c&vc9jzsE<>hZ^*uP5gwFBa&%i zdYaJcV>tG>&Nv>;A?qT(zbp<{IFH?dmB6B7MfAb~vMyRchy=#j1bRu**8pruQ47L# zM1=ax)kXt$)Gue{B}I9;IoZG~NX%q)y5ng{VPd+S;FUlWRnXj|L(LdqC=?L3klVgn z9+<+kn^cIl`W3-53#`_t<@hU~Y-pQIZPVB*{PmSr;Li~En8$gjsj^`r0cM}Wbt4;# zR^(Ka6l)!p^3vrab;Gu}+Bma47jUuxPNNvBOoq5;2>XKArpZZ(kZ(s*(32#fTF@yZ ze1>32g#n~_lnDj99`SS7@#sKSA8dB=P>4G*djGZ40q@La?-kP*dvCqd``nImG{{e# zcIo-gcgrc=+n+k?C)?N8@3~EM51Eov(4RTzlRmFmMr$CDkz$RFf=~}#03!}+ zM9489mQrrJ;E$jw0;hye>{oP-SqzlSUz@9&?yMcC@0_ZiYaS4XTer6bbNTNY*2EpX zOq>xv))*|{&$VrDjoQ2!O(%rj)RZF^y9riCDXclL%mN&nf~SejSg!BDbK9eh24I;e zC~^?I4~*BbJYZ(C-Db9$tt3;#fuN!3P?IEK!iJ|XFVkQeJN*`&+omZW(geS8J6}IK zs^jgy8CeefmtK4KQb{T@lYDAC`71& z;>(C`$mmnT2+WUgWaGeqa-84?h1@M^$*I0%C%WW9CRXYaFgLnItBUw?TbZ8530!(o znV4#bJ!9)>)4jcqY~3GSe?&=p%AXk69{i9$(em@z@$Vl?dy4)fpg-g2Pdc#Fg-TxB zBE&O8mLYCr*lS~9YZnW=91{~Y4!3GE;vbTpk32A>f>sJ23y#&m4U~xGVyU_cYQ+M| z$jI5S!=)&iFm`M-g3N#YwCJaw+x;(O+KKHjGb+7|3FRg z8f{3lSek2E@xq^PZfgE~ThnXdS61Gaa?Da*_kC!!$ z$6#B)I7kV7S|AU;;RY5x$UZ~q(LjnFc*5?qJF+tHG|Vaa=Z(Vvs=1gIJh0#wu|(e5 z4I7l#Tb#Xi<%a zfe6T|5-Qt_bf^VgNy$!^DLN{H(tVlSloXXv8BqqX#DUQUXaOP!`1fi`?>_w&W5V!Y zV{6PSFUK}lt>stkaYwD}<5v#akq|Y8PgG{F%0UDrZ!OsgDmZ*OaCj~|>mIueu3RMf zCCr_T$i3)H)DBPppaY^b0KFoV(h};9MAtd8C=6c^kMq=JLGa+IxhxkUUc81dM>D=Lx5G}t4#^{KhZ#e-Z!jAkGHZ zP5fcRto;;O8agfI&JPE#`cTU5wxIHZydQg&{zu71$Y2=7e=W9w|MV9dAi;p**~XU_ zw^d|U`#Wp=%Q91nCZ{{raYs={SzdMaiW=XtOdBqBu9I_aIpj`v@<;G~2_PDgyBEuZ z;?rV9!HrIwvI%cvq3Z!Wc-r;{zm~WzfETT&1flDI{R3~uz`>A)-f#v_ z!7IWR1;r8L5x+?63x71ZpC=_nMIpB*adnD82ARHr(gBfi>ogn{4sI=3vEqt#@A9gB zMQe8R%ANfe|vwZ$Io^R*xK!>6K5n}x!KdZMw$1C^@943AeT>kELGnjPb ziHp8AhTi2zBFk3kEZl2(mm7j@{Qh^Zn}z4)EM9O0YY=i`(L(e@>+B{ zivjJX!O8;hh2nx|qt%(OUpw20M)4=GhDQ0LqFK%{&@V==W5S>lAYTmFH1yM?qJrfp zdM_s#^0Z@$#mAw1jNJdCk6TYBJWX9we+phDnw4c0+(aWzYuLip@eBBmVa=`!eGvR1 ztn+oD4?~+2IcShPuSgCW+N1~)fzx0iav3c6(^$FG1?6Bn2R;@U7j#WCjJ=#s(X`R< zK0G0fr6zk^$%xCGA{9f-=a-v-&3!DiOQm0l?ZTt-(v$58))Zc=Yp6)gv0G9TEM{KE zt8@9Gl$4~zLSM^Rs@JSz2*fc~M#!oqZd!9D9l_ z^;w(Uo|c=R!Y{9KxvH?LO;s*uHGS{1CMIF$gfC-KlEs>osLHG3p&Rl+H)JEJEs!C` zo!ks)bw#*v13Kui-|5$(!=#^+k$ENcgTQb^CSVhO%^H=JU$876oSOWGDlRYo=y&VN zqWYol5+ilxQM5=nayc^bn3!S?Rvsuxgk=R^0R#*|1K&tC-T?O?eJg=-HPXP^!5rQs zn@<{b!$Ov18{mbcB{6g;M1ZMmB$3DBu@`EWk4-cW`g-dAyzlJRvwKI+ZQKc6rhU)K ziG93jrmAmuT7Q50&0`m|bY0N*JurN*xzj>U`YO(J%oA{eX<$~D+cQ3VvGM&eynbqA1= zcLV+7e;?R0AdYQ;aBa$ z7tB{PyX0uomM2mKS!FMn@DnmTnF+taJX~cmk4KpB_vKaS9ugamnebyQmxbODzZ2`Q zf)hY#dRY-~RLmHiw1w!jTnAmRHY!?B800x5*%^+Oqppe=onequ4YU6!S<{$nk_VdCf~ zon0+0U0p5pSs59bb@hCQ{N3HG{)UKbUGV1d-kynxo}P)btEx&iZVc8g{tWYg^VxTIT z$k8oYXg{87VlcY0B8L}Nj559_R-+*jN<|7)ABTGSlh&hg{;wbR-#yxX7yb}NQwug0W-Q!c;y=I?)h%a*NM`Oe^#dJ?rFof%rfwawTe`N{R)9)2c?I45SnEZBct62>~qtTRF%@gkqjg zYDO)a0-9lIN)9iGuCgSmpimnPr>F{EGF(xayh}AgVUB7~Y(x+7i(&n-ZY(dXkZdO%dM^Nki0(Leu!joQ^bv zWg4hVfG%kBCM614ieXZa0SReZ44Skoc zF3R;*6b;ud-`R{rkpI%hmLhXq@A;jVJ=nYP^48YMy!@eC&)NR+HAf$k$szMQbE`Tq z{xyi#@=fs}D852O*|Au$DcZoI#lo7&=gNZIRHs#^fg2%kkby!^cJCw|BkMxNc9Tsa zEL&uxIRBDGNquF3IEOMXV(!WGL`#)a6kUr;VlXTo=x;oQo`P&Ydh51&3fz?8!l}Za z01HbHl|)h$SkPV3fY>~^17$S9y13r4sik#mW7%+-qbzS#W!0pkxV0>|%=z&0v6=IO zkG7ky@ih5|m-Xe8R8KdQ4L8Q+cGcx|7v{T~8p?g1($Jw`==(i>$KwL79W@lJgoAEo z{4vlk2}EB)kq){-3-V(V9Nu|PK=MsE_9lbXe65<7cl6MV0;E2u)Q#w z1c`YrI)(omFhX*jrfRzDYAedU?yL+C-0YC*X<_nKDF};L9)OON-I&H?N}~pbvO#|g zEd`7f6mrxDi-lk0)yynw+LK$nW>v+C_NIZ;8cK!>Ct53K{JDYN>W23As+AShrJr=P z7WVX3)plIeR8TQmp5y9kEzir&NwjviSFK1W9xLc8<<5+bVojmbpOc*6ZmB5gv&xv?Nd)bN#wFz&3XfYv6*?M%!{#Kw=7<9*SpO`ujC7S;dIEuHy} zt>VgKOE|0}rAdXw&AYB&yXG6?$`d2kO-x=lGIAZHha){LdscK(mCnvHS~g~t4VPAplq4s$+n41RG`IqI zJ8%wJ@L73W{6@l|fK{;d5)vcGwrJ#?#F>!?;9jV|z>3q_L?lxqBALR!Q>QiRW}sgN zG>7pe?PfGgLZYIqxG)bfE#Wxjj(|q23XR1cW#mk@7^zk25xU+_x=@nAL1-%V54>Pq zP0hO6+Uc5_>Dv7EoScrlJbbq24VaRA^_iyf)n5N*b7n%kMf|36st)P0;fGW=RT=yW zQhMZfpnN`R-RX+z@9ccm?aWM%1MSZ8;R$Gjtx^;y`O-j96y8>9lHgw_I*7m5u#13} z!nW)rX43RvwVBLG`Y7l*p(inrhpf#DE)G3*3uFEA_L>WVH{Ds=SR-BxzPE33`a&N6 z)yu06AI9^%{I~2~@eRlwxyAR zG%Ep(w0@W=-uk@Uy1LxF`g1cf&E^cKg4fm6$x9{a7W$2RY@DqPS=gQ8F}zZtV#QAm zIEbVUL;|0bv;dYp7X5zoXMQvgjW3d$ky$G_THQG)9{Z$Ea|hm`Eo5e2m+ctXO4T0# zfFY^dG-`2(XrxUr9P3UYpMxA7TjcQ~I(ifxUmqOA1A_eFZcz%XZ4j=qAe@hN<&*F zk|IKd0rdrDIz&wit%lS8@os23)jz1nAnI4O^c9$&P$JT}m+`dWfw8f!u7R$u;XnN5 zH>+3UDG+OEp{IOP`w4W0QQ)BbuuZ=~VT_XDhpmHL3zk$+hmlCGJq_@PxG3aB)vMl( zFkxH+LB6Cekm3g&rBt(J*&WQ3YMAC7~osO^uEw4RfkL)#q|V zr$pOx&3HL*zOY^8&`844>NuPw!X$^BcNz#f#d*`3qi>0II+4sr=IRz=r~74oNeZ2Q zKmUC2Eb+Ue7Lj)JsQByAm)9VEIs)D*vDEn%CBr1eh7PVFp&VyB`RjZ}Tn`)BRJl45 zptNBfn3rtcY$LljS_T}JB`|-3c^Irf-P{swi;A*Eo9oW97gRtw6`vIsmldCOk7qd~ zw4o3t(H}yOh*nT+gTX001=m8O!Vr2~z+_Dfh2TUf%YDLM58WoV;M#DIs8}jz#E`nPKZAhyqLcmdIs;J5d*<7weIK9-m{3Wq7nVj zNyujeHz3~70eNjzuvESFA^&mcPWjw5!JFwC=g%S;5<+RvmMw8BO2@I-WLI(+w+c)p2_FMIdCD&9jS1)ryxu&0AiB3v+_Yw} ztf8T72*b!j9sHl6N8zUm94?;`3y)h8$Il=$52Uz1bpGi)@dWPpol7 zC&wFe`r%YZ?bM3vLVwg0V^1xR?YM|>+E4N$E-1jU%w8a*W(u;SWMp?yra#F1GEn^$ z*CSL{bbp)pU4F@66AW3X&FRqA(4(PWqHhk_=1KhbsFQl|6{`HS;)X1fDKo=t&g@T1 zGnrFU&2rs@WcYSe9&}hp2WD~nBzz+7gaXW(1w$M4o5prj z^Z;kwjb}voR9ex#^Z^qQEq*T?e@1*&jW$E?_z7}v+$J7T_J87lkL~|xvY7}cQ`N_m#GSX*ubvaGi)noK1AjiF z;?E&eCH(o1{}1@{M&QpURs6Y)<_pH-BjBjJk^7Iv1JSc^4f_bTPr0_pHUU@wON$&d zrHxPo@QAGr(^kQcDsr+bDzbAb%Iv0OyFJ-t7o#Pmet%hMwk0LSWUO^XEc8MgNV=8#o0XG%}+};z7cJ@R6(d zp<=m)TcP5y72$S)$2Q=(-@|?Etw+D8-v46wK8xme zupfvE;p^}qGl*Q}zQ|p;Ux>hi9x;U|Vx#|TQ~b@^l$#V^;dS;V(G)C2?hRyvsgV1M z_a1EuCM?xWSgQQ>i)mi7QvN4Cg|!vO3S}L))XBhE0vjnQxny8yt|9A*#oKAJ4|tze zlH98nZ>RiE$A%uy$OFxH7M`IG?^&?&S|XmHr2GtSikrvJ`VRm8@akUiTS01(I-@dRyMTEM9mfurI{$|yM|Q&=%r?YI;o9TlEw{DjYjg#RBPus($}t+?N8jaVgJxWS1>q8~0+55v1ICE0 zm>hOA#amWH1a?2b)a_%_jx5WQfbs+?m`<9M|uVPT0ni& z`AEJpa%XA`??=ZrChzeZ6KCbZz`hMy`ZLfRkq;_g*rZm47anKvn4=HLIhrMV4(E#S zB*p888B#e@u_>KFo6;6+O0)(szhC2fQP%|>z1&sUHOK8LoGs(O=kWMKOP`faAdNP! z_)w$*VUnGF4tL^BlfyJyLOev7ME((c(GQurUNI*^x`Vv%U`fAc)!R>%+U{*B&7Q5P zp}3tMMD_fAeTh4e9Ftm@hLndz86+0KSoZKAb0gk~#xhqzV*JMKd2h5;(lP>@6bvwp|v1e!B zx%}wgL&>@U?G5;8ptAB0^~BpDJ*-JC!~F+z1F|LcCVh!Hp0E7m^>_>p@gQ^jzdkhg zvN$@#X>3m1!|Iki-eYsR%W(famV{$Y{D;}KKg0JIPkCf~%Ka1T_n^IZ(1#@sO&ptp zq;HPCF*oLrmrj1;Tp%|8TR5J^xdz8N98=15){W~yoTu?*;PH~sQN9&raDZ2slgBo+ z`M)^FH@05odpEA_l)n=-H{iUD&1rw6eABr+d~8%x$ugjiP=1fHI?ewd#~7YNNBCJs zSc_PVzT(iF3D{kQ^To${`MZskh$Rk9JL;veV%#e`;rJu?#m{oQg>p+BC#(Au%h9}Z z;vv3?eew`X|J37`=xgNB#R|k{KiFp~yOI?}mV<9o0Ucr$Tg4y8zP`kPdj-OYIKk}$nf9J4OA}90_j;9&r(x#j+@<49u z5OPSI@|LWU$H(FJ@cSHj zUc|@nOyFW3!_1l*dcJy8h7K>BE7xoquX>MQwd4_cdFksXD}RdXkfe$z+^0i*mL?15 z7)P;!t)wyIXQJQAVa9hIKQr_izFquU@BxbtAN>|%po!;DZ;m=@ z!9fufCfEeZRsi=;@FM2sUi2Tjb#@PPBG;yy4!P&vi}8OPV@cmf*tDnu-rT}Ef#2%* zN_e4n;k{^ox)Ze6d8`Jw)h7Na_kaZKA*rBG6GSf#H}LRTtcLI$;WPFJyvqeFQTW&h zV$BQ)J==mPF3ZIeY*rqb6C8liG3aQ zTA?33jJA4231EV;(!{c5+Ew5so&w*8TzSaLS_59(FX~w-SmD*+VX{OM=4}S_eaUPs z`qKt_!^umSRhJF;{gLftEO-!H%P77-!8bw~5Um-+hy_27V*`#4ah#9iFz##ceI9&6j8N@nPh@d|O`~c?JO<1=FSU>+R-uFh<$o`j=%l-dW+}{Nl4Pq=;gO7O_Ug)y_ z!E@E`3lV+d?>JA!frx6sa&bGxF%D}1?JLxo{4B(*>}OjLd*XV`pr_fZ>=T~M^LZPe z;%D>A`L+BO{s4cHzaol7vsf#(i9_NS8nb3ZvsrVl=6$VRYuEN^XSH`}AJrb#zN$;s zd32S!4&9h;UU#YPCf!52=XLMtwR)@Gr7zdF=|}XN_4n%!>pwKK8Ac474d)uZWVq4r zxG~z8Zmcvm8wZTD#xsovj5itYF+O5^#`wDNNK|xGV^m+%&Zvu`4n_SU>h-AiqP5Y9 z(XQz7=+5YKqrV&dO!O#=R2vUVLnPW_)q{O$qS{j)c;L?!?T*wTag!RVVFB zI*@cz(mhE}C%u|nncR^)mi))$x8aiTTeHX9WtrN?ZMAK)?Xw-Q-DJDR_PRaZ?y#5ITkU=J zb@qAt#rA9MuiD>F(Wlr`u1mQs<)M`4Q{GNBrn*w=Q@c}VQ_oI4ka}C{FH&DheLMA| zwAi%Fv|^}$A5VKe?VWUy{!03L85d?elks}Sk<1%2@5+2Mt267Ntfw6pI}SL$?=(77 zo%zm2XRmY4d9L#+=k3nNov%3GaS2zvE7Mi%YIgOzo_4+JZg!vR(R=KkTu-g%kDj-^ zwchKzw|O7(KJWdT_Y+^dFWr~ztM&Ey*7~;j_W2I_ZubTK(f)KloLu}n{d@g4`5*E> z?SIw(b~eklW(Trw%6>bCZVNWM1TobSs&oc~(>hXs24JG0=@g6j+JDZHx4T69ryd~s*- z+Tv}+XBS^md|e4ENiOk}{GsF@CBf2%OaE5pDl0F$t?a(C_sjL=_VVoVKzU#J+VU;s zd&?gwf2RDE@^>mkg}EZXqOqd4;--p26~Cx>y)v=VRasscsO+vhv+~BuyDA^8e7f@0 z%D1anRbo|o)mYV*s=ZZLR$X6pPt_l*{!txYy`}n4O?AzVngcb@)r#8I+I6+J)xKZn zsk@}^?fUro%j;jNf2Se2p|9blhBq6d8$FG+jeU)mG#+YvuJNN~h08jYUApXnWx>GS zz`>^Yrkk1`X?ngnwz;->ta+|^NAn{s=9b!)sg}Jh*SFl)@=VJ+Ek{~&TQ{^`*m_gz z1Fes@KGXWn^4R6+__t;Gp|&>A=j@(qdLHT(y@kEodN1m|w)fHAcUESv46M9lM`W^Q-Rbzj5{btDhTqZt%>(?+^KgZW+!UUN?N>@S`Ja#5XcF^4@6rsBg4*w05+0 zbYyhh=$6qlM)!?AI{M_8b}V_Ub!=|zz}S6bkB|Lr?ESIen)o$^YkJr0TXW-@N7uZz z=Ez#HHg>IbZSUGIt-WRKU27j+`}VkbymGv4ymx$LeBJoY@e9WfjNdqZ|M)*9;wN@a zTs3ic;=RelN!Mia*vR9#c$lj{xh_|tA1IjAwOf;m(}ZVqGR7s&o!`iyGcFQ!aM#E^;`#G z>~re59y-}StLKP_1z$3H4uh=J$TQXRD3-u|>Uj*a@(T4l7UwV;kmcjpm3&$~M=TEh zE@S{O6T?fn1ax)soHM(oKs^`OKbNcL8dk4at)6RHw&n`;T*p$u4=Z)`%%}N{dTwBS znt!Y3MwX~;SI?tZCL-1=0yE?b8KW)>tBDFSEZri?Xz5sXTXLjb~JNBT0qkm@C%+51rHaO^> zqj!4ijKdZAJXc}lul|{hySGg5EJa+`;<~}E;oiE4)(h0TkrmLstT8mRbJwQr+Z?jy zr`6fC%Q5Yk-#NWuX6y9M(;VAp9Rp|W!1;!m!te>+W`5K3#_f)kJGY;`emlVcAlS2K zPvLyH=+-lrzB(|6_T}5I-ab3OXL{$10~fYzT0gUG7vQja+lHB)j(LE6^@?uC${jP? zl)~LgfqX~!RZ0p=3Nbv#>QXb)XH0L}GQDogi~`+hM_bb>$Mk%yL+#71^*cB1nBP^n zYtxp(?K?LXt!(Q)`5o56wzD1VERbKD;I%aenYx3OvSOG(7UOIHS7z|tiBh|8Hj7f* z@Ow3z#`i9q^`Yi=wi)-<%eqZ$H@@d^ZKu2s;ts#(@r+%pmKEXOMzldCb~7Ss)}!QB zT%{+`*)+=0)7B%jCq1j^xMzo-+=epS&pU~=7cILvI`7C8= z<|zF?Hnyu}pXc!e8XFp8rNkC|ug7niyUKjnjdOaNohU=IlFF`zqiDD6J-shM`dG`| zi&~)BcKoQ6;H~ITR?kw;4fkdmvvL~k(F|ILPkQ#Txl5zb#+o4DaNzztR*&O2xa`8a z(7N4$ySwm2ni*U0O>1u>R?bS)@BY846P6o??#3ir;tzW^1rs7;P!IbhEHmNy#P!g@ z8rlEwC`5`u%orZW;~@=AU_aoAJPG`XiLD2ZbUSuU3j_bljza3Q0TvQA@RoM=S7h2w zA&>h&K#@X@^x$fchB9deGJ z@Qe88_{IG5@Bwe&Utq8EOW~ukiC+dj@QeIQ{0hibPD9R*1NdpKXwhK{QZ)2zPAMo4x5BVMNyuAwxr<45$Ucra>-TWTb#qZ_!VG919&BLqs3`BL^ z!+*jbV7uXo{}3|7JyL_I%z|Mt!_kSTnIGewSNWL%gSD>SRmH!#q&%Z#E z{s#Ldf0LcZ|H|&f(taCgYmonq|DFGXzXkc#5F(cU1^n|npx?g0hWUH^U;KT@JVw}F z{vq4P|IIFdB<6hnAN~>ln18~L@*w;hA@+v@5dumG9UEn1LN5%knvP;?Alvwdh-UYT z7)0le6Y(Mel9fdEhDZ|0!X(Uyi)CdGv!8)tJt%CDXMG*is2PrAR_HVBkUphC! znL~iZuvqpZ$hZ=P0}`!Up!NGHdyE}ocSB-uFMCutg$tI>ZbnuU9^pl-_kRnY@QZ9@ z70wlTB3~4ULQ%v%CyEifvP6`!c=k{B4!aL%=nCe9m%!ERD)trjJs_u>*a3FEC==!E zI`%d89Z>;V`WI5J6~!)L7lWd|lwHpD!yDyI$SfX#WUfh6iE2?JYN2DR7Y(8jc`gH@ z3DSxd(JGcB0#!TgeOHK1gt+V$J)&2v6n$cq=!fOtfEYx!wP7)W_)BAA4dff+VnR%c zDKRb9iS=TGm=Uw=i;%ngiM_<0XJ2A}1ex%durys=;X*R)A$}EF2`ok3Nz<(mI^e{w){z^u+DS2Y>AMe(b-}bJE}3dv{s+ z(VQkeVdmbMJ9p+cb7vQjR*s<7yrelvO-W}3Eqc_JW2s+Ul;a}NoSBpBiyq~6FmJ|+ zcinoovllCNb~}5`JMm(-wYTfm4-cBLqQmK^U2k>khj(wbn-Ai4qjTWaaWi?qE$8i7 zwN!Uu0HoV-z1ca{;o+zb7Yc7I8I>))w52z;jLPQGz^mD~b8MTuW66LlFQECDBOP~y z<8ljIUFAEDt`3||tm0k6U01jrU-eB#KHPD;qaO|wht@8tYknHwh}_lYyXGC6k1=12 zt;yZj#O~_aL95+pj$RxXORNWWm0&HXmpG*ACGKS6Qa~kg364oUu}|JEs+WcSWubpL zpdWVjc7^&qPp#) zmdlq4ax00Fx1y( z^?}2UK;p{6VBVfrn>-G+=}Y0R49Ax4+0qSLhGX+E;O1Ps>D!kP%SbFQl7$%FmhVGXrz$6C^#mTWsMUN{2y!ouk7f%(LpfFFrFyWM7UukG$NT6ML}p;p`6_e49O z7iq&^ZY^&wse2+Nd+xo?{z12M?^aXY6KnPYYr;+0hs*_WqVl$_cKq1TF=Pfx5?*n_ zFfR+L#508mC9I}|zu;v~7Mxvbz+5?o&yILXMIW+8 zJ1_L1lG+srbw#w@K(qqtJa-L!sG#l(koE(}?+5fF2h?{CxFG@TygUziOFi^af+>lH zCGtq|Fos@*V}y1j$q<82c@vYyKJst z*&~md-AfVW^iB! z2lK%}kq^fG=!3FZJ~(v@hoHP1807Q8f$-#H5R-t|6oy5BX3!l|L@OnW!8J}`P!OAO zI89MzIn!Pm74Xd?ulWF<3-Cdmf}A%4`ow$s#C!V07h-D{IqtF6ZB8dd2l3PH(q}UG zF<|_RAf74uJ^$fn50sDaUH!lCUCTH0msP%78u~Y$jtw49_c9@s@{ksg|HqfVj`yYb z#}q?j%67%6YTEi!W&G+oQ?K2qu-PO#U#;ELdfOE?H0AysU!y4Xy1tW4rI=D>imjK9 z;HzD;GAv{;t#&iRh77Htv1c1BGJWIdd}!2m>JC$#N{WT2s+%8IQhF-ct7vRv15+#2 zq{bGBTdY>KzR-3X>^!FANMkvY=ScI}Mn!`+Jy)Z@Fj&KkMzT0@^Tf^9k~KVZA_;F< z+^#cav%(bq%ok|cc=iq+vyx(Ot-DVrlsaiVjVe3UDxMC?Lg{K%XUayUS*>PR*w7q} zMW$TD616ufEUH^f)h$F0)mnx{3>}eZjec~;(nvxvCWX)R%EC3L&cZV(2yLyW^{_!d z7o7quS1YxRq`O(I=+#tJV=LDxkR=HWxqpU54HmQ0NB9(uW2<6_Z-bE|-E!H`&P^7o z!wVLj$*`EAk*f*B5>a-b0%uohRZ^*yxU0j)Q7oa@jy03=vo&HI&t6!zwKHLkliSP|@ku5uVP#xb z#ti&TLWecnQihEiu&!xr%)Ur*fzhoh8>i7GM&lS|*a?`K;E-rQpbod$3A?8CY8pEM z&@yboSl_DjBaKq^92;xu4>Ihev3|9(eoag!Q`< zr6E3|Da1$gZNx`ZM|?!jAwHs0h>z$r;v@P~#7Fcz;v;Gp+A^>0i~(3r)ifKqtx+ww zpv<6J%^EC|W*MBqcW?k!QK>IIhPu0`QxE;08YsgI%Xz8oCq^8qH1^I+KN>pgRM7t@ zi}?UNuhKCMZH{|hfHh&qd9gX5=e*QgnpY8mmz+S-DzyGNgsIDV}~;01mU~D-b*%tBh-i^XdXyL6a|Ot#&e#)qKm~-+zGtmx<(yzuosHuT@MQl z9z>@l7Wy(^de0ZJVKfm$mU z2gjtF$&F*um19zGZP4EHD~bkNOa~RbMc#&%!IsiJlpobt4=4Rqz9FGmmW7Kp51Gn% zS|IPTxNeEishoA3v@A}Z2&ja{glh~{Kd=1%ucTLBR$xD*iV1J(W6SztG8L$oR8{)v zpaCzYJygmVEu~YGGr~ni<3q3t2+oRQk9!iF@Y7i~i&OsLE9Tc=E_CKJn}g0pgDrrp z6N(Pt*2=i}dT3oTsG!+8VE)KBLJI?P8BB zzT$Ji(u(_nCG`ie^PVvIP_U%%NU)^vE9fr!_I}Mr+}>{lOX|NBEUABimCM53mx3jQ z-wBo!eh=OEeS3f4BW~}Hf+h8@1WW3F!pirBy*~?<6dntf6uvf|;L&*A9j%pS!%Y@G zxADNcjAu|w3f^S>a})QEp}*oHC*D@w>nkw}zu)m@7{B`n_8W8P?cr0y;bAeFRc6#T zR6dGZ-zJ_7KZ`uWSM(#0j#=L-EBqfHhm}(QT4zJo{xpsLG5jTdY;EOn s9rwaep$9sCGpn3a+V%+t_!U$Mwva5*kLi8k;{vL*5o6|N}%1=k-2H~;_u literal 0 HcmV?d00001 diff --git a/library/src/main/java/in/krharsh17/barview/Bar.java b/library/src/main/java/in/krharsh17/barview/Bar.java new file mode 100644 index 0000000..f5c1d82 --- /dev/null +++ b/library/src/main/java/in/krharsh17/barview/Bar.java @@ -0,0 +1,50 @@ +package in.krharsh17.barview; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.RippleDrawable; +import android.graphics.drawable.StateListDrawable; +import android.os.Build; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; + +class Bar extends View { + + Bar(Context context) { + super(context); + } + + void setProgress(float progress) { + ViewGroup.LayoutParams params = this.getLayoutParams(); + params.width = Math.round(params.width * (progress)); + this.setLayoutParams(params); + invalidate(); + requestLayout(); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + this.setClickable(true); + this.setFocusable(true); + } + + public static void setRippleDrawable(View view, int normalColor, int touchColor) { + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + RippleDrawable rippleDrawable = new RippleDrawable(ColorStateList.valueOf(touchColor), view.getBackground(), null); + view.setBackground(rippleDrawable); + } else { + StateListDrawable stateListDrawable = new StateListDrawable(); + stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, new ColorDrawable(touchColor)); + stateListDrawable.addState(new int[]{android.R.attr.state_focused}, new ColorDrawable(touchColor)); + stateListDrawable.addState(new int[]{}, new ColorDrawable(normalColor)); + view.setBackground(stateListDrawable); + } + } catch (Exception e) { + Log.e("DEBUG", "" + e); + } + } +} diff --git a/library/src/main/java/in/krharsh17/barview/BarGroup.java b/library/src/main/java/in/krharsh17/barview/BarGroup.java new file mode 100644 index 0000000..1e057e9 --- /dev/null +++ b/library/src/main/java/in/krharsh17/barview/BarGroup.java @@ -0,0 +1,199 @@ +package in.krharsh17.barview; + +import android.content.Context; +import android.graphics.Color; +import android.graphics.Typeface; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.constraintlayout.widget.ConstraintSet; +import androidx.constraintlayout.widget.Constraints; + +class BarGroup extends ConstraintLayout { + Context context; + + TextView label; + View initial; + Bar bar; + TextView value; + + ConstraintSet constraintSet; + LayoutParams labelParams, initialParams; + + String labelText, color, valueText; + float progress; + + private int BAR_MARGIN = 6, VERTICAL_SPACING = 48, BAR_HEIGHT = 20, LABEL_FONT_SIZE = 18, VALUE_FONT_SIZE = 9; + private String LABEL_TEXT_COLOR = "#424242", VALUE_TEXT_COLOR = "#FFFFFF", RIPPLE_COLOUR = "#EEEEEE";// has to be >2 + + BarGroup(Context context, String labelText, String color, String valueText, float progress) { + super(context); + this.context = context; + this.labelText = labelText; + this.color = color; + this.valueText = valueText; + this.progress = progress; + + label = new TextView(context); + initial = new View(context); + bar = new Bar(context); + value = new TextView(context); + } + + + public BarGroup(Context context, String labelText, String color, String valueText, float progress, int BAR_MARGIN, int VERTICAL_SPACING, int BAR_HEIGHT, int LABEL_FONT_SIZE, int VALUE_FONT_SIZE, String LABEL_TEXT_COLOR, String VALUE_TEXT_COLOR, String RIPPLE_COLOUR) { + super(context); + this.context = context; + this.labelText = labelText; + this.color = color; + this.valueText = valueText; + this.progress = progress; + this.BAR_MARGIN = BAR_MARGIN; + this.VERTICAL_SPACING = VERTICAL_SPACING; + this.BAR_HEIGHT = BAR_HEIGHT; + this.LABEL_FONT_SIZE = LABEL_FONT_SIZE; + this.VALUE_FONT_SIZE = VALUE_FONT_SIZE; + this.LABEL_TEXT_COLOR = LABEL_TEXT_COLOR; + this.VALUE_TEXT_COLOR = VALUE_TEXT_COLOR; + this.RIPPLE_COLOUR = RIPPLE_COLOUR; + + label = new TextView(context); + initial = new View(context); + bar = new Bar(context); + value = new TextView(context); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + + label.setId(View.generateViewId()); + initial.setId(View.generateViewId()); + bar.setId(View.generateViewId()); + value.setId(View.generateViewId()); + + setupLabel(); + setupInitial(); + setupBar(); + setupValue(); + + applyConstraints(); + + } + + void setupLabel() { + labelParams = new Constraints.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT); + labelParams.setMargins( + dp(8), + dp(VERTICAL_SPACING / 2), + dp(8), + dp(VERTICAL_SPACING / 2) + ); + label.setText(parseLabel(labelText)); + label.setTextColor(Color.parseColor(LABEL_TEXT_COLOR)); + label.setTextSize(TypedValue.COMPLEX_UNIT_SP, LABEL_FONT_SIZE); + label.setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/josefin_sans.ttf")); + label.setLayoutParams(labelParams); + label.setTextAlignment(TEXT_ALIGNMENT_CENTER); + label.setGravity(Gravity.CENTER_VERTICAL); + this.addView(label); + } + + void setupInitial() { + initialParams = new LayoutParams(dp(12), dp(BAR_HEIGHT)); + initialParams.rightMargin = dp(12); + initial.setLayoutParams(initialParams); + initial.setBackgroundColor(Color.parseColor(color)); + Bar.setRippleDrawable(initial, Color.parseColor(color), Color.parseColor(RIPPLE_COLOUR)); + initial.setClickable(true); + initial.setFocusable(true); + this.addView(initial); + } + + void setupBar() { + bar.setLayoutParams(new LinearLayout.LayoutParams( + dp(Math.round(context.getResources().getDisplayMetrics().widthPixels / 3.2)), dp(BAR_HEIGHT) + )); + bar.setPadding(0,dp(1), 0, dp(1)); + this.addView(bar); + bar.setBackgroundColor(Color.parseColor(color)); +// bar.setBackground(ViewUtils.generateBackgroundWithShadow(this, Color.parseColor(color), +// 0, Color.parseColor(color), 1, Gravity.BOTTOM)); + Bar.setRippleDrawable(bar, Color.parseColor(color), Color.parseColor("#EEEEEE")); + bar.setProgress(progress); + } + + void setupValue() { + value.setText(valueText); + value.setBackground(context.getResources().getDrawable(R.drawable.label_background)); + value.setRotation(90); + value.setGravity(Gravity.CENTER); + value.setPadding(0, 0, 0, dp(8)); + value.setTextColor(Color.parseColor(VALUE_TEXT_COLOR)); + value.setTextSize(TypedValue.COMPLEX_UNIT_SP, VALUE_FONT_SIZE); + value.setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/josefin_sans.ttf")); + value.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); + value.setClickable(true); + value.setFocusable(true); + Bar.setRippleDrawable(value, Color.parseColor(color), Color.parseColor(RIPPLE_COLOUR)); + this.addView(value); + } + + void applyConstraints() { + constraintSet = new ConstraintSet(); + constraintSet.clone(this); + constraintSet.setHorizontalBias(initial.getId(), 0.30f); + + constraintSet.connect(initial.getId(), ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START, 0); + constraintSet.connect(initial.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END, 0); + constraintSet.connect(initial.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, dp(BAR_MARGIN)); + constraintSet.connect(initial.getId(), ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, dp(BAR_MARGIN)); + + constraintSet.connect(bar.getId(), ConstraintSet.START, initial.getId(), ConstraintSet.END, dp(BAR_MARGIN)); + constraintSet.connect(bar.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP); + constraintSet.connect(bar.getId(), ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM); + + constraintSet.connect(value.getId(), ConstraintSet.START, bar.getId(), ConstraintSet.END, dp(BAR_MARGIN)); + constraintSet.connect(value.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP); + constraintSet.connect(value.getId(), ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM); + + constraintSet.connect(label.getId(), ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START, 0); + constraintSet.connect(label.getId(), ConstraintSet.END, initial.getId(), ConstraintSet.END, 0); + constraintSet.connect(label.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP); + constraintSet.connect(label.getId(), ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM); + + + constraintSet.applyTo(this); + } + + int dp(float dp) { + return Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics())); + } + + String parseLabel(String labelText) { + String[] tokens = labelText.split(" "); + StringBuilder finalizedString = new StringBuilder(); + for (String s : tokens) { + if (s.length() < 8) + finalizedString.append(s + "\n"); + else if (s.length() >= 8 && s.length() < 12) { + finalizedString.append(s.substring(0, 7) + "\n"); + finalizedString.append("-" + s.substring(7) + "\n"); + } else if (s.length() >= 12 && s.length() < 15) { + finalizedString.append(s.substring(0, 7) + "\n"); + finalizedString.append("-" + s.substring(7, 12) + "\n"); + if (s.length() > 13) + finalizedString.append("-" + s.substring(13) + "\n"); + } else { + finalizedString.append(s.substring(0, 5) + "..\n"); + } + } + finalizedString.deleteCharAt(finalizedString.length()-1); + return finalizedString.toString(); + } +} diff --git a/library/src/main/java/in/krharsh17/barview/BarModel.java b/library/src/main/java/in/krharsh17/barview/BarModel.java new file mode 100644 index 0000000..ef5d028 --- /dev/null +++ b/library/src/main/java/in/krharsh17/barview/BarModel.java @@ -0,0 +1,13 @@ +package in.krharsh17.barview; + +public class BarModel { + String label, value, color; + Float fillRatio; + + public BarModel(String label, String value, String color, Float fillRatio) { + this.label = label; + this.value = value; + this.color = color; + this.fillRatio = fillRatio; + } +} diff --git a/library/src/main/java/in/krharsh17/barview/BarView.java b/library/src/main/java/in/krharsh17/barview/BarView.java new file mode 100644 index 0000000..f290c92 --- /dev/null +++ b/library/src/main/java/in/krharsh17/barview/BarView.java @@ -0,0 +1,137 @@ +package in.krharsh17.barview; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.util.Log; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.ScrollView; + + +import androidx.constraintlayout.widget.ConstraintLayout; + +import java.util.ArrayList; +import java.util.List; + +public class BarView extends ScrollView { + LinearLayout containerLayout; + Context context; + + List barGroups; + List data; + + private int BAR_MARGIN = 6, VERTICAL_SPACING = 48, BAR_HEIGHT = 20, LABEL_FONT_SIZE = 18, VALUE_FONT_SIZE = 9; + private String LABEL_TEXT_COLOR = "#424242", VALUE_TEXT_COLOR = "#FFFFFF", RIPPLE_COLOUR = "#EEEEEE";// has to be >2 + + public void setData(List data) { + this.data = data; + populateBarView(); + } + + void populateBarView() { + for(BarModel b : data){ + addBar(b); + } + + } + + void addBar(BarModel data) { + BarGroup barGroup = new BarGroup( + context, + data.label, + data.color, + data.value, + data.fillRatio, + BAR_MARGIN, + VERTICAL_SPACING, + BAR_HEIGHT, + LABEL_FONT_SIZE, + VALUE_FONT_SIZE, + LABEL_TEXT_COLOR, + VALUE_TEXT_COLOR, + RIPPLE_COLOUR + ); + barGroup.setLayoutParams(new ConstraintLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + )); + + barGroups.add(barGroup); + + containerLayout.addView(barGroup); + invalidate(); + requestLayout(); + } + + public BarView(Context context) { + super(context); + this.context = context; + barGroups = new ArrayList<>(); + containerLayout = new LinearLayout(context); + + containerLayout.setLayoutParams(new ScrollView.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + )); + + containerLayout.setOrientation(LinearLayout.VERTICAL); + + this.addView(containerLayout); + + } + + public BarView(Context context, AttributeSet attrs) { + super(context, attrs); + this.context = context; + barGroups = new ArrayList<>(); + containerLayout = new LinearLayout(context); + + containerLayout.setLayoutParams(new ScrollView.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + )); + + containerLayout.setOrientation(LinearLayout.VERTICAL); + + this.addView(containerLayout); + + if(attrs != null){ + + final TypedArray a = context.obtainStyledAttributes(attrs, + R.styleable.BarView, 0, 0); + + Log.i("DEBUG", "BarGroup: " + a.getInt(R.styleable.BarView_valueTextSize, 2)); + + VERTICAL_SPACING = a.getInteger(R.styleable.BarView_barGroupSpacing, VERTICAL_SPACING); + BAR_HEIGHT = a.getInteger(R.styleable.BarView_barHeight, BAR_HEIGHT); + LABEL_FONT_SIZE = a.getInteger(R.styleable.BarView_labelTextSize, LABEL_FONT_SIZE); + VALUE_FONT_SIZE = a.getInteger(R.styleable.BarView_valueTextSize, VALUE_FONT_SIZE); + + Log.i("DEBUG", "BarGroup: " + LABEL_FONT_SIZE); + + LABEL_TEXT_COLOR = a.getString(R.styleable.BarView_labelTextColor); + VALUE_TEXT_COLOR = a.getString(R.styleable.BarView_valueTextColor); + RIPPLE_COLOUR = a.getString(R.styleable.BarView_rippleColor); + + if(LABEL_TEXT_COLOR == null) + LABEL_TEXT_COLOR = "#424242"; + if(VALUE_TEXT_COLOR == null) + VALUE_TEXT_COLOR = "#FFFFFF"; + if(RIPPLE_COLOUR == null) + RIPPLE_COLOUR = "#EEEEEE"; + + a.recycle(); + } + + } + + public static String getRandomColor() { + char[] letters = "0123456789ABCDEF".toCharArray(); + StringBuilder color = new StringBuilder("#"); + for (int i = 0; i < 6; i++) { + color.append(letters[(int) Math.round(Math.floor(Math.random() * 16))]); + } + return color.toString(); + } +} diff --git a/library/src/main/java/in/krharsh17/barview/ViewUtils.java b/library/src/main/java/in/krharsh17/barview/ViewUtils.java new file mode 100644 index 0000000..2fec179 --- /dev/null +++ b/library/src/main/java/in/krharsh17/barview/ViewUtils.java @@ -0,0 +1,78 @@ +package in.krharsh17.barview; + +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.graphics.drawable.ShapeDrawable; +import android.graphics.drawable.shapes.RoundRectShape; +import android.view.Gravity; +import android.view.View; + +import static android.view.View.LAYER_TYPE_SOFTWARE; + +/** + * Created by ArmanSo on 4/16/17. + */ + +class ViewUtils { + + public static Drawable generateBackgroundWithShadow(View view, int backgroundColor, + int cornerRadius, + int shadowColor, + int elevation, + int shadowGravity) { + float cornerRadiusValue = cornerRadius; + int elevationValue = elevation; + int shadowColorValue = shadowColor; + int backgroundColorValue = backgroundColor; + + float[] outerRadius = {cornerRadiusValue, cornerRadiusValue, cornerRadiusValue, + cornerRadiusValue, cornerRadiusValue, cornerRadiusValue, cornerRadiusValue, + cornerRadiusValue}; + + Paint backgroundPaint = new Paint(); + backgroundPaint.setStyle(Paint.Style.FILL); + backgroundPaint.setShadowLayer(cornerRadiusValue, 0, 0, 0); + + Rect shapeDrawablePadding = new Rect(); + shapeDrawablePadding.left = elevationValue; + shapeDrawablePadding.right = elevationValue; + + int DY; + switch (shadowGravity) { + case Gravity.CENTER: + shapeDrawablePadding.top = elevationValue; + shapeDrawablePadding.bottom = elevationValue; + DY = 0; + break; + case Gravity.TOP: + shapeDrawablePadding.top = elevationValue*2; + shapeDrawablePadding.bottom = elevationValue; + DY = -1*elevationValue/3; + break; + default: + case Gravity.BOTTOM: + shapeDrawablePadding.top = elevationValue; + shapeDrawablePadding.bottom = elevationValue*2; + DY = elevationValue/3; + break; + } + + ShapeDrawable shapeDrawable = new ShapeDrawable(); + shapeDrawable.setPadding(shapeDrawablePadding); + + shapeDrawable.getPaint().setColor(backgroundColorValue); + shapeDrawable.getPaint().setShadowLayer(cornerRadiusValue/3, 0, DY, shadowColorValue); + + view.setLayerType(LAYER_TYPE_SOFTWARE, shapeDrawable.getPaint()); + + shapeDrawable.setShape(new RoundRectShape(outerRadius, null, null)); + + LayerDrawable drawable = new LayerDrawable(new Drawable[]{shapeDrawable}); + drawable.setLayerInset(0, elevationValue, elevationValue*2, elevationValue, elevationValue*2); + + return drawable; + + } +} \ No newline at end of file diff --git a/library/src/main/res/drawable/label_background.png b/library/src/main/res/drawable/label_background.png new file mode 100644 index 0000000000000000000000000000000000000000..cdca013612026a631024f0090aa7fe0bd60e0ad9 GIT binary patch literal 274 zcmV+t0qy>YP)jquD~LvK;!(ttsW + + + + + + + + + + + + + \ No newline at end of file diff --git a/library/src/main/res/values/colors.xml b/library/src/main/res/values/colors.xml new file mode 100644 index 0000000..69b2233 --- /dev/null +++ b/library/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #008577 + #00574B + #D81B60 + diff --git a/library/src/main/res/values/strings.xml b/library/src/main/res/values/strings.xml new file mode 100644 index 0000000..b0df8fe --- /dev/null +++ b/library/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + BarView + diff --git a/library/src/main/res/values/styles.xml b/library/src/main/res/values/styles.xml new file mode 100644 index 0000000..b060bf5 --- /dev/null +++ b/library/src/main/res/values/styles.xml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/library/src/test/java/in/krharsh17/barview/ExampleUnitTest.java b/library/src/test/java/in/krharsh17/barview/ExampleUnitTest.java new file mode 100644 index 0000000..3589dc0 --- /dev/null +++ b/library/src/test/java/in/krharsh17/barview/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package in.krharsh17.barview; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..82362a3 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +include ':app', ':library' +rootProject.name='BarView'