From ca32d8e0bf47aa41d1ece6e9951293a31f9b6a0c Mon Sep 17 00:00:00 2001 From: Hubert Seiwert Date: Tue, 29 Mar 2016 17:35:14 +1100 Subject: [PATCH 1/2] Alpha support for dumping keys --- main.m | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 89 insertions(+), 4 deletions(-) diff --git a/main.m b/main.m index aa21c0c..211ec30 100644 --- a/main.m +++ b/main.m @@ -45,7 +45,7 @@ void printUsage() { fprintf(stdout, "\n\e[4;30mUsage:\e[0;31m ./keychaineditor commands \ \n\e[4;30mCommands can be:\e[0;31m\ \n\t--help: Prints the usage.\ - \n\t--action: Can be either min-dump, dump, edit, delete.\ + \n\t--action: Can be either min-dump, dump, dump-keys, edit, delete.\ \n\t--find: uses 'CONTAINS' to find strings from the dump.\ \n\t--account: Account name for the keychain item you want to edit/delete.\ \n\t--service: Service name for the keychain item you want to edit/delete.\ @@ -371,8 +371,33 @@ void prepareMinimumOutput(NSArray *results) { } } +void prepareKeysOutput(NSArray *results, NSString *find) { + + //NSLog(@"%@", results); + NSDictionary *eachItemFromResults = [[NSDictionary alloc] init]; + NSString *agroup = [[NSString alloc] init]; + NSString *atag = [[NSString alloc] init]; + NSString *data = [[NSString alloc] init]; + + fprintf(stdout, "Access Group | Application Tag | Data\n"); + fprintf(stdout, "%s | %s | %s\n", + [[@"" stringByPaddingToLength:50 withString:@"-" startingAtIndex:0] UTF8String], \ + [[@"" stringByPaddingToLength:55 withString:@"-" startingAtIndex:0] UTF8String], \ + [[@"" stringByPaddingToLength:100 withString:@"-" startingAtIndex:0] UTF8String] \ + ); + + for (eachItemFromResults in results) { + agroup = determineTypeAndReturnNSString([eachItemFromResults objectForKey:(__bridge id)kSecAttrAccessGroup]); + if ( (find == nil) || [agroup containsString:find]) { + atag = determineTypeAndReturnNSString([eachItemFromResults objectForKey:(__bridge id)kSecAttrApplicationTag]); + data = determineTypeAndReturnNSString([eachItemFromResults objectForKey:(__bridge id)kSecValueData]); + fprintf(stdout, "%*.*s %*.*s %*.*s\n", -50, 50, [agroup UTF8String], -55, 55, [atag UTF8String], -100, 100, [data UTF8String]); + } + } +} + /* - Function that dumps all the keychain items. + Function that dumps all the genp keychain items TODO: Do I want to get rid of the standard apple entries. */ @@ -448,6 +473,60 @@ OSStatus dumpKeychain(NSString *action, NSString *find) { } +OSStatus dumpKeys(NSString *action, NSString *find) { + + NSMutableDictionary* query = [[NSMutableDictionary alloc] init]; + NSMutableArray* finalResult = [[NSMutableArray alloc] init]; + + NSString *eachConstant = [[NSString alloc] init]; + OSStatus status = 0; + + //NSArray *secClasses = @[(__bridge NSString *)kSecClassGenericPassword, (__bridge NSString *)kSecClassKey]; + + NSArray *constants = @[(__bridge NSString *)kSecAttrAccessibleAfterFirstUnlock, + (__bridge NSString *)kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly, + (__bridge NSString *)kSecAttrAccessibleAlways, + (__bridge NSString *)kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, + (__bridge NSString *)kSecAttrAccessibleAlwaysThisDeviceOnly, + (__bridge NSString *)kSecAttrAccessibleWhenUnlocked, + (__bridge NSString *)kSecAttrAccessibleWhenUnlockedThisDeviceOnly]; + + /* + Prepare a query to dump all the items. + Class = Generic Password. + kSecMatchLimit = kSecMatchLimitAll, will actually dump all the items. + kSecReturnAttributes = True, will return the Attributes associated with the item. + kSecReturnData = True, will return the data associated with the item. + + TODO: I am just dealing with genp class of items, if a requirment occurs + to other items like inetp, certs, I will extend it. + */ + + for (eachConstant in constants) { + + [query setObject:(__bridge id)kSecClassKey forKey:(__bridge id)kSecClass]; + [query setObject:eachConstant forKey:(__bridge id)(kSecAttrAccessible)]; + [query setObject:(__bridge id)kSecMatchLimitAll forKey:(__bridge id)kSecMatchLimit]; + [query setObject:(id)kCFBooleanTrue forKey:(__bridge id)kSecReturnAttributes]; + [query setObject:(id)kCFBooleanTrue forKey:(__bridge id)kSecReturnData]; + + /* + On success, a dictionary of all the items are returned. + */ + CFTypeRef results = nil; + + status = SecItemCopyMatching((__bridge CFDictionaryRef)query, &results); + + if (status == errSecSuccess) { + + [finalResult addObjectsFromArray: (__bridge NSArray *)results]; + } + } + + prepareKeysOutput(finalResult, find); + return status; +} + /* Function that queries an item in keychain and updates the item value. Account and service are used to uniquely identify an item. @@ -629,7 +708,7 @@ int main(int argc, char *argv[]) { '--action' can only be min-dump, dump, edit or delete. */ - if (![@[@"min-dump", @"dump", @"edit", @"delete"] containsObject:action]) { + if (![@[@"min-dump", @"dump-keys", @"dump", @"edit", @"delete"] containsObject:action]) { fprintf(stderr, "\e[0;31mInvalid action passed. Please use --help to get usage information.\n\e[0;30m"); return EXIT_FAILURE; } @@ -639,7 +718,13 @@ int main(int argc, char *argv[]) { --find is used to narrow down the keychain dump. */ - if ([action isEqualToString:@"dump"] || [action isEqualToString:@"min-dump"]) { + if ([action isEqualToString:@"dump-keys"]) { + if (errSecSuccess != dumpKeys(action, find)) { + return EXIT_FAILURE; + } + } + + else if ([action isEqualToString:@"dump"] || [action isEqualToString:@"min-dump"]) { if (errSecSuccess != dumpKeychain(action, find)) { return EXIT_FAILURE; From 1bf46093b5f323319a53a59a382bc1fb2f8313de Mon Sep 17 00:00:00 2001 From: Hubert Seiwert Date: Tue, 29 Mar 2016 17:35:25 +1100 Subject: [PATCH 2/2] Compiled binary with alpha support for --action dump-keys --- keychaineditor | Bin 200032 -> 200256 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/keychaineditor b/keychaineditor index 4947b129a493c9e318c5bd6ea9d237b712fd660f..e66c52340e0f99aae022b234e48f0b3f241c7a63 100755 GIT binary patch delta 40593 zcmd4433L?I_Ah*@x-$=S$UqW8=s>_Q2mzTyl+Hj1b2F$B5fa9LT!;(`h*l7;Mg|Lj-tJ~7I{EIgF=Y~a2ax%sOCC2;#8Iy|8M%#b|?(Fr$U`NB?4+HWyGxp<9#_}gK zW^&xIML2%6Mf)!Q12!hcmcQrt$2QP6r<$>H3u8G2j)xKk`po%`H*CXE zM~@*fYOAlLh=7gYd4sp{C}Xmk@RiixXS-l+ceG1>z^4$@J}4AAGLjz%$n=odIZ&Bj zk@~$~OKluQ$yOhmC--7=JT;`9V{?M9!!jhqCl%aSD5pB^9rA$BTu^bK=0fKIpFB{j zLFJK!`pP#_v}ASM7?LE#I{K#Ae9|Fe5_3*+JfG5eY#%=&oBw6{NvsG{jnT1iv<(3g zs|8(jkHiM_VvJ1e!sHq7sRe<~0i3tCS6dHjCyC{+?G@~Z8yahgF8bPU+}(%TzA`iL zo%Q}olxjOB#mV_AcfB}tozyuFzB6Il1r5u>azWFiwG%XZ456B6jd$AK4(*)U+OtBk zIxCpPR#D_@u8=HSE;44TVC?l$7QeP~X9%kp9PW6!px;ARB+rWV7N}}ssKw`2s?0;s zub1{??9u?nB8#CH-$L(FpyN_ObXYD#Lt2O~20Ef$(aI!<>@7r}wlX(*Zw>GF1^84n zv>F56gfh%eWb9baiZrsZ+bU=f9(IcAjmpD;O?H2`VV7n2nWp=OoCZhwZpbhx0u;^6Syq^RpsLVzZ?$*Un(`9jg?d&n8|+7XoLEgYD6(+`f2Ov-i(!>6G=_BayM2Kev`6IhH%}!}D+-oqj8Vplmm}fAw zwCJ$FVCQYH8wk5e2D>_I^FZGwJ4Hn5wl_uE9fq+6!_pRpYYZKpGuTDL?n-de2#Z_T zDF(YDVW-g4V8344Z7?isVfd86FyGK2^6HY2_Q2H6hAvIpct#scoG&Mp~MPCljwcvK)O zF!eBEj0#Y0Wfb$OBnNe2aF))e=`Y~hgU~VQq2uLp^J%{Xxs&9OQ9yr$IbQiFa`+O# zB6r08m0Y4y~u29D$Qu#XeAaNiMa=+(aIyD!tfF7Y2J4N7LrajAB``%pzz)UpEg(< ztl3EPAr-z_PW{l#tg?8H*M?VgZ*!-92x5b9{5Bv>nT2htOhX6cn5M)NI@G~ykki-+ zdIPQwbNush=iX)!FR45SQ8-(JN@=gy)zA>>4_C{;qorH|7{%IDrnYsAE9~r2FhYMa^ zvkkfB;!wy#n)FQRpK zfLNT=fgU{b<82j|IUW_V6(ObDDl+YxDsK<-aJ;>9Y?})a+(ru*!;7`7sVt4~aF{+B zrCbeVm#1Tr%u?>fo51z`HNn27@;c}xfv^>enA@(&&mWK(>2k77=ed)XzNT{ZhtPG} zDy-H`mA+2on8jK4GjwPJohRKwXW7EL4T{D%2Zo)T+xdcTz@QigL;;)PUoWLa_po9U zWIM}>p-UT|pdaAZfD_Wu2|9>HXQX=wJnHBOAo+akZi7Z21Z}rrci5a|X&AI^;A6Za zZx~ZYW-BrtN?PUvQb!*FP9Nn_L5``6#nFhMZ?rz2^1XxIYK6o`WQke;qT+9Z{dlDv23=x~> zb{vMAj*VosVMAeBVCEZ-P|@vU!e$bnK96++JSw~kVT(1R(DbPs4IQ#2NMVlzJU_yt z!UH;(N{82;ASDqzieU)gBJ@k^Mg5W;^-XCd2)zdY)3P^J=AcjNk7Dpk7t;wF z(x>U{4n6WgkcQtCaL4B!6%+?e=KwyPu@@=e7zindSU__4mzYZ{==cF1jxY8^3=RfP zjtG+DAizOzqOXS^Xz~#VNIt$7K72t}_1AnTcS5)ig5={C;6`5zgdvkrn(gpM1x1cu zQCcFh*8d*JF(H%;G$B`DL;YL_q<)eaHa*5bmEIihEW03l+ijaFD}Ym_#3k~wWLxF< z;L}cl6NF##cQVBB+o#dK-$EP(H^)L8o_jlt`w}F1rqLb%ZnmQr)Pq7F9x2m~q+2dd zvaTtgM71Owd<&Msx~7u6dLR-BCx;!drAR*xaV*;#sd$HQwagq*va+!Xk74IzW2f2a zkV&O$ZRJMl-pRYC1bGAW0CZu7Tj~ab)F$I~@YkW)se6Q|SMZm?`!Ljua5#?=42NN* zlpN7&tpud8wZ*w1E0_mmF$ARr;Ec#_|l{Vzl#ZV3*$1>0Iz0G;~V+ z&$zerE3ynV@tzJhRQ79 zfVVsQfcF#7GagFva46Z{!iKJ6!=M+7YsyU}j5|E-1&IBoImTXlh#UzS@dkoEO0<~L z4K4J0LtbRi?*Y0yI>-~e%oh5cAEaeaL{fDs3S+X?8zX4CG?sF>274U5mKOfh5a z5Fp*{bc60!A)sk{vAoLDv2?44TRbbTOfiu63G;AV{w%`JybAuZaT(n1;b`@F#65R| z`I1S{X#j4f01KOztQNeRp&pJgpSK%*Rp`0_ub~x%lCLJ+O7KD{j(El~(`lGn zE>dyw{OlcLQKJ>~&i+^w)w%_IZG`{@rdjJgPBriD5%Eg@adsQvf-Dd5w3v zl*74|w6j-%PX&oK#dE?g7Ix1IKCS&T!H$&u(P8%1d}+xYO=m}>_VQrIvi)6^Y>}9> zB`3ks58>$3w+$ydqECEet{_u7XwV^pIp3-r4_%852O9A0z-h>%0V(p4fW#jTNGCzY zCN|5dG2n}wQnZu)J|vZ7bCzXB^EmZnq{JEsWgCV<4*LV|1AK=_z||(KC2PvD?vUpj zk~0qUNa!yYJbMd$YcQ(C5`#e$4D2u%DR|Zv1|g8A8uTro=>!@jcy76QK;Dpt8}!X& z5B*i6Fi@MVVv&LxZ%j&+L4XlaQU*Yok`X(kVi1gO2EjQcD6SDZ4vA+mg|>=)AHxPq z<5&24sju_((%wjL+HJn^&a$f3e5YLotVY{GKC+t{_uZ53efZw3SlD^$JtMPJj5KM+Z%odCWqa1{d zMER+uKLRO+oHpU7fV3BO15$o{0yx38rrgeoYKXta*LL%DG#l)9Kt`K+qXh?j+<#b| zWlpeYyi^{xqC6z~^9i>^@or1I5sf`=<=bjf{H99nu#bDrk%c%qWN$)xlRd5#@s3JL zcgEIL#>cOzq)cQ^XT>CR9gkxM-KR>-UWQwGUsN)sav3_O12NT@6~Jl2XtJIIUf15t z&%PKtok3|47K2Z9VhQQmoMo+U@jA1JXgjW$u$>2-#yuCX59}Bl2S3cW2>xikXfDau z)YjPRbl*4z!qsC$XV`;unx`#Dh3zpop$;bj+OhJ~NzFgJ(?`LhM5L?fSm5M*3?LoU zwZk>+hk+*hk$@x9VV~|SD;M@d6)=hImqguQFy z1-2GA&Du>sn*JIXE_cp#9O=QNi2LLjM!Uiwyc7fkw)ejr8V$3=#u~j{}Vq)=v4>Ef>A8oDTnk7TFT# zh&~wBl?l0)+E%2m)vNO6J={j;bqDYKJ&wr-qdO#vF0Y7cp^tY3x~KiVD#)?vZi3W(IC zHTTKga`7gfTO3M}Z+ki>ABqgC@`MzVu9Yd|O9y^Z+jkIPr+~wK~hXfJcuKh!-pLV!?|u=y^b|J$T()@FIg)e^hW> zt1N5EDTm2Py@g+~soZ+tkv!eW(ZiywNQ^A0osu@@I{rE?#MoY4>Kl>(%OvG_yF{FLpHt-dI`~XUeeQjfMXM2Cn~6# zTP|*a!Xksg+n_0JQw1-o$w1S0K%Q*Se;qWXX|ahr-X9Ez6)NlqXth=BxDOC}lln5n z<2C}>s%1*N;;0-D?^T)GsE}Jp3fkQiQj4yVeIQ>VX~oPHx8cELi8R;qZz_WJQnH+7Gk^?2*`-qe)ej4t$e6}8z6m%DB;1@X9B78f z%t^@1@vx!OB<-YUup@4+LnpbmimD@kMYf8Z4uBYWac@A3yeJXShU~-^p{&fpsoKA2 z%SDBzi7s3;9r2pOH??C9N?(Gpy4t>-@~%z{sfcyh=}-vy7fc(wTy;IZI@8 z#F{7g+!j2#<#E0TJ*Q3Khw?(F7Fo-K2W4ApjFhgJekcnOz-gUngNFjQST|{#E(Gc9 zix~?9k4gk>M55`|%LlwDp=T9(X7FNdq^CH`s6LRg8OnEC@!Fs}AYMIqR2l}LG*B@l z**W56)0Hz#D-GJs7=pY)xA&M)TB^&?q37F_q%=#6Jzn;exXRLUYgbtXYe}PAWib2? z49P%W-@UlP;uFqG=ukUl{RFvpIvsp?v7?luieN@yC6JN7@5u+~6Mz)(aX?D@Tya9x z_7WZ$gwo{|bwM&dH#qKi^KeIHFHF#78C8$n!1WB@N&G_oQ1T<-Idso!7n$wBS6|=b z+aO;h?#+p}g>2KEWrG@T6_9JzT%1I?-CWW|l41_|iGx0frE#oB2zzA^$J>&qB|P`67q~s_;QBO@f`D)r%XRcl0{aM)?=SIX!WT zLTXZ4oeMTsXaxjoorY@3$BSK$^knhtDm}Drw_Kb8JG#bBCHFQyXS7^{L3jVVL7QJ% zwnstJFdqh_EN1z||)`SC>RYLPGHo41oqE8u?1s zHDUrGp@krb^QAVi`2kG}64$87ph07<2xON})?!X7709ReDx#2%@@8y?5~;a0L?VGsa)rmt-v?3?8tvKS!$Nc=kNBvcx_dT=Q%h)+nk zC{1SVqw_5nr_&;1fobySD*QccXaP@BpJbEnRJ2(h*+TIsDIjuM#V>(3un-E)H_P87 zf`U^k1&PZK1&aXBo0|eGCVK>zf#CLwBwa3{Lkvm}uDAyUXZSe%eHc-6F2LzzgaBxn zi!{ZiQEVdTSaRBG8-X{l(28^fmnS-k7ai$aX07m>2be`VuqD4s$gg6Uo|lB;D}bq_ zn9dc`TLeJsyIklhfKjAd$aRzdi|$iGcM%}fNq2j6i~!=G`>=6+$ni{}JR6WMEk}j2 z|9^4(xX_&pNN3LtLf7pm`#M;$3+Z@3I)8Wz>FIl$?+RMvA<&_787io+IekrKcDSj+ zzi>_EKI}$XGzsC-laO}MqlMKL9aS5z?OYn^+q7e+S@@>FhEOWo1vc%7F%1ou=E9jZ zm#!6OsJG9JEIP+IVMlhew~R(AEvN;=afBdTEqx4IbdVT$LLQJp>hx z@}}1-=)gBlaq-TIpg`PYuY!`6%upmHe=$lrt=1s`8aX++AcD~IL^jMuh=pI5Xf|kO z2I5nWIEf^7dj*#~hQshqI5H!8`e=j{=zv30`~mn{zQ8eF zs`8~vJUu`4hTJdSSyqWD7S1E7E^meYg9w@eNEMw;Z!r@zle8pxDr`Oj94NHZWFfJ`O=oxl(_Px10n#!|1fzqKpHiOHY#Hx#JxbqTG8-ACIatuUT1`RC71IsD`m6$t*MeGh59Y zHcpw`>n|nNe$zMHk6?QVI_UZV<6p~6Emn2J> zl9lC3`6lwj_l5FE#Aj;Ch=^|t=E(H6s%RU7S} zXI*5a8R&7`yxVOgt_YTt=r zah&!}Z(Wj9o6g9St#)YQl4M|VV(r2EmJw!>GM`PhVp(oiCDwk@=rZ!5^mLVsAbb zNwqHoYa>y_Trl_hcamzp7is~GL8f!HMy!`_5^h0M`&0;g{3y1u9s^Zd|P4!lUTEHp`&w2j}b3E#W$DS zVQDgRTk8rButV8<=BHq&T69S@Qy0KMUXr{Fg~yU9yU$9o+4$mKxm9&H=A2+X&Zz`bJ zm^Bs~BrG~*NpeVvl!-#;zHqHD(f1_g#KwyY6+_~myXHQSRMXnlTPryoVZr$)z}LsK zUE4D})*`JRZJbKYIfGz#lc45=fuG;VPu!VQ^N2yR5t5{u_j*N&;n7sA1CIuAZ#DBs zs)-xR2k5(mb+x&-Whd6ilfdz})jSYURO3iJ<^MqKXfOhkYF-A;_GC#nCDy0~0h&GjyKiSjv8*S$2c=9|%VLLRXPQ(8nF$o$i)ec-5SOtA%?Nq^43-Quou~ z^x0{Jmh7H;wJ`DKNmj~YNoUbj&lKxytJ}n~Go>X#?(9~vB||dFX5v+c?aa8&aTWxE ztdlZn``E80)r4uB;dP$b#3j|_tB!qVI@ljVf3n;2s%Nrf?FDQkdS%^blvr^A=?!|q zRZ}VLj(@ID)DuhMM89l_1^wPAp$?+1vba$tEH9~Mo#g0xHX2ho?Cc2q`^MS!$~#wB z+!rU=MhYJFvhY9^3(z-IVr|t^h*WI;!Yg`G$nGPJcw%j_L1(jpzuUlHXW-`<_%A9~ z5^Gl*7|$CN7a8~q4EzZO{!G}9G|-a`dfg5DaT=dCtY=C1^rJnJh7&0n6BRr!~8+xhD}SX35*UEnLjPDHfNz@-p^rA25P?E zm}aZ>Fl$2dSqLXDUQP+^kys;z@j~!?au-a|Xl>bpr`u}&T)31pOcSOj*7jM%ErAKU z_0ykAK8ne=)l@Hnmig55#F{T1*MDv&FVAoU{t_PABO@dQ0&)Dt%zgb%_5rH9iM1!jQ}@qe&NqNx0Y2@(6@?*? z?H=bS{KY0`+Z_-68s2JmJT$eEK*^uyi1@XmjI$YuGMkC!LDbGG`;Hkd+>RT+L|CGl z$x|;mKKZpnT)uW)Nx)U2Ly8F}*9}9l<4Y22f3zC=>2S$$`_~TgRGY(kKD^b7&1AP7 zL(jKUj#x+^Ng+-f`W3Pq$GFdfAQQ9mOSL&Sv36234<$HyAv*=n6A4BY>}d7MlrL_u zR=p4nKQSfNW^0}jYhTdLK1*>OUZUm2kB*A-ZIpMayhADGXm5G@*cEHHtR~v<%(95blM41y8uz=h`&y>WP2{t}AER$un z$~{|W$?coj#cgsd{meu*2qzB;=7+;-@YeGm2sxl%Wm|7h(+lIQ_ zEybLNx?8>Ow{Y27?TGyCf^@>s@Y}OWdKPtIt5L*sCe)_f*K{1Bi-)y}O18bK)du8( zR#)h9?vv>qDIKz++}j7f6WTp#jTVy%ri z3QOZGF2OvjG5v`d9oeVeGv%S3q`OXtKPPd`xh#jZEUwiu!Q8Adw>v&AZ5u7cF!${` z-7HOLyr5}hWjS)oBIUHF96JDPPdSRqqUG49993oML9MTMoGqnXz|}Gmn?Q0OaXeN& zLUKCZEq^eg=-Spy&lL8y9n&tkmt12#q7G3|#g1F$_em~C&x*DY8?SA@>?dI}g8$w% zkIR1MkQgiQ*BsL-9_<$ORJ@kv9ylIK?zz`kT!)f`8o#IZVUyAZPpApdRxJUChRTXw zp`TY3|()wEX&dw=|OIhcIIEr|S zO)9zXUQMi-JRClJ|4II(jxpuY6sh!swaTrDU)r6Y18J^l0;!>6-%N->5FIRg-usG?4*~7cUE8o)*Tp1*N>gZJ2 z&2Q^i8WWAw<#@cZUH@D}&_hpK_qwa`Dc-clJlqF7-}ZRRwBbKUgM^wzn$?;rNrwM? z$vxBYab*`dCB^YerBk_fB?e)XT*+;`Os*(2Q(!n+jKI0Lq_IxqBqrhHGUjGchJ-Us z)fb61ote1 z$!GfFe`VeKQ|)ZQ6{53#~&J%wL@4==Eo(V5@bxH6bf&?(At9i)PQC zXPuBSi};Sx8guk=YjVb-3}4o1A(X^Fpt|S1qp0sc6eY;ibO4+RJcJuEd!ip7pF}4>pzO<$N5q-9W{AbX3Y}Y8i-9p{~ zI@}-+zkx4|8t5p{_%fOH2mcBi){$Z{}kxPfD{;900WO# z8y#E+jc=4S(sx?Wet$L(&;lACoiyr)+!O==1r!Y$kNC7dqK|?07PLZ)AHgt2cm}km z!Qi~Xfb@s`)qKQbLF*1lKCuNo4YY^B-|Qw@(IT7=2JEyya_|gj;}R?fZ46KWjR)6_ z`Y*T8f2{@W08InR#C4g2qOCy7MO%;dA=-Cn zrT-u=DuG-_i@b&XjFyD_^NixKfN9dFv#`_eVc)&+X;P{rSCoI zDFxrZ-X?jr-6v)D@Xs=jA382ID{6e=xP)VYKb zL%9fFNB`JUkmc+`glZN|ky>6k+~q% z*%-wByK2cdavSyTH?r5>U8&MENxtH%&OIiFtMS97Loxen_1Q1#;SUc_CZ#0KpFej- z#=Hp&7SCYW*{WrP)LovQtJ+3LcIj<(?FcC<;g~#Q`s_tm*=d=$1`k^_<6rE3)3B5& z!;%x(XC|!<$+PDzdU#>RtQl;(G$Six!3_3;Y-aff=!XhQ4yf1QCSsS#%=Q;yGs`nr znS`?gJhC+=CcjZ=YNxy*&z-SoMzc;nghAbxWbp9984K(SW-OdBZ`urYKu(#zVDx-C zKRl8#7h!*it~P!}U6pG8-uxOirr`_c&l|INQP$!`?3O%g_Pp8uTKq3TuP~vXg@Skq zy`1|toy_;2r+;r=pf0tsvbRkO*;XjrzD|FtfGJOU!s4Vui^TK!Ny&Y z_nWp$$$8QR^99R3?;O8upVi*QrgQS)0QJ^LX_yqQ4jCog7nq46`aO~}7CmJiS6>_@ zbqKKjz!*N@(|A^O&nT&5U_My%ZY-(g|DgT>wZIeLB@5n(AJj+eQpW(W<_Xq?AJml5 zP+N79v8{r)>ZBS*yp7;p5xk8j)%S>Z1-vvYA$4&@=$U_H>~q00|Hy5lz_VbKq!-0` z0e!%GQSkbxGsYm|bg=FUR{D?X`Z4I@+$qNH!PSdQ&z(}g1}`A$G-ERaFG~FjrUC2> zV@|ChIjG!2n_u_g<9TbZWO2L~ac%^66v(O6&{|S>W zc;TwYIGT{3vC@K-{cdLKqUF-($8Nu5P9<9v@@IDv36F>8%2Fnje z3o^a%vsycjdi@0#E5Qp_JB`Okr-M}>SkpPH5Ui_$Rj9E7Z-dnv#|CnC`xo`o@#r)8 zSH_+byyRci&cw?F@0j4_{;Gye059)6PMtWUk!{|2H3hr?@85Ae5Ik>n@dONi6|Lj-S;;Ozi!w&3j$ybIv1 z5xfhf>emk=JXVG~1i@qKR}Uk+D6sH#5p5JvWqh=m;DzASLLzZLGj; zvEXg2P@g8=%?pe@CU`e5sP8>0^$6Tv$ykHnZLie22+RksQy}-3U#X2Y@F;jGf_Jo1 zO-z$|D0JM&2d^_49W#y#oZ-lD1Gts(zgDfF)0$~Vl^%o#<30+<6uc?MI)|bkFNxvJ zG!2gfzFFV{fd4M=LBR3qrKYnH_)rVZaAfQRF;@t-1J4zBKJY^V-vPW@;Dx|_g1DpI zz&i_kAMghRz90BZffoVK5%^Ky9|*kIOOe=VL7af#mcUDZcg1KaxYNKh1m4|SVs8mN z9(a+!`vCt#-~)i0Fgs*B2zac(ZNP^KJQ?_G!uvoe6~xOzFcSEC0=EPITHq6a-w=43 z8Z%L9qtFGTO$hxckvF3Y#YlnE72;`u)0M#~@C(3C37jqk(de3N=@RgYz^U|K5jd6n z#4xTyrGB5lsl>;(!OD>_75B&R(gopE)K!5~G5=BE>kKnlTEbdCD2!d*{Q{YsCPYIlAFW%bVf&Pq&C~zva1p=oc zdqv<>Tpw)9^)CQ_P2f~be-${D(e_c$Q7{53pwo!}PL=axfm6l2C2*>gY3;ZURmism zPL=VLz^Np9M{^x2g-`vo6I8Q~ z2?5nCHyO0XPf?*Z1$KZAaJs#^mvAHy)hrv~*yU8SCJUTu)+T{d&H7E?RI`FQa(${< zDFSyYAf6Ni)vVVAPBrVGz^P_c37l${cPw{AHLH`rsb&onIMu8f0;ihwlEA5ExddJe z{1kA7MnE;|A0eQc)uj{ffNEB{z^P`vDR8P;hXhVFt5V=pv*ga)mTFc( zB!SzHF!rdx>$V~bG#u-HdoN@E7J}vb@nWRFbBb`n5cr~Pj2#eo{+En>Deyr~#(oxf z$!5mt1b*&aoTlO^IK~!zg1sd0K_4;JN8t2BZ#D%4bUYaT9_2Vl#wHv1iwyY727J3g z|7!!k!hm~p(fn&Z+Z*tH9QVNZ85_?Dnec@MJjZ~m2K+san@N9{0sn^M+F+^;{96V* zu&Wl3W*gBJ^&g>WM65wDl;bAqV4?w^XV6(s{et!@8Xmc@|DgSb_B&cB z8orsqD$p*VRigcYb`h-#?GhUOP8>bRxQcc|VpEw4;%y7 z(7s3e0c``?2Wb1yPNUIU{*2ag4Qc(#(P-VO(XQ>if0p#}J>K+TAw6|di(ZrdZ6<85 zT{5ke_I{HqoiMe0p!{;4G`I1A^4{xtQi91#3l(=AJvKt(Xq5Hh!U-&rx&%LJ9hF5=X?^7E0 z#fOj(_5w9(%){wj7xG-b=&YT{wH~3r7k9PCod-G|%rG z-@m_8ea98k_564L`g3#CuoH(CHms4CUcb{}_I)pHKK6>eD85~h<>Bcss6F451}SOX zCw+{_h6!Jm#1f9QnxK%FMaIj-=Fusc>R-()4xlI zxfOHY&7kKaT~6Bru@|2BsN{``YjKk8*UA6<=8x53dp~(gdOmi2k#sUBQ_FeQ{UJWl z`I-0)+er0xkrW$x`aLeo)2>+907N^+CI+jiho!jInFU(xFaU% zo>1>Expt{`p~dYLXcK-LR&^hiywpQSrHIg~Vy@yX91v}C^cvDeHGhQxx?6~eZt^e% zzpxux*FuG8nL5cmB6&M($>E{w81JJ_^g(o!lLj~msuL<{VqA4_NIc6@UEMMynHxrLJQ)_zF`4DDuS<5vb9UE7k z6FR2_KOQ<$k2TksA#`>NJ`MmOiN`e^<&5rVl2FRyf-})j>hNuINBHKc7SJNW$Bk=< ze4@F|aG^6n@cp4v-a-e@8Z|$CzEild2}-BG(;bDl5}`nWJ*dGD*PUk*3T}=$k{{lR zh1?u-u;9+KQo)@hwsrvI`s~@5DUD_^;V(I@3;5U%+N?^T$rrw`nwKrHKBQyCOcTsd zZpvxV5NL+LD@@V7%b^?r9tA~)?SbEfGs1~qifPvax*6C!Abh)%Mz(vQSPt?LY*-F| z%|5u%Ub)c1fmLF=DVP|yjE`=zfBYK`@0i-T%rK;p;>m}$r!ua~X*RJh$`SNcq4y6U z1xr4pYuv{lLiQ&h`Je$@1dajuHAZqIP<^eh-1EV=WZdH0>ho7d*8K#Xzr?^#3tRGQ z!$fHlRxPJ}1wP?rz~SPbzH+1z1DyK!3^G1(p|1VFiANJu+KttdO-z-Xh9A+ZFP|o@ zt(YdSyq73z+G0WFZP#vcn`o1SqQ$G+ZUhL z|J+~pS6*&fqfwCPn{zmMX~pM*Rq(kAK1ahw*x0=HLrzn%7`(qm5HHl#2fSKDQahB} z6_sI4pxXm{l6MEJhrFR7u%MwK0L{NZX=v~(pv5GmQcOBIO*jj~U@T^Zyms3((@9!P ze7!ZVD3(@<6Iqa)({uSmR^2#gY6TAy?Fg?w3=P z;{n(p(@@cuE~~2qPNOU}g}Z(SPJvlzKx1t6XF!*Yu+^Ueq%|wW2BDcLA8f1t9z5DS zzXH-KY`EK?68#fsnpN^wW@@W#sBPQ%fDS`eY6??aUug(ZLW9ET1Gf6lK$DZN0mKB1Wj#mVz&kvNt#^EcT8od;-Wv~^SxZ`P%QLwW#80MM**vv1o4PWup{LJEh z={uYnJq56(-)(Pmzr!FSzoRr5<{F_vF$qX}e7vXm7!62128&4;4!Y$enBL+(`)EF} z69#BVh^wClg;Ug-?x1M`?gu2Nk-}+T&@G)#+rXW+*L;MzI%+V)6$6-#olrI2hBS$M zwTfz(Dauv8hU*6hc=JxI0qVg)a%5{?VHl{vaF>68dTEf{TdDV_{U717m7!(<-U3~U zVn_VHTiNO##gz;D8vDJCtF;J}bodn~%yk`jEnQBLTSYjaH9XGqvFu~I?6Te$zLeKe z;jKga4Z1XNd;^!;KW&;kJKbOl$%<$$VT+3qfKN{xHsKzi1s$(uKOpkhtH0 zCRvQD>AGGF-YGP?tdT5Xhn)5$=u*r|h6g{|;mLLg$>P!s{y$J~eS;!RJ7xc;z$rp9 zK7^(_JX|2BeGHl$N+#}*_6-F`v-6P#LtQ%nsgu(af}V(s+dobah1L4LhvdnqZAU~`2jD1eVkOxLtM{7M*KY*9qM`p zG!3Lbo}!duZ;;Lc@MvIJfZCD?{#?PI14w&N^P`NC)3zaM>upIp_0j>G&fhAOoZwe6 zzPV_#9d3}~$> zz=j4NT-vSH(lU!Uh4zEXl9dUKrhNH?hepHEp947+T=YC9m$tDLy=A?=% zj<^!hNUKxiv|ry)Ke5T3mB0LO#X*5*IFeXkjKHv2!(8~rJ_2fkfN`Zj-NSp8+Nc8n zX_=1S=2sOT(EJL711Nlv?JW%oThz82plQbL0@8AQA#DHgV~XaCHrh4KD8zLIkb+Eo zP)>`GXcLCHu7XGFPqX(MaJ|l41Wpc#e-3yimaEDn7Ys9Jx30ZMDyZ(ra3+Xwt+*~( z$Y%p|HsZ{*#T0qD7K5Aiw|X`~4omt9e44e1wNysJT;G8H3k8(2_9$>lmLnPrb`@zb z)O8S0KNeN@lhvMy^1bqLKT3seN}r}2*iQO5?9dpu5{^R-#ghIS&xb!>pj{K}S_>KR z7vrcv(W#kf+r!wsA$H6R3!an^k#uJ2b2H+EDJV(M^qk+?kyntKRmK_ciHe_o@qXeXW z63AvHE2v6RFbZUO41QddMp!x&r&$O~5%ohFjBpLoU|ZKfK>Z9!N63Z---1#U>i#4b zr3+sUNGn7Blq1RXV`OKNV_9uMY6U+esP1b;B+S9KBe z1Dwu>UR8gFoAMA>J@#QJol%AJY7C;iwE&%QYwhLa8|ingXf>B;$94F@Cs9Tgy_M z3eIRY!LCz)G=p*Y;!!ZBn1VVD9zVuAK0T({Oi_Hwk zh<{U~LtOY`Oyg;RL6?fnB=G1WJdymg;eJYIaM{B`Hr^K%oXS5r%kk%d5I!4tzNw9N z)0hgp3)Ze+C8vi8y?j%+CeQKH<(z&QG^JC%DT3QK$|LGHKT_kfX*8&CJX64->zyR| zB;Ks+-4l_~<{IRyZcdWh_I?Bbw?gWEiEAVdb94t70~M+*%lwhLNDzv5m=B+z%66r|FLgih)N7em%Bg>I8KT zz6Yk9_dymTq1e)=>;49=-^|?r&g))?tHN(c!9@dI4*LpRoyrZoidT~gelyVJ*iCd` z`T2kFqFkrJYe1DL+a|SLOP#z51|^~c-z6wV#+R8A3%>PHI}edN%ZGi`(L->UDS{3S zDq*CY_IDfFzHMB4z;lXcLlVvuQ}5+hiJN{T4{?16d94>tWO%|w`fcwts6OHW*17ry zmHMnbWh=nvfgvO>!`2^zVo=)FR=*v##Cu1Bq3vBx4GD8?)?kQhBcPrW1vRQ?iriaz zUwtA`?x;|l#n&aiiSW#b=<&n(f<8Q$o&!lPymQ)^DRfEA00DX#HrJK8$#w zu36xbYzEnijIa&mvUDMv?1PM;N<_}8uJRxVKL%XShHJ*R zum>Mi;5Y2)0Mo|xEo8M?-h{dSLVnPG3P(Or{vCykd>kQ&_=+?b;yMV3E$*dl;Oev5 z9ycEYQ^o%?BV3)3B8MpNf}~Xf8tLSCuD@klAcwFE-CWm+zjicfI| zO*&z&`I=4}*FwNxQ9x3EXsL%p6F#hQJm^gLqCB8r5@N7ll%cGk93y-jinPZw0r{DR z&ZuFoFwig7HK=@6!d#Dnra&InV2EqH27_H=)enctLzP63`pwK>;Ix=@ogM_7CX@QL zp9#2;~ZLrw#7M)A`%j$pm%v#wRx?YLRVrF)MYPrgWd z07JrICGW~_RfQDvA7AV!m%{-Dxah-!f)04QbDo6UlyxW^}bv{ z{%szz!V~R|lva+<)wUsk1UM#P%w6!XoDYJ|mRP@cE^)`a$h39!2j7YhN;nd*R)5W#1@C$`Z{ezMp0urI$4o-BfY6mKDhlvg!(90Oq~WBoh)+MM4O{33iTs(1J{ z9&tFmSzo-36>(zqET{;AEGZo@1^Kfb&iss=(V0(IHxr2BC>h`9>0a6@q<6*i4iha&uuJh|YO67_ zk8=1oDeax!+<4m!eI0^b*tOcauE6o=1tG5x#fa*}5+Ofaj?RU=qd}epIeV0MK3EU> zG0%Eu8s`n#6-MwEHh&l$y6r)vzWzcihjb?wCP_yymN zfV*$Ap;zfye|)4AukI(yuHg7VI;YyRe)vcp&WPE<@?OsZ-Ljhk%d4LCE_{zx^&Tfj z`9Jv_I5!Z*2+5+xkCP+rTO?flryf+_dKmYasRz^}56e^KxG&VskH{V5!#mXB zkI2L2s=b^}C{RBqI)As2zpHkA6m;fJe05EZmNVW_*FP#xl#4%9YaWGt#%47vO`bfk z^nG4Tx2}`YEM}f_2@WYO0JwhoNI==5;_M9`U5{xc>fTa6N|VD{-w$1)KZm_H)}ifM z^(_2GR&662Jk-)^Z@(c2cHG4Zul%JN&!+&EIb>rjm zMvH`X>7bXB+sv+}PLfy29oMMePm+(w2`{PZo{(RYrIqSyljR<&eX=}AE>nn@BOhMQ znQ>FV+`5#Au4?WS*(R@enusv9YKrVH=Py=kr(jO17O7$Bat}Fw;og*VSvHwtj-tDf z)8ttHm$&eBpYtWd8c&nM%`1+uEOo;)InLi_6PH~og6xDQJA~k?rpY7yGY>L54b$f! zWVY$DwWDnaU-QXGMSKsdq*NYSpUv1FhU*4ilFBQUz0{S{GA+`+@}b` ze+DpV58R~AkUNFK%7mRnx7T!w7641zAoYbAa-uor6Q~!@kRO!JsGc+Bayh4udTA!c zC*7m^&XPO#mO4vm7x2Cbl_`FI7wVdVmxd`&XD_~fWo@OjiGp`HR-HOa?x&QTVrfin zudQ350natySq9v0z~c?L#elniZ1P!RzzYp{F2@zE<1B-~ZouOWxW$0GPZ~Nf;DrV} z*MMgkaJvDIKdCf1vKR#Jk|utM0WUP*xduGTfZGjtyaBfuaQ6?wzk=l{(Fx#%20Yh* zXBlw20gpG}76b17-Y@_IUTDB`fh+pjXBh-`10HX{Ee72EouLB*UTDB`4S1FTw>RPH zwpns$>mcM7ZB+NrL)y95esJ%=IkNr#+^-$2lJ*uXmB*M`{N|D4pIe1{-+N9TDydhV zmsbR2;!B{6w=?gl%M`i8r2SFMb5(n0+KtyQlkZ{X>Gv>GHr}D}?#?`H-I+9@2b0hD zV5YeHm|TZ{fkO%F#YAH23k6Ad9$B zDyliX|7udlzKCc9<;8^)nv;_RDXTjTx)$}Mf$|lx2-N^izTBKt1u2HLQIP(cvWN3i zghX%i;zzW+JzPYo2}SsM7w3yuEpJUpp1hZjE(71?qxd~}N11};T0Un4DaP}k=F&eJ z$+fF6c0qY?Pk%KhZwXR(GVSBt@)5}1`*<{dg6+e7gf?o8U5O4Fsh#L9Tu`0}p8krz zLqFNweKez`+8J6>yq>PjRR)hhS_LaF>7=1^ipU zR$?5n0(KQJRlp|%d{V$?1$QXU}ZURDn#Nf~PUb&`+T>8RXV z%2o#)m1E3xviKFHz4#TS$tG;TAHI>Jr7HCregz1WXR$m?I=9zeEJsRmP7wVP&`%wz zt~LD#Q22lO5ukI|)SwYkSC3rUlj=hwq;db>e+UR)xH7ZilTAMabo&&hU;f|tA)tNq zg`@w49|9`=N&AhSbM$X6eL?Ae>xY2$|7VI8DZXKbUlXFQg|+x0pxoOexw4Xe_UFPY z^l#l7`gcbz{hRY9Ugpj}DOq>p)!|&pmLu&juMXVcRp@ixtIjjev|BDzho6vptJx>y z0j>4A@IB@kUxr|l)~Lr%$URzLd7W>^O2NPKy6XF#+#|>zD*`q41pXm?e|6Y*a?hZ+ zJkEYau;bL1!ET);*!1N&($30LkHbsrLczxa28~~sr}};m{t3ZMPI>8t?}1HXK7H{{z%x-y@oQ!JZ-5`5L=*_Wc)wcxv-5WT+T<~{qP=^!0xLC`6Jb_yD=b!hteg2wwK8eJ&pLxSEX=<}RbSdn1h#Uah0SkUy7 zM-)Jbpz(&3MxPTjUd__zQbE5W=qf?)6tr8=c>hGxuM>0|f1(xCsqgrR?HU8GwF&xZ zLGKgvMnM+|`ZGZn3mUJjY8{jax6AlLf6;!jA>5 zS3vrv8T1vVm%dS)!StH9R?vE}J1c0t$i?6baMYn*-2NqKy{H`*v|h{t@OvhtuNSc) z8jYpXtJgB2pjWN81+AAW`pF`4pw}t?92B%(RsI&VURByfaQ}K$Ng`T7 zhk98_7Yce=Ss`e>th^^^y{vpK=u%N7{t&cYRZNk*L%phW6trGdMuQHe5i^{>u!GnW zV6?(Ac`mOI^pzEyzAEVH|K>FP zuUW}|uIR6ATTajJp2HPl1mpH>PWKmdaVDo95%m6foSrS{^rf6$uIn%6^g2Q33;WIL zQ~!~}D5?41e#k)}NBG~5E$E9aXgNyLZ?uo)bfbMj3wl}${pU1V`-K_aVO|S^ot(z; zlmDG;LI2T${;LITZl?u^gCYM5=X7I$1Bpf^G%Ad2VKAiyJ*Ne|xCOm|(>T%czYki_ zhg#?#15NYa7(hu2g>x+&RJWjSx1d`^Ya?z9Ag%?S)Pf!tjf)xrXf&ABLgD{u=G;S? zisCqaH%*aJGs8zYU(@n6-`W$gNVGJcOM5|@uhcYMKFY#r*1}Lmh+Gp*3$=U%hM8Js zk&=%x6hw&rFhfykO0p89g1*~wxF3}NHu!A&oO`x=?l}kU-QD4vPh6^Ub%QI3-zDBi zyq)+fOZ5NRNjIvhpdO>IDp$_|T`OgMwObH(CoUu|AzmjY1%t#_h?`q$HXxArapIZ8 zCB!*(EN2Rrr9Gs4g7`G?Z^U(NG~2}^E+D>N<*OqpR)({2*388a%?gZA&* zj#mr715UshxH#ZR09=7P@Bp3w%M_Ss5CasU7bn=P8LqJycUhQN5C_hJ1ds@lKr%Q7 zQa~Cw57I#vum*~sj5~p1myW;-cmp5c3$RFmi2#ux3S0nKp23K~MUc&5Oq8cwONb4y z1$^MfR!nna#7FTq6oi3ra15LTr-9*9%)kr_~hOhC|d~c zh#RZ;Ss%_Z1W^r%6&wA)GU-sI>Bs6#qh&SYFWnrZ!-quFPDyMxz3anHdzlk R`Gy9K@SO}gTdFvYoZql}M_~W} delta 35500 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 E102hjeE