From e3a605075ac27f0adcf536280aa1c924de652ce9 Mon Sep 17 00:00:00 2001 From: Michael Bond Date: Thu, 21 Nov 2024 19:01:32 -0500 Subject: [PATCH] Add tab icons, fix item sizes --- .../Components/MainTabPages/BagTab.razor | 325 +++++++++--------- .../Components/MainTabPages/BagTab.razor.cs | 2 + Pkmds.Web/SpriteHelper.cs | 22 ++ Pkmds.Web/wwwroot/css/app.css | 4 +- Pkmds.Web/wwwroot/sprites/bag/Bag_Balls.png | Bin 0 -> 1040 bytes Pkmds.Web/wwwroot/sprites/bag/Bag_Battle.png | Bin 0 -> 1040 bytes Pkmds.Web/wwwroot/sprites/bag/Bag_Berries.png | Bin 0 -> 1042 bytes Pkmds.Web/wwwroot/sprites/bag/Bag_Candy.png | Bin 0 -> 391 bytes Pkmds.Web/wwwroot/sprites/bag/Bag_Free.png | Bin 0 -> 626 bytes .../wwwroot/sprites/bag/Bag_Ingredient.png | Bin 0 -> 957 bytes Pkmds.Web/wwwroot/sprites/bag/Bag_Items.png | Bin 0 -> 1027 bytes Pkmds.Web/wwwroot/sprites/bag/Bag_Key.png | Bin 0 -> 1034 bytes Pkmds.Web/wwwroot/sprites/bag/Bag_Mail.png | Bin 0 -> 1013 bytes .../wwwroot/sprites/bag/Bag_Medicine.png | Bin 0 -> 999 bytes Pkmds.Web/wwwroot/sprites/bag/Bag_PCItems.png | Bin 0 -> 1345 bytes .../wwwroot/sprites/bag/Bag_Treasure.png | Bin 0 -> 360 bytes Pkmds.Web/wwwroot/sprites/bag/Bag_Z.png | Bin 0 -> 786 bytes Pkmds.Web/wwwroot/sprites/bag/bag_tech.png | Bin 0 -> 1044 bytes 18 files changed, 195 insertions(+), 158 deletions(-) create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Balls.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Battle.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Berries.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Candy.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Free.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Ingredient.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Items.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Key.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Mail.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Medicine.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_PCItems.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Treasure.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/Bag_Z.png create mode 100644 Pkmds.Web/wwwroot/sprites/bag/bag_tech.png diff --git a/Pkmds.Web/Components/MainTabPages/BagTab.razor b/Pkmds.Web/Components/MainTabPages/BagTab.razor index 7adf4f17..e87da539 100644 --- a/Pkmds.Web/Components/MainTabPages/BagTab.razor +++ b/Pkmds.Web/Components/MainTabPages/BagTab.razor @@ -4,173 +4,188 @@ { + Border + @ref="@PouchTabs"> @foreach (var pouch in Inventory) { - - + + + @{ + var tabText = GetPouchName(pouch); + } - - Save - - - Sort By Name - - - Sort By Count - - - Sort By Index - + + @if (string.Equals(PouchTabs?.ActivePanel?.ID?.ToString(), pouch.Type.ToString())) + { + @GetPouchName(pouch) + } - - - - - - - - - @if (item.Value != 0) - { - - - - } - - @item.Text - - - - - @if (context.Item.Index != 0) - { - var itemText = ItemList[context.Item.Index]; - - - - } - - - - - - - - - @if (HasFreeSpace) - { - - - @if (context.Item is IItemFreeSpace freeSpaceItem) - { - - } - - - } - @if (HasFreeSpaceIndex) - { - + + + + + + Save + + + Sort By Name + + + Sort By Count + + + Sort By Index + + + + + - @if (context.Item is IItemFreeSpaceIndex freeSpaceIndexItem) - { - + - } + Value="@GetItem(context)" + ValueChanged="@(newItem => SetItem(context, newItem))" + SearchFunc="@((string searchString, CancellationToken _) => SearchItemNames(pouch, searchString))" + ToStringFunc="@(item => { return ItemList[context.Item.Index]; })"> + + + @if (item.Value != 0) + { + + + + } + + @item.Text + + + + + @if (context.Item.Index != 0) + { + var itemText = ItemList[context.Item.Index]; + + + + } + - - } - @if (HasFavorite) - { - + + - @if (context.Item is IItemFavorite favoriteItem) - { - - } + - - } - @if (HasNew) - { - + + @if (HasFreeSpace) + { + + + @if (context.Item is IItemFreeSpace freeSpaceItem) + { + + } + + + } + @if (HasFreeSpaceIndex) + { + + + @if (context.Item is IItemFreeSpaceIndex freeSpaceIndexItem) + { + + } + + + } + @if (HasFavorite) + { + + + @if (context.Item is IItemFavorite favoriteItem) + { + + } + + + } + @if (HasNew) + { + + + @if (context.Item is IItemNewFlag newFlagItem) + { + + } + + + } + - @if (context.Item is IItemNewFlag newFlagItem) - { - - } + - } - - - - - - - - + + + + } diff --git a/Pkmds.Web/Components/MainTabPages/BagTab.razor.cs b/Pkmds.Web/Components/MainTabPages/BagTab.razor.cs index e59582d0..b9639c38 100644 --- a/Pkmds.Web/Components/MainTabPages/BagTab.razor.cs +++ b/Pkmds.Web/Components/MainTabPages/BagTab.razor.cs @@ -5,6 +5,8 @@ public partial class BagTab [Parameter, EditorRequired] public IReadOnlyList? Inventory { get; set; } + private MudTabs? PouchTabs { get; set; } + private string[] ItemList { get; set; } = []; private bool HasFreeSpace { get; set; } diff --git a/Pkmds.Web/SpriteHelper.cs b/Pkmds.Web/SpriteHelper.cs index 5680dcc2..d682d18a 100644 --- a/Pkmds.Web/SpriteHelper.cs +++ b/Pkmds.Web/SpriteHelper.cs @@ -63,6 +63,28 @@ public static string GetTypeSquareSpriteFileName(int type) => public static string GetTypeWideSpriteFileName(byte type) => $"{SpritesRoot}t/w/type_wide_{type:00}.png"; + public static string GetBagPouchSpriteFileName(InventoryType type) => + $"{SpritesRoot}bag/bag_{GetBagPouchSpriteName(type)}.png"; + + private static string GetBagPouchSpriteName(InventoryType type) => type switch + { + InventoryType.Items => "items", + InventoryType.KeyItems => "key", + InventoryType.TMHMs => "tech", + InventoryType.Medicine => "medicine", + InventoryType.Berries => "berries", + InventoryType.Balls => "balls", + InventoryType.BattleItems => "battle", + InventoryType.MailItems => "mail", + InventoryType.PCItems => "pcitems", + InventoryType.FreeSpace => "free", + InventoryType.ZCrystals => "z", + InventoryType.Candy => "candy", + InventoryType.Treasure => "treasure", + InventoryType.Ingredients => "ingredient", + _ => throw new ArgumentOutOfRangeException(nameof(type), type, null), + }; + // TODO: Implement public static string GetMoveCategorySpriteFileName(int categoryId) => string.Empty; diff --git a/Pkmds.Web/wwwroot/css/app.css b/Pkmds.Web/wwwroot/css/app.css index 290b6343..1327c862 100644 --- a/Pkmds.Web/wwwroot/css/app.css +++ b/Pkmds.Web/wwwroot/css/app.css @@ -5,9 +5,7 @@ pkm-sprite { } item-sprite { - width: 20px; - height: 20px; - align-self: center; + object-fit: contain; } .slot-fill :hover { diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_Balls.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_Balls.png new file mode 100644 index 0000000000000000000000000000000000000000..32e9e18f3c70d9f4d72b9a65bc35672a297de4aa GIT binary patch literal 1040 zcmeH`&ui3B5XWD(-L|gX61phs@0?^o509!4@X*-qvRSIjW7|W#lpsZOlE9X-hf*Gj z@G1yFrPd;n!wQkY5@D5~mxr{F7FOfQpgrW^k0>4@s5}pfFaLmlK|e4ve80?LW?+_4 zy_(M*%mD!MHMQK}wV1|GAJ1Ti=hFj3H??Jt7Zf-l5JJDn|BEFjrufD zK82T4acQbr1|)k#&PT%-8 zdAxf&^JM(<=tgGc%_F?|+&gu2OJBa;>o&t@W75`=w=mG1y_Y*VuHmnDP}VRm3g%TA7+Il<=uwMxC*nb5EO16u{qK>z>% literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_Battle.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_Battle.png new file mode 100644 index 0000000000000000000000000000000000000000..872ae6ae1e12a5c69f5f2ddef1093306ec7d3ab4 GIT binary patch literal 1040 zcmeHG&r1|h9Dmblu5L@_f-I#n3DF+HUOx^KUM87s-%>5ZrZ9ojBq4L~Fr<=L)MQ4l zNPE#`C=Y{m7%#frhPn(E@hGez0;iyQmtqo$?V_(v&0PB%{J`h?;qy6tzaRMCQ7ffv z%kCBcK(>sOYOMK$=~O&d7gpZHB8*l`ePHoj$4>xKKt0u8jKkKv2qBatX+lbyP&W** zRrP_%MU6tuheilZrsqRsxX5JCQY8oJM3Q|OVyjSd3jsw|U9}h!Pli1?Fj#8W>}n*tSg^ zLR>EacIzbIt{=FRhYsO{MA(mNArGu5@ECK$F!W=`A{H>l0?sJsA!l{Yd3@;>wi@`a zf!8~?x5be#R;`=?@{e#hF+(Ry3c!t>C^pR|Iy(wLCYMkEkLHr6Y8oq_E;fA@8ghp- z3(sDBjiak&<#>PL{rLU2yDXSiHrt0s{BzZp8{cNP2~U=Le?9)5Vh6z5;L0a5wLV?T z&F{N3aCz^;x$axgoB41J|7q*`a`D2s{fO4^-EcWSB{{WG>+v@-T literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_Berries.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_Berries.png new file mode 100644 index 0000000000000000000000000000000000000000..aaddcddaf4a59dbe3917b266c2bc805e5fd690a1 GIT binary patch literal 1042 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAF%}28J29*~C-ahlftew|C&U#f zC?KI=U|?WjVPR0!~uhh8wnCO0sj9MEEbxddW?E6mYDyL3=5bV zX3k}Dh*0*}P&J()%F(j=W^drA{C$Y)Qs^5?rz*X8Z#r(qR^{p@19j53%mGH4>1-gX6)78&qol`;+ E073J;4gdfE literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_Candy.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_Candy.png new file mode 100644 index 0000000000000000000000000000000000000000..ec7a52b351c6d5a7d1108d35b5670f300bebde16 GIT binary patch literal 391 zcmV;20eJq2P)N2bZe?^J zG%heMIczh2P5=M_1xZ9fR7gwB)*-IKKoo`HE~VQ*vJE7ng7vTm1QsNc1Vkl{kYJGD znxF>GZO-H}+<_U=Ng(-CXv_Jidar7lM!MhDZpgS>WSj|LT^O?e2I{)@S=UiEphvr| zm9D3G6iEg+>Mk=GEKmfn&SwG4L!|)bp;7>QffQhkqilc?V%9zAXCO8C lqi0#LT=By}Z;C1rt33 zJFW)FE6zt=Pj__Clexz9Id+Qpf$f@7D_+sSMMpy3Hs}tkO z5U+#tjNh%8`6YA52L2d37aouG>y%~q7DugJwENW4O^bG~=yXxK5f@qfQ^4@S>o@5~ z9v5zj(mnoc<*c*IfRYQRnNON7v0=%1#fcs}n3gPRi@N6#H*fag_!p^`+Yaov%-T9D z`SO0KvIKQ=1G7(TH*>_^mfhZ1Bwl_c;I#C~)5SS|UG#t7&OGzl>Q9}0*U?4E&-LCx zwK$aZ>b|JIzr;bIAx5v=ZSlh!PG6zkeJSnm#+P~XW#bDbywg$_#;w=BQG86+^ipnn zIy1+7y>Fh!Z@kd(xg4_L`J0{U?>{6l-2DAbc6Gd%;G7>T63)+D^7d&c_(Zv z2jebz?6Gz>0pm`ZmE&Po%&8VVwQpXi?g+7jeKO!QkoY=d#Wzp$Pz> C5E%#n literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_Ingredient.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_Ingredient.png new file mode 100644 index 0000000000000000000000000000000000000000..caba05985c1fa09abe976675581a1fb109d867bd GIT binary patch literal 957 zcmV;u148_XP)&a_?n|V7>y|5eZLTsL-=ohQJ>aGawmcf$gIPmJuZap-MUY5XYDf?O$~8 z?Nu^=oGhGWT#2>0`V-;N1p!9KJv6?}hik(C|Ng~WaNpH&#UFMQoDLXvBC-QisNVHS9B`aQ`sDx630CWe3HB>sZmD zc}@-ML@o?{8JHNaIwASgk%yo@3tdwtxW5S)*y2f>m?)V>oOicEK92On*q5}hjOF0f zM9q<8*_MUz>}v=Y--R=1f^%7f`?~7m?3n0Ca47L?5y_$+gOxe|f|;aY zT$h1RwHluGGB~FNxW0-M91l{Deo~G-w4xLLSaLksYZNPwV&UI#3 zTr_vk8q&itQ_dDpsH9_|6s@lf7&YdygAy=eE`V*~F*s95g}4kogy1biuT;bgNlY4Q z?S?Z1K^1tP8VxobBj9YhpPtoVm!41?n^hpTFm`sEDatoKGkR8S#D3H-Qbx8;)v<2M@mlnZF6*KTS z;kMerebzZ&LVE&O5uGnf)qrQ=ysvD}z0O8)0(hMtB>$cEGX5L`vD zHfp4s&N2#9p#;axrPR f)oM+VBl%00000NkvXXu0mjf%rB_! literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_Items.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_Items.png new file mode 100644 index 0000000000000000000000000000000000000000..e1109fa21d583f61c4c7501d7d1871ebfdc7ff06 GIT binary patch literal 1027 zcmeHGL2J}N6rOaucH6q8;AJgaNx?%(L2?lSLQU%~n?+s6ZNW$t)1tCa#DNyfNv3*m zRD>LZdRR(@h){A6iJqn>V`1HRaukH1pyNd&D2xi#+5gcG-uJ!tT^{d)cN;cp#i6kw z06?*BRhm*uy(;7+zkS@N)aq0zP+&uC#}Qd1{b3j-~QT|yw{4iN;Z1gQ~p zQvj%=3)jR34nQp#{3JdYEa#8H;Evn))KgfSMUNs^{X%2}3j&PA3A!G*|#5c2R{ z>?W{wr!*~7P*$6bIbeQfmwUs~@md9t{J15DL1dj>0bqDvuM}|qVehF1R_iCL1Mii* zGC9_nG&|C|TCdE^Yu$U@tz!Sg-eafFnES1{>Y;gW=kCm!)7Mx0_w4%ix&lX(FCR9} z{mEaN3J#w7S=845emWoBdim(rj=PkbUOvF;56aDWVqxm(tHs|>z>kgZ{qIKhTpYjf k?Z{UAu{*eMjb1rA43#&}mk+$!7YqAEMyWcWRINZa;Df6;vhj*n+zoAVj)X3 zFezfTP*}ub8(}mU)+StGF&4rqo>_&&#X{E||e;te>8?-^!-UHpfT7>ifa(0CWMfJ~<{uwW#U3UXef=G?8gz z3?W7kA!OS!Y{zkQu(%yR^VLYRaQ-}h*X(pCpS=6a0# zk?>+cSu8v+qm&aSTrPZ`F)CO~@Gy>8k|d0!EESQIGZCj;Fp*_xmSsW+>Dzz&0}had zZ>l^)nQJyK0l1x9>yWDx<5fVq4;zx?urW0Yz`%h{D&W!M&QtZy)h>+nepb4b;hy~U z>z(Hcd28D(R1|1C=8&*iH zxS(<2L_oufgpMB_0SX-j3J(|<4kQ@-sBmboc(Ed&VMfG<6B!G3%ur}J;IQI_$BP{r z9UUDzcI=pN;m3*t7dG7Z@MFS+7aa#~+_-V!!HXY1egNGt3PwX^r3QvgnmsnPjEJ`dtZ=)h1lz7qGkNct&9*Tgc~_ a24Ta?2CI{nShWBxWAJqKb6Mw<&;$Uf2b6XI literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_Medicine.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_Medicine.png new file mode 100644 index 0000000000000000000000000000000000000000..81fb4e00599ec58d7ceff7fe2375debb3c086db6 GIT binary patch literal 999 zcmeH`zl+pR5XUFGtaq*~u6tJmQ3%LMnv-;B*c>TSJ}ZOx;}wEI4oM}?E|pBD$-g0fV7_0zQw+?&JaJ}|LH}YO00vWH z&l^|UTJARb?d_)zjVb%{$p)N!zVr*A3(nSJ+%$)(W*CNPnuce&-jF(45C9>>b=@Ec zh7JcG4VN2UN!610mBAb{Av7|*%(A#;giOy;T@((JB;zzhmkUo+p`(Sq76w)Yz^PGE zUHBRXQ28bX7Bgk)u-L5&FJX}xr;x{5nnRXC61izk8MhesQ%QIZGS@NF3q~Y!WbShT zr2x*&QbNs5SwUI4C`gSK)|QkMB@M$cj^iZB(!3=TNm8*K<47Qrm~v6%45LVfyeL^E zV#EkBD_Y7H6rz#>vBE|QL?Ivby>DP0vz3j?OFw%j>&DKU7Zp$=dM3>F5Dv_gC$QuSNvMot5f2 d>u@!darJM;BsJWR(k`(%S2{RK*q?EwG) literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_PCItems.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_PCItems.png new file mode 100644 index 0000000000000000000000000000000000000000..5880b228136604237566725783633d3f0904bdbd GIT binary patch literal 1345 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaADI|LY`7$t6sWLD$G&3;#{12pG zGBA`HFfhDIU|_JC!N4G%KPmpG8v_F~Lx4|+D^QPxg+;;yi;e(=6#)$=G8S}nbnMu% z<3-1T8#iwJ`0)d%U=)moz;F!#iC0n53=E76B|(0{|3@}p2>#9vEH@Z93p^r=85p>Q zK$!8;-MT+OL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33JpwCXH-aImh(KPHELOP`=`qP6IM zzJmwYd3IU72@mOb+J55(>v36L8_vRDlP>0J)s=yN8UNKw++okZw*crY22WQ%mvv4F FO#lF^d2s*$ literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_Treasure.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_Treasure.png new file mode 100644 index 0000000000000000000000000000000000000000..6825648ae1b276ff9e60cae8fbe3d893e76626a0 GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6;>1s;*b z3=G_YAk0{w5<>&kwMk(G&GP5B<9IZ#NV#5JNMI6tkVJh3R1p&&6cuS72| zwM4;0&p^*I$GFZ9sOGY#i(`m~ck+d6*VrEaw}1UFSorXnrJWBAc(yUjW-3ota4M%Gx0Z~_hommu1JANjd^WP)i0SRo+{WxlK0iHjUeF;xcPoBc2R0XqLHXi(Dn+u`}R)mQ4OyoU! z3}{~F!9$`G|6erpFgzh3;MVUG^GLz=#u=qsOf$L@XS@=7a403ZVBh5y6`xJ4PZDy{ y61O(Ys*s3aST$p#X8`lzXwfYjSd!M6F*9^+5&0i0eP=7sdkmhgelF{r5}E+r27y`t literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/Bag_Z.png b/Pkmds.Web/wwwroot/sprites/bag/Bag_Z.png new file mode 100644 index 0000000000000000000000000000000000000000..17becc3e5db74658edb07832443d52ddb7dd1f83 GIT binary patch literal 786 zcmV+t1MU2YP)aO?)sZt@>6qF*aU+a)}R(rinfn6EBUXjg}4r^*?-` zb8wK$&=RGICs{Ad-rqWV9}L==ix)6Ve#bVCUcoRp&~T0aQ!pFL>;A6CK!RISFA?$H z#%Vr^fFp(}-yI^!>DG3$uV5znoCIHl-6((?b1-;{8N@1++04TEvN?eikkX zL6l3ckXu^^&-uZdM7WPllA0{J#0%XFimrg(Y|@#6!{lT^;qWvzl&`3(yQtTH;&WBS z)zmdO#w8*b5t5R~M4#!tO^@JaWCebEgaz|D1-$;S4n}Jz1{eRGtmUZBNJ?u>G0G3f=j^# z_K3;!EVeecp{fnt;BKgBE_j(!~p2te1fl9eaxzs?Z*hD3( zX@^d@wfP;1>lxPTcO+YRln%k!;~CgS?cm6Y1R;i{#dj#K)?49}n(`;ST2-+2{tetN zne_2wMH0!F=@f{EL(mY+K{(8QQY^wkZezFka5=ezLVgFU1(iV`Tv2M+{!zukauzm= z8KB}ouaK44SU9bvecf4< z9)SjJ;7un<2v4T5!D{g!eIti_u1NmAr<(E+fz){WhEw_qD9vet;6|P7rZiNe-%7gK zQ=q}7F}j(E2HTCUJ#XF4Kmy93f!z!&_*)KMK#$&sVZg$*qgU`RG*b&{r~^~ literal 0 HcmV?d00001 diff --git a/Pkmds.Web/wwwroot/sprites/bag/bag_tech.png b/Pkmds.Web/wwwroot/sprites/bag/bag_tech.png new file mode 100644 index 0000000000000000000000000000000000000000..20002d5edbbc6a0ebebbb995aa6098b57ca8782f GIT binary patch literal 1044 zcmeHG&ubGw6rMDe)Yf3Y9zyU(4i-|Bx`N=M&~8FvHdN!1R!9%hrJ&{@vXBaU5FFae z^iWs?Wf2c6BCHk5p2~W#OtIjiXs12sB9zWS%P0khUOFhElfOeh_}=4t?;YOz;LREJ zYPvVq3jj#h^m0SyY==Eb89zOH|5m0%yHPEH#Se$S0gwd7#qo+PX0mxjQB+km3`5sV z)3hZr1_qW;npkPYW;V8MN4KZ~4b{^vCu=&YhBXDjLf{ujWVoK``F0Q(km(+4`piVa z3RsJIHuI5@M^>H!fK7#3K-d~onQuV1$)lDB{e0-=9jrjC`AnxUOC6Pk1?DwbU?YV5 zumcog!~%pFB+MbgWf)QJGT}v$k4Z>~7x94bfJZ(P!f}`!#V#jd9LJcGh|-91%mty0 za7wtKTre(4g%Hw&|M)i@*nCpR$;%VdjrthSw&Uv^F*RB(1Jr#)mtw!APqYE(JJewU zJbcu7s?>DtQYG~{(cN{d@8s*tvIk(TTpTZ~&6AaM@^sHWZTZgN>MeL~=})8UMy5LR zbZ6~+*Jx(_Xz9$}(64)U!Gi=?>K|ynfVtb?`NEHl{)Odt2WfhJWb2C#U)|r^&ON@i zGWc<7@(mxNJ7_+&+P;waJvP7&oSGXhem}lZ+(o+#OznO N3#e7<<;9XY^A`kC_(A{x literal 0 HcmV?d00001