From be50020392cf4a35f6fc6b0ac0d7bebbebb80340 Mon Sep 17 00:00:00 2001 From: Reuben Date: Thu, 27 Jul 2017 18:47:11 +0800 Subject: [PATCH] syncClothesTags added, only to be used to get data from server on first run. Use code from MainActivity. --- .../droby/Activities/ClothesDescription.java | 3 + .../reube/droby/Activities/MainActivity.java | 14 ++ .../droby/Activities/SplashActivity.java | 1 + .../example/reube/droby/Database/Clothes.java | 8 +- .../reube/droby/Database/ClothesTags.java | 125 ++++++++++++++++++ .../reube/droby/Database/DatabaseHandler.java | 91 ++++++++++++- app/src/main/res/drawable/icon.PNG | Bin 16979 -> 41876 bytes .../layout/activity_clothes_description.xml | 2 + 8 files changed, 239 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/example/reube/droby/Database/ClothesTags.java diff --git a/app/src/main/java/com/example/reube/droby/Activities/ClothesDescription.java b/app/src/main/java/com/example/reube/droby/Activities/ClothesDescription.java index 8a12f3c..d957f77 100644 --- a/app/src/main/java/com/example/reube/droby/Activities/ClothesDescription.java +++ b/app/src/main/java/com/example/reube/droby/Activities/ClothesDescription.java @@ -12,12 +12,14 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; import com.example.reube.droby.Database.Clothes; import com.example.reube.droby.Database.DatabaseHandler; import com.example.reube.droby.Database.Tag; import com.example.reube.droby.Fragments.ClothesFragment; import com.example.reube.droby.R; +import com.pchmn.materialchips.ChipView; import com.pchmn.materialchips.ChipsInput; import com.pchmn.materialchips.model.Chip; import com.pchmn.materialchips.model.ChipInterface; @@ -79,6 +81,7 @@ public void onTextChanged(CharSequence text) { imageView.setImageBitmap(convertToBitmap(item.get(0).getImage())); textView.setText(item.get(0).getDescription()); allTags = item.get(0).getTags(); + if (allTags.size()>0){ for (int i=0;i checkIfClothesNeedEditing(User user){ if (TextUtils.isEmpty(clothes.get(i).getDescription())){ clothes_ids.add(Integer.toString(clothes.get(i).getId())); } + // <-- use this part on first run to set all the tags and then remove after + ArrayList tags = db.getClothesTags(clothes.get(i)); + ArrayList addTag = new ArrayList<>(); + for(int j =0;j // } return clothes_ids; } diff --git a/app/src/main/java/com/example/reube/droby/Activities/SplashActivity.java b/app/src/main/java/com/example/reube/droby/Activities/SplashActivity.java index 60f6c5c..ffdc8f9 100644 --- a/app/src/main/java/com/example/reube/droby/Activities/SplashActivity.java +++ b/app/src/main/java/com/example/reube/droby/Activities/SplashActivity.java @@ -90,6 +90,7 @@ private class SyncDatabase extends AsyncTask { protected String doInBackground(String... params) { db = new DatabaseHandler(getApplicationContext()); //db.syncClothes(); + db.syncClothesTags(); db.close(); return ""; } diff --git a/app/src/main/java/com/example/reube/droby/Database/Clothes.java b/app/src/main/java/com/example/reube/droby/Database/Clothes.java index 89b0f5d..81ebc55 100644 --- a/app/src/main/java/com/example/reube/droby/Database/Clothes.java +++ b/app/src/main/java/com/example/reube/droby/Database/Clothes.java @@ -137,9 +137,15 @@ public void setSelected(boolean selected) { private boolean selected; private int foregroundColour; private boolean checkboxClickable; + private ArrayList cTags; + public ArrayList getCTags() { + return cTags; + } - + public void setCTags(ArrayList clothesTags) { + this.cTags = clothesTags; + } @Override public int describeContents() { diff --git a/app/src/main/java/com/example/reube/droby/Database/ClothesTags.java b/app/src/main/java/com/example/reube/droby/Database/ClothesTags.java new file mode 100644 index 0000000..7134607 --- /dev/null +++ b/app/src/main/java/com/example/reube/droby/Database/ClothesTags.java @@ -0,0 +1,125 @@ +package com.example.reube.droby.Database; + +import java.util.ArrayList; + +/** + * Created by reube on 27/7/2017. + */ + +public class ClothesTags { + private int clothes_id; + private String colour,fit,cut,weather,specific_cut,prints,embellishments,material,formality,colour_scheme,style; + + public ArrayList getTags(){ + ArrayList tags = new ArrayList<>(); + tags.add(colour); + tags.add(fit); + tags.add(cut); + tags.add(weather); + tags.add(specific_cut); + tags.add(prints); + tags.add(embellishments); + tags.add(material); + tags.add(formality); + tags.add(colour_scheme); + tags.add(style); + + return tags; + } + + public int getClothes_id() { + return clothes_id; + } + + public void setClothes_id(int clothes_id) { + this.clothes_id = clothes_id; + } + + public String getColour() { + return colour; + } + + public void setColour(String colour) { + this.colour = colour; + } + + public String getFit() { + return fit; + } + + public void setFit(String fit) { + this.fit = fit; + } + + public String getCut() { + return cut; + } + + public void setCut(String cut) { + this.cut = cut; + } + + public String getWeather() { + return weather; + } + + public void setWeather(String weather) { + this.weather = weather; + } + + public String getSpecific_cut() { + return specific_cut; + } + + public void setSpecific_cut(String specific_cut) { + this.specific_cut = specific_cut; + } + + public String getPrints() { + return prints; + } + + public void setPrints(String prints) { + this.prints = prints; + } + + public String getEmbellishments() { + return embellishments; + } + + public void setEmbellishments(String embellishments) { + this.embellishments = embellishments; + } + + public String getMaterial() { + return material; + } + + public void setMaterial(String material) { + this.material = material; + } + + public String getFormality() { + return formality; + } + + public void setFormality(String formality) { + this.formality = formality; + } + + public String getColour_scheme() { + return colour_scheme; + } + + public void setColour_scheme(String colour_scheme) { + this.colour_scheme = colour_scheme; + } + + public String getStyle() { + return style; + } + + public void setStyle(String style) { + this.style = style; + } +} diff --git a/app/src/main/java/com/example/reube/droby/Database/DatabaseHandler.java b/app/src/main/java/com/example/reube/droby/Database/DatabaseHandler.java index b207a79..f713897 100644 --- a/app/src/main/java/com/example/reube/droby/Database/DatabaseHandler.java +++ b/app/src/main/java/com/example/reube/droby/Database/DatabaseHandler.java @@ -37,8 +37,7 @@ public class DatabaseHandler extends SQLiteOpenHelper { // All Static variables // Database Version - private static final int DATABASE_VERSION = 6; - private MobileServiceSyncTable clothesMobileServiceSyncTable; + private static final int DATABASE_VERSION = 7; // Database Name private static final String DATABASE_NAME = "droby_database"; @@ -49,7 +48,7 @@ public class DatabaseHandler extends SQLiteOpenHelper { private static final String TABLE_OUTFIT ="outfit"; private static final String TABLE_TAG ="tag"; private static final String TABLE_FREQUENCY = "frequency"; - + private static final String TABLE_CLOTHESTAGS = "clothestags"; //Common Column names private static final String KEY_ID = "id"; private static final String KEY_NAME = "name"; @@ -84,6 +83,18 @@ public class DatabaseHandler extends SQLiteOpenHelper { // Frequency Table Column names private static final String KEY_DATE_WORN = "date_worn"; + //ClothesTags Table Column names + private static final String KEY_COLOUR = "colour"; + private static final String KEY_FIT = "fit"; + private static final String KEY_CUT = "cut"; + private static final String KEY_WEATHER = "weather"; + private static final String KEY_SPECIFIC_CUT = "specific_cut"; + private static final String KEY_PRINTS = "prints"; + private static final String KEY_EMBELLISHMENTS = "embellishments"; + private static final String KEY_MATERIAL = "material"; + private static final String KEY_FORMALITY = "formality"; + private static final String KEY_COLOUR_SCHEME = "colour_scheme"; + private static final String KEY_STYLE = "style"; public DatabaseHandler(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); @@ -97,12 +108,14 @@ public void onCreate(SQLiteDatabase db) { String CREATE_OUTFIT_TABLE = "CREATE TABLE " + TABLE_OUTFIT + "("+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "+ KEY_OUTFIT_ID + " INTEGER, " + KEY_USER_ID + " INTEGER, "+ KEY_CLOTHES_ID + " INTEGER, "+ KEY_CATEGORY_ID + " TEXT, "+ KEY_NAME+" TEXT, " + KEY_IS_DELETED + " BOOLEAN " + ")"; String CREATE_TAG_TABLE = "CREATE TABLE " + TABLE_TAG + "("+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT,"+ KEY_USER_ID + " INTEGER," + KEY_CLOTHES_ID + " INTEGER," + KEY_IS_DELETED + " TEXT "+ ")"; String CREATE_FREQUENCY_TABLE = "CREATE TABLE " + TABLE_FREQUENCY + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_CLOTHES_ID + " INTEGER,"+ KEY_DATE_WORN + " DATETIME "+ ")"; + String CREATE_CLOTHES_TAGS_TABLE = "CREATE TABLE " + TABLE_CLOTHESTAGS + "(" + KEY_CLOTHES_ID + " INTEGER PRIMARY KEY," + KEY_COLOUR + " TEXT," + KEY_FIT + " TEXT," +KEY_CUT + " TEXT," +KEY_WEATHER + " TEXT," +KEY_SPECIFIC_CUT + " TEXT," +KEY_PRINTS + " TEXT," +KEY_EMBELLISHMENTS + " TEXT," +KEY_MATERIAL + " TEXT," +KEY_FORMALITY + " TEXT," +KEY_COLOUR_SCHEME + " TEXT," +KEY_STYLE + " TEXT)"; db.execSQL(CREATE_USER_TABLE); db.execSQL(CREATE_CLOTHES_TABLE); db.execSQL(CREATE_OUTFIT_TABLE); db.execSQL(CREATE_TAG_TABLE); db.execSQL(CREATE_FREQUENCY_TABLE); + db.execSQL(CREATE_CLOTHES_TAGS_TABLE); } // Upgrading database @@ -114,6 +127,7 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_OUTFIT); db.execSQL("DROP TABLE IF EXISTS " + TABLE_TAG); db.execSQL("DROP TABLE IF EXISTS " + TABLE_FREQUENCY); + db.execSQL("DROP TABLE IF EXISTS " + TABLE_CLOTHESTAGS); // Create tables again onCreate(db); } @@ -346,6 +360,7 @@ public ArrayList getAllClothes(User user, ArrayList clothes_ids clothes.setCreated_date(new Date(c.getLong(c.getColumnIndex(KEY_CREATED_DATE))*1000)); clothes.setLocation(c.getInt(c.getColumnIndex(KEY_LOCATION))); clothes.setTags(this.getTags(clothes)); + clothes.setCTags(this.getClothesTags(clothes)); // Adding clothes to list clothesList.add(clothes); @@ -379,6 +394,7 @@ public ArrayList getAllClothes(User user, String category_id) { clothes.setCreated_date(new Date(c.getLong(c.getColumnIndex(KEY_CREATED_DATE))*1000)); clothes.setLocation(c.getInt(c.getColumnIndex(KEY_LOCATION))); clothes.setTags(this.getTags(clothes)); + clothes.setCTags(this.getClothesTags(clothes)); // Adding clothes to list clothesList.add(clothes); @@ -412,6 +428,7 @@ public ArrayList getAllClothes(User user) { clothes.setCreated_date(new Date(c.getLong(c.getColumnIndex(KEY_CREATED_DATE))*1000)); clothes.setLocation(c.getInt(c.getColumnIndex(KEY_LOCATION))); clothes.setTags(this.getTags(clothes)); + clothes.setCTags(this.getClothesTags(clothes)); // Adding clothes to list clothesList.add(clothes); } while (c.moveToNext()); @@ -497,6 +514,36 @@ public void insertDateWorn(Date date,Clothes clothes){ //Tag stuff // NOTE: DO NOT USE THIS METHOD AS ITS MEANT TO BE USED IN GETCLOTHES + public ArrayList getClothesTags(Clothes clothes){ + ArrayList tags = new ArrayList<>(); + String selectQuery = "SELECT * FROM " + TABLE_CLOTHESTAGS + " WHERE "+ KEY_CLOTHES_ID + " = '"+ clothes.getId()+"'"; + + SQLiteDatabase db = this.getWritableDatabase(); + Cursor c = db.rawQuery(selectQuery, null); + if (c.moveToFirst()){ + do{ + ClothesTags ct = new ClothesTags(); + ct.setClothes_id(clothes.getId()); + ct.setColour(c.getString(c.getColumnIndex(KEY_COLOUR))); + ct.setFit(c.getString(c.getColumnIndex(KEY_FIT))); + ct.setCut(c.getString(c.getColumnIndex(KEY_CUT))); + ct.setWeather(c.getString(c.getColumnIndex(KEY_WEATHER))); + ct.setSpecific_cut(c.getString(c.getColumnIndex(KEY_SPECIFIC_CUT))); + ct.setPrints(c.getString(c.getColumnIndex(KEY_PRINTS))); + ct.setEmbellishments(c.getString(c.getColumnIndex(KEY_EMBELLISHMENTS))); + ct.setMaterial(c.getString(c.getColumnIndex(KEY_MATERIAL))); + ct.setFormality(c.getString(c.getColumnIndex(KEY_FORMALITY))); + ct.setColour_scheme(c.getString(c.getColumnIndex(KEY_COLOUR_SCHEME))); + ct.setStyle(c.getString(c.getColumnIndex(KEY_STYLE))); + + tags.addAll(ct.getTags()); + } while (c.moveToNext()); + } + c.close(); + db.close(); + return tags; + } + // NOTE: DO NOT USE THIS METHOD AS ITS MEANT TO BE USED IN GETCLOTHES public ArrayList getTags(Clothes clothes){ ArrayList tags = new ArrayList<>(); String selectQuery = "SELECT * FROM " + TABLE_TAG + " WHERE "+ KEY_CLOTHES_ID + " = '"+ clothes.getId()+"'";// AND "+KEY_IS_DELETED+ " = '"+false+"'"; @@ -781,7 +828,7 @@ public void syncOutfit(){ outfit.setCategory_id(o.getString(KEY_CATEGORY_ID)); outfit.setDeleted(o.getBoolean(KEY_IS_DELETED)); - String query = "INSERT OR REPLACE INTO "+ TABLE_OUTFIT + " (" + KEY_ID + ","+KEY_USER_ID+ "," + KEY_NAME + "," + KEY_OUTFIT_ID+ ","+ KEY_CLOTHES_ID +","+ KEY_CATEGORY_ID +", " + KEY_IS_DELETED+") VALUES ("+outfit.getId()+ ","+outfit.getUser_id()+ ","+outfit.getName()+ ","+outfit.getOutfit_id()+ ","+outfit.getClothes_id()+"," + outfit.getCategory_id()+"," + outfit.isDeleted()+ ")"; + String query = "INSERT OR REPLACE INTO "+ TABLE_OUTFIT + " (" + KEY_ID + ","+KEY_USER_ID+ "," + KEY_NAME + "," + KEY_OUTFIT_ID+ ","+ KEY_CLOTHES_ID +","+ KEY_CATEGORY_ID +", " + KEY_IS_DELETED+") VALUES ('"+outfit.getId()+ "','"+outfit.getUser_id()+ "','"+outfit.getName()+ "','"+outfit.getOutfit_id()+ "','"+outfit.getClothes_id()+"','" + outfit.getCategory_id()+"','" + outfit.isDeleted()+ "')"; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(query, null); cursor.close(); @@ -880,4 +927,40 @@ public ArrayList syncTest(){ } return pics; } + //Sync clothesTags + public void syncClothesTags(){ + String statement = "Select * from clothestags"; + String result = DatabaseUtilities.getResult(statement); + if (result!=null) { + try { + JSONArray tags = new JSONArray(result); + for (int i = 0; i < tags.length(); i++) { + JSONObject o = tags.getJSONObject(i); + + ContentValues values = new ContentValues(); + values.put(KEY_CLOTHES_ID,o.getInt(KEY_CLOTHES_ID)); + values.put(KEY_COLOUR,o.getString(KEY_COLOUR)); + values.put(KEY_FIT,o.getString(KEY_FIT)); + values.put(KEY_CUT,o.getString(KEY_CUT)); + values.put(KEY_WEATHER,o.getString(KEY_WEATHER)); + values.put(KEY_SPECIFIC_CUT,o.getString(KEY_SPECIFIC_CUT)); + values.put(KEY_PRINTS,o.getString(KEY_PRINTS)); + values.put(KEY_EMBELLISHMENTS,o.getString(KEY_EMBELLISHMENTS)); + values.put(KEY_MATERIAL,o.getString(KEY_MATERIAL)); + values.put(KEY_FORMALITY,o.getString(KEY_FORMALITY)); + values.put(KEY_COLOUR_SCHEME,o.getString(KEY_COLOUR_SCHEME)); + values.put(KEY_STYLE,o.getString(KEY_STYLE)); + + SQLiteDatabase db = this.getWritableDatabase(); + // updating row + db.replace(TABLE_CLOTHESTAGS, null,values); + db.close(); + } + } catch (JSONException e){ + Log.e(TAG, "Json parsing error: " + e.getMessage()); + + } + } + } + } diff --git a/app/src/main/res/drawable/icon.PNG b/app/src/main/res/drawable/icon.PNG index fb8dde3cb5638336c570417c3d01ac8629879a6c..4331d20a2f9ce101c628a15f2a3dc301fbbb5f4d 100644 GIT binary patch literal 41876 zcmeFZ2UJwe@-K>lpppaxiGoND4mk(WK_urK2N*IlNY1E8R6xRj5)~QZkdtJQoE0P| z$&xbz4B-v>16QZIdgMXFsDh37yzU)Jw z8V1HiowL8o*yx&Ci&tale^(qH>N;Uy;F6sEUBHM>B*(zGKV_|<yS=I zQHAb4)DcX_e@B4RjGI@8PEhy`H@~nD4<82|4;QxpfJ+#_&Bw{bEy5)%!o^MZ+lOA_ zD!L@*Xl@~*27K^acjzl|dMjsV2N3|k&CTtO8}A*cqa}b_SXdaq#RK5s;Y3q#I(a~x zLGGLor`tb-{4NIwb~1Ccc5t?aLg>!qf=r<<&f@g+XC3|V`E6eI4u5n6arzBAG>QOs zkOP4G4j16>n9R-o;BjzqwEI3Zb29+g4r~vGI6I;Fxc`<94XL8yAFO}doxT0vaymIn zyP{|C8zO(p>7?P|00yXmouDp`W?*So^hj?1-Qb;^)xdv(`)`OslmD$C2P>#E)X56^ zF97_b`Cr25Y;Ex`26EQ&FWJEE*8hU-tmOyWcbod5YB4nGBKIA^AZMtf1{7*1@xxqI zejh#E{rhL;DM-hnZ4EJpx;e3m0shMJr{Vl54GaW1gC)*5Ik^NmdH6NBg++MzMYy@x zxr9WxxXuarLHQRMis(gT4sr(lRSFN!+4A7yIWOfOX#Xk)YHn@e@o!1_lk%Jlb2AYO zsG~i|S;E>LWC;d1KrF=oe^#EO{BFG>vJfX{5X1~D3zR@t+_APc7vUAKFclCmHRS{e z@>y^S3ZcJ*xxhS}!eC*L8IKUil-m^i9S%js^X&g58VEIWIa@$z(La2RIn)d-{trVE zF}DyBHUkOqatdb2(mjz zb2b?(EdTkN&at_Xa!b?@r4B_B>wl*P3tn?Bb2C06PGN3SAx?7vJ~K{J zZUJGm*_-n5nemwk@(QDk{l8NKKiX6M;c5QQso_s6HnRdjEWzdyfZu2Kd&U1vn&T7Z zUnf1ls~s|EDeJ>r+QLrFwy;AHs}A^r~Z49%75Wg|9`kLf9#R}7_Iys0sV7ya~2wIvwrp~t5p9eGOcm#dW5IN@$e-AJJU3dBy_J3H5zez_2l>c*t2?BwHgaj?nQ7kvw zVgHCQdAPuw=z4B03v&y8VP3N{*L~L4Ibna-7xcdkGJo{)H)8(m?RPz#gZo@4Bld^i z61fkxgE}fg&A}49Vt~J^J}2|fW(}~rvjWKD%sc+sezsYksq`Mm@*it|Z}?B+*FXFF z-j@>EAxo$!-#b6fKO6pG96y5DbJP4zcQ)$374W^`uLAzphJb%J7vO(4lYeIaKQs^B z|85@t%>EzD; zzMrN9dAQIY0QcGVZ>;B=|H`WSKeL{1{wwRBoSG18X9=F)dizWDIj*x@$B$*Lj?V9a zB?S2SdHKZvf35y2hl;g3*iHv%jXq~Pot+m2&L;Mq>8~w+%c=V>InTBH#`!~M=W=o1 z-NlbubfyoTWCZ+?W&9^k@?&ZLFaG{>O8<)mpBMM5lk;f&wEPRMpF(t=;1^uy(fDck z7hFGu=sdwMxXz>T)ABF4ehSfff?sf*N8_jEUvT{tqVoj5;5v`SPs_jH`YA-`34XzK z9*v)tf5G)rh|UxIg6ljQKP~@)>!%Q%C-?=|c{F}n{sq@hAv#a+3$F8M{IvWFuAf45 zp5PZ;=h66S`4?P2h3GuNFSyR5@ze4zxPA)Jd4gYXok!!R<=LvqnbsmkMmVd$ZQ;5zJ{DSK|8b2-ng6pRcohSGO*LgI4TK)ysPa!%_@C&Z< zX#BMN3$C9+be`ZBT<6jFY55miKZWQ#!7sSZqw&-7FSvdR(RqSjaGgivr{(_`>^sjPU6e4Rw|Dp$-*+Vr&3=B_342;MA7#Ihq=>Llt7%p5G7)vG?7$UDQ zFm6DjjGG={U>I}C0;M$EM^?r?-Y{qzB2U+aHOJi&7)75kT%#LR;6X7&!x%3UZeU`0 zU%z#YuILibVVz_42%!8?}o9^Bgf)E ze_bR)e_g=+4=*1-zI2}VKfk>D;o@)oe&_wqFX>FsGx?MEKfkrdYQ{PKUVqQ73dQFP@o=K8yJk1$fA!U4HGFL&XC z@?cVSJ)B{mc4WC0Fzy8CxF&K`Ze1aMnyax{0b>c7)&Xvf0)dF__jlPXDf)Lc)6{C8>%yMCuy$sSR$}Ihj1dvm2xR!=xcp>9G!OM| zr!3;=GrJvi!t{mO>tbVHqG^tj3Q|k6pWz}?tW`D)Q$E2})C{yLeHR5(;TYstQmfng zw$j!xc+!q<^A-7Q=hI3TSxl2Dehp$6=?pfNvd;6cUFH(UuZ|zzRNZNAZsK>opWq_! zk^}(+PMnH>-V)C zHwgU;1PT~B2-(WnVW;CKWJB z!k%q;QmaekdRa@NBz7-b)9nPl3iNl-8@FD<=b{y5hM9K<}=?m(dbhZl1 zea2AUGrGV3N-%T2qoZM%YH~a4p3dP%nTZ`7d8R5!=7F13uXSEf2*fo%_{jBANDEU! z9D|hO@zvNCFFz!spZml}-^9ojOxbwsQZ)QYTrcn1Ug@2D63Y^LvTF_S7<^uLkc4sz z4L({;fm@QzPqpQ?zVA|F!e!mnOkzO4-r1K@rRxI!023&M z_0TKi^QND0$QTD?IS9PVonT(oND1V2yG;?zw^`An?%_RvuqjSga7$=p%1c~*jWaDK zcGB%7sqaBDz71VJP9IppGmC16Q3UqPPCgXzUKi+*#;7nE-Lwv>mF1G5<+h_s9gLY>M+S5Mm8xk+)9;;uu zm94+hXw-+8_p%?*w)Qmv|XPhv#Q~-C*x}l zrf}U8Y<^fL*&68ijc_^$;C(V0OH_c~@*Ns+5XH)pbJpvq@i=dHN7I#Ax=+1V8t!FY zy`Q9+SE4oy&4umYY_2Ccezu*Ayt7Ozu@SgpMiB@y`>=$+L|9<`@KJ}v+~ymR5x+eU zrF*KBM&?~u3bQ~YOIwf;SF_eYxeh6NKw*h;baAJgWD!Vxdc(Lk#=$OYL=)nxfQli_ zv4NcOXj<8DXwNz`TOmr0m)8B#ik?m$AafuCdiEt+8WoN(>^r%o3bG;Dfs<5K4j6S@9~1DyMBVUcl-T^X~_OH zAzka@x1(5;Ey;tLD{1TbCI^@q1kN*D1alGwa}pZu6cwdH->itM=}88$3kK_s-@ydC zeFTks%GH(>%n(ZPz}z%Tg63xPTOAht9HIz23JSdGnj1$S^)t|$_XS)bddz{K37Y*6=_!mjlI|g!o}4UY<)IY0nDsQGqc-^t@-XK#$R$W` zg9eCGXi3eXobiaUU7zM^iM`mv8yCZwpH*0n&(SoDx2v!Qzwap5LXblXwpaaUJ+jU8 zE8e#GX_?;NVBut6=G7ueeX#{tcB%7I1P8c{9SXX!Fj}@WV_CbiVX;T^k?OJc(&80u zFwzq@73#3hS1;5Gql2Cxrg?fSvag)^#{q*$PR;L($I-5yUDh`cmc=I)qNCc7Qqot# z_6++reHj%#_UZn{fUS~z+;JlNWX6jwc4`Rhc9O1)ZS*nL6VhD!Em5wv2swzl2pRuT z(nNX*QRGp}h!9Hl#Gaw7uu(uMz7#=ZHZ$GB#bItKtjFFQ`f6$}ZQGTjP&V*(@Qh9> zi=&7OVFFiBgW?dVpR*?Mq;Vi!zrcNx?>4^Qw2*FwkgMM`M`xN_XW0T*b$oAK-}0Ef zq4w_9!KUEJR+$iGV*fhQ-#4H6*hm@sIC;lYoMH#nyN)#H`X*l|`O>#8u7);hv)OJ0 zsWiEd^b_jJzTj$=Tli{S0LDH)8QoEo;i}>4-8##6=!xaOF zBnRAFr%jDmIx@JmhTd_iF+OhfVafun^u+By~< zYjs>Kd%|jP5Y6<^b)5MaQzwwx+eg_zICsrQE<3S~&$&tzX26i{?xAhXoN1Q5@bqMf zp!Kv1NMF6>=Fm?jLThpQpHcmiECTo^JI!@RPY0HWZC8Q4kH$k?;xVHqA8Zw0*(SNV zrL@uJGc9!Ba{@S?Xa#HjaAd96h?#IB&$gh+-E1U4U!+1rT;74>3$YcWUKWE2zGxwi zr@IejWg@|vUY4ACOz;>3ecVm2dRt_=w)f_3Xc>e{*46}5ltoiBboupOq@!_ySBi=t zp*|Nmo=rnUsTM*t;Db8(_5MSYRz)B3+nZWt7%6+bLmJY1D5!ThkUv^qn<*di`eO^e ziJ~P1c2dDLVE+DU9Y?k9+9~qXC#Q6en|?`0@FBb_Vt7a!UO@Wo(_%C~p0N_kGV*rC z4tSlC)qFFF;99}s`vN9DM>YA!qv}dx^Or!^9&(A@FA!ZZgK6b`1WC(>MA503hRMbg z!n!}gMB_}dJRNI-#ZJF%8^tlE^_=cf*&p1sDb3PI85^Auy2FI8x$>NpWt?1M?8CIE zyDg~}O0y!VJ1D=+J-&a%p@7ZUFT=5)b2%tB<;6EbQvRgFzQJn=?_D2;@_pdH1f0X` z+Xxl(%iJ(Ob>5{47lH1YtqV3Qr6H9+YEFD1Pw=*(=A}007kH3b()NX{=Z?btR|8KP z3nQ5gPh@hTO0|7Ynw~_CJrVXCgq}?6-*ox7bt6sY5Fw)?vKGy6noDfPu>2ejly^gj zBFq=%-fv-5Ed;k}(r=CIgj&{aDfjQv9^ofwg(6COuk_j|^^T7w#XiU?A*powM3XEV zcM?8Ue7)v&b{xB1_OB{#Ey+yd`*u2ng($vxn#t_*Z9M;^^-JSWmUY3B^HvsAM1(B2 z1nUW<01>tyM=kwH8kV4d686rAxtu^pEV! z%Ou~QP8<88WPfa|WEYlswNIB$#ixeAl5vTQnZ=)ni)*!**qp7D6E5^~nJ6kMl8KbY z!4~G6R!Ae|GX|>H($7?ahmCo#7lAzx3S(K)^oMN|8m=`O#goY_e)4*dypE8XydW0- z+=)JRfzA2;ySm$6eGfP3law;t$&4pod;uATWRI7x*>Y;{w_6fbb{wzgA4j*}%UIuk zK2FcWNI$ab#F$#doflP@-}_hxp$6B?J)vvA2;&!^`YgWsu7AB{xTud87f^H5bNvGD z*`rOA7a@DZ~ z;6431QEx&gA9p8iwDy44c4l5_O~mTv>#@*mahA9s*9{kEL4iCU?=2n8D-r<&^GtaN zr(R^c##+Kyo(;Qs|8CcMX3<@%tGC-wB6IpZUqqF4yq=N~xg1@p1N(Z;c|c z-ad`Jqbxfh#-haRHp55N+mhH1x|{d%1${g$IFndg!WV?2mn^;vQ~61|I;GZF#X$^PATK-yON0Z9OK=vpAiksZ z0rBX8f4S}l*=|UT-K)UrcIKwV%P@0Tra6W-vk82vJxj+$1oW1oK+HZoR{@fAgxbgT zWv3e5d4@Y_ezSVcC*pb}w{0$)*hJO~YffGAUQhRg&#Ct<--poAp2}s^%Vl)=>rD?a zVK!!St-m9s;ucv13|#S7^k=CJQD(h+30EkMO-EU1y)&cc7{8|m;*D_f7T9?@pbM8H z?750pLS~IizTH!9qJEsx_Jul}m?$YcLNm`4 zd|#MhklhS{1rl^%*S9v#m%83#(A_*r`{&kxtV0k8iKq;O% zMG-YGkpWE}9xtB9-=adodEGPd8Z;%S8w?hN5D8Jzth=&A6`h6ycG|th~VI{lic;;_8Hr!`U5x}4@&#l zjA0o^5#bsc?^s_{%<*j=)Y`P)r;BMYs95YB?CGq@FDxsJBGK2RUbZ3U=$m|$s9d^z zH0bx{THfB+i8c+9556J~N2Ww1-Sp~iO zIGWbyZHL&w`P><8w3R1&kqn(?A#?d~7(MCn87lFpFI4i%)4Kt~)c#UN^=zHYua4FT z{Fp&@LT$zB_SU#MAaa451s#?YY;Yqg=PK=t3msT;YX{vCc3`ZXc!G_#dkSW>S$yPQ z_(=mB9=-Ekwr5=L`@&bFSeC5j=VfTMrSy>lzbjbeA-0fa_v;vlWGQIKbE(Nz6S)#+ z5wQ+MWfDh5;Iju2V^uyfo*V5U=%MHH(CkR>&+#6G$8|ZVtsFUS?OR>5>YM%89)B@u8CI6LCV8EsX|C!?NiYaL0EW3we?3V+gTZmv8Sd)n>& zbde&!EQu?DQf9gL?uCI+z7$3s;Tc8P1MWfVyB!IX`NWa5vOKxr!NCakqc)q-@>*z^ zWjw|56?T!#&O6aK*Lq6$+t!c5MHcHN5w2i>IXP2IrV1sd5txlyHk)V8embz}qW~x8 z&=-W0r<<8{6lAgOAX@j5JRHUmDGxBpw~%+@a&2y&hzrd5sFa;91|?=vmu z+dVcF-A_wcQx4%$r=H=2?83FeM@1Fa-~xWv<4L!RX<*D>SbMBC4tB&Biy8u@)Po`m zitq+W00tTD%VIt#e&_^hVxRo z6pMJi$HVcyzd^Awjgb0s_%%1Teo`kFf?-1_DtG6u(;Tgsu8 zOJ*s4O;pC42<3pco@u@GBA;aYU~=hDRkqhzI;=@A)YD)(;3$Gl(;A$Kq2{pV)cZ*^ z-ago$-#8Q~m4~V=xf2~I(2dIj&9!~M0toDul(3S5DupU~3bL}PKfGwvg|qr72^KWg z47c0v;@~ga%c`>pzf)q*>U?6=j#(Ug_*hmk`W<>wiB$yH#~*DKn4N29pYp@PYHd4$ z{H*CdYu5S@4cFG~scVz;CcmW`i=2c7t2TUKXaG@ZcveLg@FpjPv1mQ#(P9vg<#n_( zPoG3B_T{-Rs1tlxXeKT>o4eL+k4eRZ{HiHwz)8?^iAUqkp5y!}Crf^L65F2vK5Obd z$IjQj!9nDq{7h5^d|5V(q&X$VT85=8_*Xb@mkxGG>tvY-D?VH6%85}+A&RsNerODw z<&F?B8b=+Ya`Q)`E-~~tRU(6DlAW4Cj65N7>?Uiv&)0MV$JZRhf=vB#?Cx1D2NqXH zX!8WUx#@aWS#&Aqqg?jAU^V{!98*n>@ONo5HR?^C)6&a6peZ%@mlhy{)yNGOY`BDh z$9`uJi?qzWy*ot}?n}J1N~8{vUrxl%a;BfH?lrd!blSiHGM-2&jZdo%aAW|Pn3xhb zG*NpaX)%>Xz{>6MxCy~x-u5c}COIX6%hEVyJm0L|MDt?z$>zg~+Ik%D@`r|Ks8Ud| zB<(#eN3*~Zv-Qp=hu*&_)d`hzB%JTvlL0*)^9mQAYc$K(lFRyVMOQY+H3^@=CU*(aM%SCBTm=Udi$v^io@t0toTq>d)HP zQX9(6ud>p8BG(6KnTRRxK770u+T!^_Xk6ZdSvLVNvOLX_;O(e`9ATOTSdk6jrJ z#Md(C2z?gb8rIhzjiK*_p%vv>po2sR`fQ+14{k&l)H-hw_I{dH3W}z6#>{BH4eMB3 z#V4|vh3#D8V19oT9(;5cn5UF4v^y)4iSpgzP1uuRQ+{D^<0`Jx73`?p=W-2qGqaD2 z##|O%MGiJ_;csut!Lxd2f-dA<|FCrU^gt#VaHm#m@atlPmxc#sVrtCc(_re!0jwc` z=?8r?s}9K@SM2V|X2*@BJ6(^Tx`yv5)RIaj+PYx(CAEo-q-zfwHbtI{s_21CmYFSV zHEmQ}KxgEpvcFa<8(Bhpr=H`=w6+**RhF+09lezabLr0+`#MXY{8cH0H>LRU=%Gm| zzdVd!Njs#KP#) zgspS;l-{ZnXbm^^Ci8ORLOG(V%UUG&fSMx{E&8@~9Q4fPm(uK{@V$Ksyhj=Fb)~Ld z7nxutk(PI5dOIN3Xcc)^_Igv*#oQLblcR(bO{29k8qpp-tQ6y?WOVfLijSp<5oBE( zeT3cJ+0P|+L)wY9`k}`;f{ld-22tFd4j)>Nn8lCl)>>AbW>B9S!na){*L)NOc;0iq zC|f(ilFM2Knrq%-N#40kiv8rhq|_TYNnr2dv$l1vPRO$J#}#HgOtd9P8Y7mOCS@C-OWA6Eo&XNI}?nzw*dx^Mr4hPv;;I! z+yMb{DisuYxg_4@qxRJ`gUkGTeOo)YdUxnkZbYKPh}xa@=$jsihi&0FQBNL9TTbOw z*Um{O>*1pyVCI$KDV1xBx_Gd}gBN_(iru{TbbIupjoj9@Cn^^#%a7)YrDq=y33t`_=@-8oU758d z#%*wa=I?pT#GAfebvO%ZWqT31+d31WDmlFQSaFb@2D{#Vq7yTLCR`qjs~8ke_`c}b z47L)Z>h-xUw`3J!e0pYtCR7_pB`PfY*zUMQ(X@>Yb(Hy3)+xkR}AAtTw7e8I; zrGhf1M#t9BX_f@PPZp$V2`;YdNF3s(`3y^m-LRm0@9E9a2Z3vO@#Cdt3rkxrElH?& z8p83Dx0ZPK2R3Ul`mYx(Jvf1gJ}*#gkn)2CdpDCuheg5y5wxc}7uJPzZG@sSMp?ya z+*oT?R*mPhvK!mqOhOSSY3hyd%MY+Gy2LFK6soNGlQtEy^ibI~S!cuuLaqf)mC|qR z9AISztmT+KE+KxXLcZKVoM6vKePz8?Ra&v3%YdCvC0-Cs6DiF(>_CDvmJk~rN(R< zzudUW1tpZCg1(LVBKA5# zkal#U`DB($e_4U4$tLE|g0n;s{mFo)f-9-qBr+j5BH_O-)m^`?vHM2o>eZp9j< zSIcu_Eg==>ZuhC(%^E+XC(*&<{&$xUrrU9&`E495CSgOs11+Ko8KA`4#K5X+V*LY6 z0Y~?@YG%?v>q4fK?&ceOc2mMIx9|ppbq~HFeB*U8#W#sN`8o$UH2qKRaGXA3mbkYY zTCwX^vQ*oa?Jl(*;7mO4Ls9UeFcsk_Q#@Jdy*kJ4jXd+{uY8sChePESM?>i`D=t`ic zFY;a_<`?fPww7@t(!}FUE%w-nl2B=IkrmDIx~TkixNuEEYSi;a#jE z>4=RL9C)7EY5<$4m)oXD!O4#H+VwG!2EHgopEYufi}JkdTxd@-$NOlh+x<*b&y+hv zXq*=mfY!I4+CgPoF`(RQy>bmk?}!K%%UFA3AZc1*Z$E7-nwb!rEpI*RxK6GcJ!59m zlPs=fCz5I5k>+A36s;Uk=FrHYP$GsWW{uGoP<$GwDVjrtsUtFE<$2m}f=n(NDwI!e zr&>ySM15KojCGJuSP@d-!+<;{EigC9^;!5L4Dj_jkhtNuMDp2Bab29c7U!}qI=}af zT@spsbTXn=p4|O>L#}tHtS$OwwbS+VxOeX-4KyPIx+a$w&Hajky(jea$#2`XMKRhS z?^hv8>7`f#*rL@M>bd*ku4~Opaje+GH6@HX?QKl0|th4E@ebS7EirKK}h3eU!4(*fjo|BYu z9QTWs=trx*ehol~b}x%0y(rNML9)TCF(WB^#5|lR^4_BNCe+tBqqC^IY(T=00kF&= zYE$9)tscjo$0J4PRvR8>8yDhr3Gtk<8yI$43OjktF&TR=f^_*sH2jMLr`WrAJ=?ig zj3jgIt)6C`yA!*;?V_N)%#l6mgWd4=>$PIF(@p3l8{Q@8y*iRR8h6ve&*6twag5W0 za<`$pdsNHpPG43&>1kurb81Vs`xK4D!^uWAE5$5gW)@=9w5@ZEsj|~pA6ZyDxX38C zyyGmqns^X*B&w?wb7yR{SsP(D=WoM!Tw&LBIJ8nX@M;BrR%ubaER8D0_=sX)#1EFn zT5>NA8=qafXk{#3U%X?`Y23|^&vgI{Wi>uUI}_K@QvLG$Sz9c$K4oHFvqTZbyFfik zC-(As6_KG2L3F)kAj*++OKaOQy*KRAvpDoy5M=vIca_@lPApR2_BOOjs%an&i(RU5 z#O4#%z{6{^AU0fshSS4&zz)8gXXln#hplVTz~SVWgMQg3r;Yg$<2*)_;|zd7NU+^# z;kE<5wnm}DP@mmJ^v#IR4HGy5lPBHc8OOab3+V|A;YKWvuFF%)W~ObB1m_x*zoZR$ zCw$C8a^r-C%_A<@K+BhiIT4l9-dMQri_XCv$l`E?r9LbfNG*+}`;=PR?u)+vU($VO zXl;4zz*|8r;h5oe>jIP&4lKD7Mx7!gak*dHnT~mxj^frhvaf{Z!GZPY4Vv7mlK9Bu z&e`EO$$Dh1UZWG<#k2d4{<@bV?Bs*+zvgF1BvST4gJ_&1ltaiO%1M z<1}1@Y|k~n0))0&+jqgO!MS;~TBBu<9038vhpYSF_Jsjnuh+4gE76HejKG009^3N7 z(M_7+{P5IopPOGzT3^*ddA<2u_Lv{fYJ$562n-+H5Gl1B4a%iTzt~qY<~^3pAT;N1 zZQ+D7;>|`aDrV-876-~rbf`a7se&Gxcy^iBO`ayI*{rgRvQY+pKEOs)xH=*cJ%$ad z28Ej>gYkwnCy^VGZ(m2%1=&T4hI?V z0~_i!as0oD(>p#IFThPMS;D`ILc7O`c%2bJ{Rq)hZEe&|q*Kblm*n;J5yfv9Xe8Kh z+Mob#V-X+a3cq(Ww97`f=$S)X;iyzLwOH5cJX{LKr**fIQrDVb@3#&qFn}hZ z{Q-Ld0iTV(=?BM_B4VN|4R44MW1DsDG^f$KW&C|Otc6Y?K_k1@RbqoU0?=D z9>BX07QfLxY90e3iGS*#?_|fklLBX%2lQJh^hGv#9Z4PLpK3dtto9DeO7{*_ua9fiDzE27v;v1zdHtVg z%B4+yiUBu;hCEkaob4}0r=$V{LiIdo{O{g?NZK6d;Ep;E&gV!2Ez;A|lR48!Nj{A&e)eXE&MbB-_D7H)PLs|#NK(ooLmlNX!k z=fa2zY0a^)urOk!7YH}gET;jEh-Q^vLU<4;cy=`|8E_m|H$X$9d9VL>~&C8f&&PlubMsi8_**5iCu{CEAC`qJSPiLn_a%SBsB?T=l zAU`N7L{{HOvfNZa4xS;@5zeWQ8*Ox>GJ`6#HF@+@E*9YhgFcdD1v4`-Rgcouj7bc> z@f)>FLM;f{)T%A%`OH7BnF^gEM+XIug-6gKjIQHTWO{BDt>;${`mOxM1une%H6I>> zH3Whb`3?A=<NILWNY3?qF}JL!cRTxOx%xfmpfSiflWL?s_MWy3#hlk1 z;iRjJee&yM-+fj3t#>0Igo92XXd}SWNfA0cGWN?_4=m0<4qjcKykLF-efzwjFWr8; zk{7oQ{S;sRwaAE&U_C1m&^4^eT-w-{F8ZzK$G)dHwN&fEGfg?M0rkno#~U7<0vf({tyUMKUmqEuh__&!qhR6u?haJ8K1F0jb@D)0AAJ_77 zE(`{zprelu_wEg>+J>#uZEYImyA=gj=j^h?gv+YX z7Fo5ziQ8}CNo(51eA~Orls6|xBGoM{ExqKjAfV9~ zpHgzIFNYC{R-EoUlb_fJPU83M2Pv;tBkO}+$zr1SES*dj{gN85Xe3})@+K9P*9-3X z_Snb$?st_?4*i;WiC2da!3M+2yLp?O3l)=+>28y2Nrps`TUOHx6XMoT{r(QJN;l}+ z%Cz)w;rhdSMx2_bQR%e%AzNVwYw-mUykZOFPt9U_7<#0pDc{4U6=RF_JL<6jcPs6k2&~gX1UYZ`68GA zPD`OGC36_*QKPoUK;)rhPiB3Ey+&%K20BqV8XD}a4fF*eNXFLmn-BGKSDOe0C3+5X z&Gyn^#d5$j4Zi5bpqnaFjWN5=Dk)D!XP&5fuCQG3Y?`kRb6b>KT%5q66|tDHr>XMr zG2@L6y?yLVbRbSt@gcBF@$ni)R_&<1YZCH?ToWkc-S7Vko>c-Aw6QbBHV0cy3aG92 zTt$-5r^hgQ#}NZet!vI~NSYG?`mJ#EGl~l)T$v>mHG_zgfijv=<&@=Rp@rC?2^Yv@ zomvAcg+9szR{L~X%2=1ma(R+=C$NV!?7D)$7{$owK%*j6HZy(xlCwy8XlshTZB^~H zIfB_W@v0+Nw9(IseYoH-7@m~VG-+!Uq_#xS@Y3bTAlCW?>kBD?gnhugI+Vsoc7U{_>W4+<~O2@>0FBaj7LA-^Hd(1p5K0}h)PGd zR5)3kOV>}vq(|c9^Qffnma?|M*s6b&^Xy>>L*EU}GI);2xbhsMF@U~@R&+tT8lKxv zTh-iMl2~yWeP%VGeg8FC7PVWvclfcZCbF<6Hm$5wP!q7_nQix6NH}SG1G5|ou*SnyHl(Ut{Kg}2Qvd-c@PmD7djW7_rC^Z115WD3XAmoDnm zEr9EhJ;4uEBwA5;*pXBPd8%@T!;8*rn4C37bxPGUc{HNh>m7rIzR!!w5ut4Px4%*H zzj~c(_$UYQY@C}k5Cj$q*@luNbcTsZN{)+?h%K&N+0KthuwSzF^SdssOct4gD9u;M z=Rn^(%QBghuT};oQ()ESO&HR4uf-)B9^9x8)XyKUtZ5LX5!&J+z}@3NeBF85ynoEO zCb-)7%N&*zo!)Ztz@Z$GM+HLz_w{N)J&)~L0_`lP@<3M`8@VxB)k0?`QMRPkVbtx& z;85JUltQ2CazOl-n~AGg<~l(S#ECp$!PO6dhXZ<7p3;pcr$_@4 zQ;u`9#wR_jP`$?oB3i!hw5{&&c?wCIYO~U4C!h{p-(Yt?`z*)m;a5G+j+CsfsR9hz zHY6E(ZMSFU<`3h*)bwF$DFh80Kq5aUP*G|b+FS&i?Q->p&Yba75pU7GXlE)8IO!eHf!jbquwS2u_mmF#%EtJ9OqECt%5{C|X7FGUT1|oog+mRO zL`yz74Q&?$RUV=+U}GyZC9xVj8op|~*W#Jv=4J&j-hEHy>vbf0LvU=h+1E~>d&g3O zlm5n+aamiBhDIG^hf8^c3O^<~G;*LD+b+hr$vIJ2*L2fo=d<=h$FfoQ+$eB%oPMj! zunDP+q)fVBHm%WAmc@qKuKC{5$}%AEs1n9>N0J!y=LZ)i`+Z{6$Vc? z!CPOv(y^<&e35 z-gjoTJ)Nf6M-oIXM;^G9RwXijH*e6{kB+_eGcDsMpMt?<@ruFas-7^H0Xi|5xQpR?NTHhYBdbJ*TYU>G@x_UPdfMpWtIe)5eaWj4u|MapW zvv_iaVBHFV$!k1Xhv}$yhtG4PisoZ=*^@(X0LG=$?8x=u3Gr9UWm5$9%A)g`Nl1x} zPmc~JljfdCS+2X?xd9PI?VFXO?I0;)o(A`W^d(%KG_>rj4(;4(k2?__UwRp9(2m6j zfvK;REj7-)v^Rhr~hL90Fbu!&Ip*iYytDONjVEH4=jwl24Y5m!}} zTLtlK2v`#5VRT+1<@owZ#f!_Ya|_&u&bP{mkF9sy;);1xxMyn=SU)akdD z3uQP*kB<$jn1}grAPL5`Hcf(r14E|YH`Klhr;Uv2K17kxah$J@*X~!v70D79v{rie zhvplgla3U2#2EJ9{4Y_P`c_+37N?DJBUdLHf~Rnno~zk<%@@i{I;{?@S{CwSym)$* z%;7R+@@60=1CK>oG(P%WtAOJG-kh`7#stu>UVVRO3_YaZ-l6)Jmk!^|?%cybHN`sl zuN0MbVIJj=+6|eUjaFr0p1&|Scn7uFdSN-e|6oqhZL1XPOyq0PZrmG3rH(Bg^tO=j zp;u?r;da*j*@MrKpSPkW7siPS9$lc0LO&#BA_Xx7n7*(+DjeuuUP$lPD8itQ&osI4 zs=Nvie~lTg@-eWT2g0q*%z6L*PXxDxH zTJ{c(l#_8**{FUGk3nCYqMJg&=QEvCPgIVtwO(KgHxoDu)G_!fTxx>7!WHyMzEm0zNM&CBzQOImf;BPiGrT>~x1ELwhoT2+ir6qs1Ls!Z|S#aaE85Tb8_r4I-FJ z^z_ykdwY*~byMXn<{H!YE7N8{gStdHF=A835`yc;(aGGIG1)scHdI_CT?!(O*1{#1 zK=yB_nzTeRCPaeHeY?$W2vCHeWCyh$exSJZ9_J)iz8u-$d0#ZaP%C{-ZX6n1InO zOw(9Rjm6CdE-eYHEH$oR=b*Pofdu1N?|=G zCd$vNy$=YSWj)<%5?*Jvov}OaJ${Lu6M&6S8l-*mBHkDp=;!k>S~}(-)Rk$}!j)Vs z2E9!w8bw5FAlmmVZa%Z$`zBV9?xm3>Hu-+IQSr6_p@j9fwqmX1R1M*Modf_tSs*nE zrZfO0_bozZxD1X}7*kgEDnE_#78W>0=vumLBQr`DpR2>ZBI~scZkgs*A2!fVb>N{V zUg+M^BdKp;>D8q2^<-|9+A^k{C**q6mkkq@JB|$6IV*IpZVJb+fvGdDz8$|OUAh-T z9bZJcslnpiPd1lhN-Bp3=h7ws&Be#)4-_@MwCZrvg4@Lz?8iM%Vd>c)sq3*e&K)0% zuIf%11$#P|#T}68kX8G__oRr=-AYF*9yeM$SM1&{sb><5@cHUwJcVgx z^@c|2*LSY3Lk!BTVy-)H&4F1fbjUiMKU_=gy{n#WoBo;2XA*uvG+%AxBQ3pke`km~ zq?0m`K0(vHW1UpgVEtZ6=TqyOh+abTExqlzqx>7kMb%RzejRa?mv!tea$wg?rPa&H z!ex8#ZynHnfoDgqKRQW_99I@@Nx#RN@V-O4dnPedOYf~?wnA-a+>lzSqDMS#5S&p^ zAv9lCMw8uCOOuM0U8>tUr`>66LwKR0uKS?5#IDZWaeoByFcJL#Ff=g<>4iQI5GoZ? zc2;;exLV}z2po@ve{NL5MM2l*!0KS zbGAa$Q*aVA*AS<$7bW6iRIR#xhwbRwZXA@w4Ub{S^@8bDr#Y>>M*O=F*1MWF0cv=X z5YlW740g`CN--pN)6Dbscy4Ldp2BWfui*=#9`{yv%2_p1HA-*jov4(X&h0SvWsl*@ zB$Bdg)P1=~5XfFz=9aR0n#+k996#l1?A7tjiE=GzA|b#sA@DjgO9g(GHHjWsR7~Fs zokiPN$==vetC}oMXrP8x2q#0PO*&h(c-oN6ClQ}Zu+r5FtsaVUW1&gRw<=*pplihe z$RejCK@qZYma}K>o*-B=K1~`3w`5jF$nqE9p@L)lBiY=90Q@<_j=ouY0oek}vPPwk z8sruMNV!%v?S_>CT}FEg1wxZKw%A!k&9#}PzBb8KKX?qMb7v1h0DLvlwMcRZV#v#` zB@%`#m8Fnn;$% zkDHi2m}Z%H|F>z)1GvR_iDdxL_n(DfK0|+RQCITu|cxa(_X^MyfQUvLQDn(idy$Aw|NYQ{i z0t!fz4xvgCigYQ`rGyfiLMYOtmk{_)xZj=kz4x#8nLG2{8D^NBbJpH_t+VzjzrFWD zzauN*m}y`Cuy{c-@8qf0VxJDR(^=^A_Khc{xw~KQ4l3*Rj~~8ruaW&Y?6Z-c!LoGn z^@*7$fky~4UlYuq3+dp+4A%!^i*=(e2~o>=DGuUJyzp7`Ukj%F7!RtLGSnfWy?7lH zny9t_gs4>+vh9zT99+$JYyf7#EU@~9z=EcI-haL?*4Nv6Ss0QRk+zL^Wy~2?Z1e+S z6zKZePhW397!&-rsA;z{S()cD2WN#*ZIFI$WkelDt8({(UZ&WpN&i#=>fx%P*tn2a zaiE^GThN=0M>f#f0+bgL78sQqKQr2nCk4*Do=&w-={i9ciJS4l`W&y-_RoENTrUiQhWrh6VKf-k^ zo_yU*Tkb9i-M1C0GR5{^f7ViKD#Y!04`MVEC08<4!|P)bdgi$4uvho<+?_^fOsU%a%sqE_y zDZE%7o$c%nc%Pm43*XL57~c`o$Gav$j3C{_s%~nSaUpjt?+;U@wxt2Pyds~FpFxS+ zZ!vi^#5yAv%beEh@e@L44^Iz4&$r=L;yhA9R?|}oDsig=be6${lM?qZzo{QQ0Diei z9K7_im?5Id)u6VUFQ^9fcw=>eKfTVWt@?@)=OlL6eL16dnNA9Nqp63ZK$zYqh)6liI(&2(?u=W3L3zprlkPt7W)LFAda_4mgQ7hZ?gvZ0cXwC~K87&^*@Ac)E$R2)xozTW=`+$pMAKR9(;PA& z0aAV6P|u~)=&YD*OG%1k39aL1QeR(Is>o51;>I=b#KrXoUnEIG+1f;Z7QAF(2W@_G z2q(ph*ANe1yEv!OP?KUiiQlZfo`;cwuB#FEnRrOF(a~KTtHk%-1w%rfsrjvpjJ1A# zM&@zBLDMXa#iS0|ozTb~n@l<49-*&IL~v9&cW`=OT9&5W1j$>|BrDOodIUc^=%j7x`jjvyevG}U#0aq1+=B7TVarN3QhTIW zFxNt3hW(w4UrH*)VHZZL_5ubmVA4xu-ea{dqE%ceRE10^kqDH27EMQO7K8{nUU@sDQ()Wf}4kcb~QE;a9@5Tx=mx$d#3q$={>S zNytdbGzoUMuPU*hCr_adg)Y^9H=SNzeZPvG&JUC(rJ5g`g5@Yb?^P7(_zjO3ToyDJ z*sFeNjC9b|(J>}Z3MTCC`pzr%=EV#MurW4vEG#%Unr}!^M@+O5F&@3*<&(X^7f5rD z_OMQPl`&nv^X24sv9gEi7FA(N$|O#GGRn@m#2ZD4tkc^lnwT)(+}@_KBHGKBUr9+x zNzmRBSIy_@Z3fmJFlYRc~*3|}EnPhM8J-Wh}vVOp(6w_H; zOK*(rERh2NcmJ}OnnP9@??-fWVq^`duy3cdW{C%5db4~yJgi~C3UE0<^X4@FAee{E zD_lz$5D3I5m0;%fbKdL3(^HUx1-Y3IWwGN{Y5Lr~O5P}l4Tx}T9=z}}IQdUL30R>s zbs2s57dZr}{KkIW2_agRL=_hW&7L3kS!zl$~=n z{tB62GuNtT>62AOTzQpxY-=orG3uJc4sbl}>4g2--D`1OwU_-slN#_zyg+TSz5zy< zsj~Q98{i)}Ob)2@n+e$J+i2e3;m4Kr$<(OVC5-Kb50NSrBV1;dG7{tcZ=e6dtj(>B4Z5_!^nUo2(6MU7B zjo)pyj*k@#V9hRIRdX{Dq8PR2Y%=FwZa7Y!ALljg)RuM~n1$J859NA+;Dh6|!n$dq zl8oxGdFY2JX`%MYDf$fXMscX)boJ!OenPj6jSrKf;@kERmr^iceNon=zn*ta_Z;=p z39yk8;@M*o!|dI49X82MwUjbGJW!DD<&?sC45wQR@pp-`5$_7I;{u*4$W3o}EGdaI zm=pJI!#zmZ_*`VkqQrS~mU3^w&nCr%R)*u}@@4=}XxUwO6MJ z9${)4CMTUTaBmW!D%)Qq#nydX&Fw-XD(+}2W8_h$}}o~eGQKg ziRIZ0)ZW1RN-Z4Gyj1N!Ik3_=LHlD`&~Ne|%ryF}Pdqn}&~$ z`+8HB-UGEMtR;RZnm&O>z6mFJ1`#xUHlq;d`x0K+`=ZaoyLl^x^BhJ?DdaXT4uv}7 z3x^!W@C-U7r1L@*UCJka+Q1oZV8LkDjv&;mN z3f-FXwS}f-`DSU*n5AuS+DC{r2L%Y=f_91v<>rnlSa5Wt`5Ao{bmdrbP5hoAKlQyc z$Y!EOHW7~OA~YZnerypePwCFJvG)ikuz;2AOCQg9{bjtr-YphUW3#U<719B0&8cr8 z<;_sCj8$-w6^w9hNsXF4glFSMe?^0Vbd(4m~yaNoALCi-7H8$u8$wY5;dAe zp~Y`pcIqse#6>qpE#WXdv$qjZ$F)yOx*7VJ#+>75^14z<*d+ztN}IreAMS+_wtb~q zcaUrY&nmo43ZN}d&Pdk(&0zbiVltv4nlTH2s`%9aJPL4;{{~9^qb6X;{+;%pH-Q=b zPZuLPpXB+tfa?d5LIw~?Fd$MS@E)BdMTf<_mA^G(8{%CVpV zapC<0Lo*q}<+r_|o7C=r9gA!`M%0I-h^W9D3g2NQJXMj(hQC%^uCI-MM}r=yGTo$W zXv+N{nv|C&$50kdp(SKq<&Rp9xrC+!f<8OevShIY$27U<-@fD5nqTyrO~;8$R6Iyr z90dG?=i#f8A|dlSmz+Y64+t{$zkY5zN(J@P$Xx(Pe=?TwJFXnDsmC*xg-5{F65l(l z{rF@{4v;xFX$kNQl4vZfB?C1VH!*m{0rO&k?OK zk<>NPO{GftrSXp9Zy& z6@*#T1L@ z=nLBU<0SXI; zyt_EhJjd@Hs4JX4GHevLzWH$-UA!K4Vn4yaZCiQC({uKPMY6k@aQb|lBNP-B^IiJU zyfiHx+?||##1rL#@{PL_2P0$GOZ=N})kIQN0tia(9+6wuKdg&aegQm)@}XKMfQ$9GCCiU?EOfx2S{E>pj`8OA1Nl#lChI@=qYG*a6Xq}BL~j>G`%kI zG3go?5~#cx&b#6h_P+%W7{og|Wy*#foIW&c$cS<>1;kaYZEM35ldv!BS=MYKmnLKO4DfB+WhZ zD!bA`2?u-N(OXxN{`}oSNhWhKS?Bvm>X!+ITkcy+6#GS)Ws2Hy&_+uq|Me&KAZIyA zF{S?OAzE^lLD$VSea$$<_Bauy=aROV!sM!E4Z+X~~@diX4oL1`lJRy8u|a zl9vRii_it6-{I@{=o)@WfaXk$x>TZ~&qktHK{e8DXCCqU?bX3G2?yA;j8KWkWDgy% zw#hyJv>C&iz0^LG$KtJ*m}O>>P>7L%`-5k+E|jG70_bij#6Fb+49I_OZanlyRR?Z< zoc3|Cx5C-_*d}diQ+R7~Id>kElPmBZR)sYHk1SW|q9g5&dCuK87`b9wr&o9*`-yQ? zz_WqY#;gv32Nq%SmSn)nYQ8HQovIYs*)Xx#NpAr$N?%lEX>ZS0mgg4AbMSwL-ts3| zUNhfGwTIBx*V)+IzD|$Nd>U&D2nucKu8JV>%N}@la0+aNd6kH*uumoEo4YM>lubsM zeEaVSpdzo9rorKEJeOPd!$+@XOfA8|Hl*rw6@tzOL7kpSZW|+MD_YD%NRiN7FywYRnq65m6J8pCl&z$5u%-#{%76GoIaq6 zAy0v?4~$FBa`@&dXqFjZGQ^7r*tm}Gk{QYl1rrkel( zsV<(aR}MW3UEMUMp=n>Pr1J(>iP20tFKojCM6k!Lx*BJcIeDUOSocEI#)H81mtTw5$k;_7!lhvT zoNKS4(rf||F&GK_16}^m_;;KPN6_0Cw#+bZZ!P<*)YW4|)u&b|*sTK4n6K(VWMp+K zx``aQfNPRO3MO%$^x*PqS-&lOQ{OpWsgdNCr$pAi7G_MiI~(ggW4kq<*b0Vn&8N++<^0OvKH^t#6_Z`FL0;~5eoc?Dyybtzk2yT zp~F~OJBSk|TW@*w-V-o+dUevw8-LFYLG`sE%rOXe36^0k)d%OHO%BZc<#>E^QSLi610?K&?4 zfgGonI{3B{5$_g!=h0hP`3W@jFWX#I3)aF(a#>&{(`7~ODr^}?PeshBHT}V5G>L-z zx|t~s{N3(PV#QV7<(-MBSQn6ew|cbXEq@V8ZWPR9XK3qO0uq&JmWxEx<%`YYCy8T2 zQOLn@||sR5>Yvg;WB=jxpv&EW6?eud${pgme-P4%law&vF>6fO? z(s$fAyZvsL9`Lk4RQ2nU87=in#c)VCa73nZWE!oca{m#zgNzt!<#7Puew**#NPm>h04)Toeo!JVN~0 zXu7!5xS*p(iltPMY{j=C^k9MAXLSKe@*l)HzwlD#)#c zu}5>~^o@I%2M*~s5`(tW;Aewxri31g%&=l(Iw4_}H6L)PBM6t0<&@S_L7OKtmG=J4T zko0yps0eJ9%tDexdrncx1EqO3KI%(bR4hxAYpQmoq8D=WW7Tw34f21^-R>qE`1nKd z`xw<*G|j-DEx$e)Y;h2r;7f?-nWaX*gHbmu-u5mfD}OH{J+Z%n-<6%*Kb?2Ad&-Dj z&r}HeiKcrm;my5oQrXej*6JoqEfU}a!iUCH5n&pacYm!#DSvE_eMMTz&N3VhqvRbT zBJxWp%FCNI_ddH)^g1&m7a!tUJ6Bvcz{7tJOcJ;!BGXZF3JT`6nZdQ9o@?vvNn^4f zBtMWh4APkF_*5IuEf$M14CK8urZdGKcybnqZ zanMN%<7qC)EEkN75pa&wQtGlHB^Zw8X?_`-E}FHejC%IRPh32B+|S;Gk)#GdK48Ih zX7v6GX$`A8v$t;u?cnKeoN_w}MDGTW>hTsjR!uOz!g<9nN+$Pl`HaeZF69=$R1Ijty;1cg_@$1a7G!qm}-tJ9JxBQ zIYnD_o0fJ^ZchtGrX<%l54rEP0i)s~rF3>Pk57k0NJ>$z5+MU)>SVAjPS zWqws-cH8VN>j=kFDW9EQ6P+6kg90Z&wT}-&KVpbwOO~=QMrmpE1jJV{@^?|Es z_BkB+OB(Qt0%iWk&}J8L{MAYHmwev_EZp z;arwJhoeXqaSp4I1|I@9Y1hSh*WZ`aXC`!Wv5Oi?lM0Q1Qm@DPZ_r-6J9W$&G=EE* zxCp`rAt6-N+hi3odRX#D^8s9&!5nti;ys%^T%W8Dpm-iXYl-NH)xb$G8Z?#CoAzk# zqZK|LLf%Ebzshp!$cvzw>!i22hhA6tP%E8IOfarY^q8I1W&WvG06m&-CvN%u9q>U? zLgk!amcF!#pWLkNeNXQL7`m=L(@%B#W>>K0hRaeT#i1JEFj0v^e(zFRd}KzRV7DAq z^F(ry)71K%%-Fa~57-Kd{Xfz$ZOpEJi9gU_vuXAgr~f>WaNEuAX3u(C9;z&4(PF>? z{|-ngD*|O?BM?P;H*J%|F}i%iqUm|2w*?RT*+niW8z2l{RPQH98t|QPvsg@G_{k#=&dCc z`C6nVPIewymEJYjrt@{)o^aeebGxYFQDI~{UlBC*u-b@&fEYRu zw|#<_oY)@F@zWoxbJE&eit%~?xEYrCdCcT60g9I?+I*5$(es zRpPO*4qPmWjPv0$xuJ9)vv0>HvWu+Rw*#jZzendW9jj44NiW$a{%E|dORyKql%3`J zD?x}3nHD#dLC(~5;?$a_eG|w_f=9o~t;?=26-zDI zPVW?mhWNOcAWJG_I6PPB62bIlIrLY5KmU5kl|pTLp~c4{6e{TKvK?zbJVmXYI`B(* zFntP2_=Ni8H#tZxe7(jv0Jy`Je8&xygVEqmJ1}tLvk+(+4o^axjlp)h)I+jKX8~Ar ziEpWh*Wtrio2vNw(wzB8ijhBAKLRfxSg%z$y!xKc`uJw5Hl@dHvcix;G5CD`O}P+U zSlMJJ!Y1=;QRbiuHnmZ!k(~O^?T3$WG3eHf2@3OzC;cU?+u(76{a7!z3y%0ssFw z?({E^>K_-uCgoE9PXOcpg+>CB{qLOPJYD(c&2ymdU$p;0^BfgCAL#t$f8PA(0OP*~ m`q#%gANN0KMtwdD1GTqV7P9+23j|~Z(z>swUZ!UI^1lGlB<|V( literal 16979 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 diff --git a/app/src/main/res/layout/activity_clothes_description.xml b/app/src/main/res/layout/activity_clothes_description.xml index e9cdfcb..4c4c710 100644 --- a/app/src/main/res/layout/activity_clothes_description.xml +++ b/app/src/main/res/layout/activity_clothes_description.xml @@ -67,6 +67,7 @@ app:chip_hasAvatarIcon="false" app:chip_labelColor="@color/white" app:chip_deletable="false" + app:maxRows="3" app:hint="Enter a tag" app:showChipDetailed="false" /> @@ -79,6 +80,7 @@ app:chip_hasAvatarIcon="false" app:chip_labelColor="@color/white" app:chip_deletable="true" + app:maxRows="3" app:hint="Enter a tag" app:showChipDetailed="false" />