From de9927acd278b371f59544a7d5deea9e7abb7067 Mon Sep 17 00:00:00 2001 From: Dean Jackson Date: Tue, 19 Sep 2017 14:43:09 +0200 Subject: [PATCH] Update Alfred-Workflow --- ...edworkflow => Viscosity-2.1.alfredworkflow | Bin 175731 -> 155077 bytes src/info.plist | 4 +- src/scripts/connect_vpn.scpt | Bin 4158 -> 4158 bytes src/scripts/disconnect_vpn.scpt | Bin 3134 -> 3134 bytes src/scripts/get_connections.scpt | Bin 44386 -> 3546 bytes src/viscosity.py | 78 +++++++++++------- src/workflow/version | 2 +- src/workflow/workflow.py | 43 +++++----- src/workflow/workflow3.py | 42 ++++++---- 9 files changed, 97 insertions(+), 72 deletions(-) rename Viscosity-2.0.2.alfredworkflow => Viscosity-2.1.alfredworkflow (64%) diff --git a/Viscosity-2.0.2.alfredworkflow b/Viscosity-2.1.alfredworkflow similarity index 64% rename from Viscosity-2.0.2.alfredworkflow rename to Viscosity-2.1.alfredworkflow index e7fc357024d0fe6aaa76cfe4a0905dcbf5076005..0b2658066200ff8fac90c09b255726eed78a5473 100644 GIT binary patch delta 36475 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 delta 57006 zcmaglV{j&Iw>SJVww+9D+qP|cVw-1d+qP{?Y)m+r*tU~N^2~Mbd+&GGe(-)cs*bK& zwffUh{qObb9_fa;-+)bE0^==+Xk?AR01GRKXzs(<6ak`TLCLsePnZwQMb2L5e z{d5K7hOMPch=TFAiQg!+19=wz@p8NJ>Duqc_rB@N^ltpIe)c)HIT|He*3$ak(&N+L zWE-9!{w-W+{LSC)@@nhL$$=P>I6J=0T+kB#OJw}i)!FL%;Ty>$JjR+dO7PMteh~M` z4kS+lvs|Em8lnI~M*VRxXS1Z#@p}jqaf1<1qN)F;Z~@gN*Ja)wkiz;1U_d}Z1wD?W zHl!+B#G$U0K{j+m>>I_d8l?_KhumNGKHIcyo3(7k;o&^L{Ha1RBPM)IF%yq}FR8beXC6F{> zdMz6UFpEDEvjtV&&l$Sl3UiJh%XR@#-uszMiZi=zYKxj@1anw0^{9ybmS4!?|17Q;GYiCt!gO`pt)h&NY_J-x}`g?*X~bL=XHsto0tqFPN#frpQ+N#C(cr(_;A*|&w*KO3Vk9YIsY4at z4b2MmZ{EMVo#D3)n3uyVe!S^%WHAj@loPDTcr(&aWId4krLG_@+x-hXK3pkBZ**U* zo89WyiG|gXlm%@e=vljWm(n3{(sn@on9pH#Ww_7YY}ZFH5mj=+E4>$6eH)iR;?0oq zroWNV{B6$W;3JmqZK|8{<$PGw#kd=Twb#|t*djB^67~*60;`p?6Y_F|$=o$|IE2 zLv8We>71AG!i6p+a3s5qfF-&m-L6`lbDz#YbO_pU? zKdv#AV{kQ4sV`vf7yG9b4FTldpMPG#RzrbH8y8LAC6lsj?kf{S8U}r763xP?UvE|o zb;{fs9gN9N(t3Mhi}2)EFX%{aaIA#MgMScj(vlM%JuLbvobxDo|KPLTn|e9Urt)6L zW(alH&0fT5RACZu$nuu73^X$#8_=%DhhU*>5DrAB#uKUIxJ%4HST&ns%aX02f_Vp~ zX2a)ViKiy%CLOEW=#1Ru+}M$(636Zh{-|k)vIyC-(rynsjJrC7)n4^KRY0DhkzZe$ zZWOY_U{`T-wT{tYHO+|XD)k(4eU@zZh)sgHXw6?ct-wofN{DreA}sByw{DnS^uPP+ z&rXcibYQ&CpWQYz(ECIdZ`DgC?@R#(i6@qB^!WJse?T7XwNZm;y1WT_$zNNiv76va z#^o9IcJ@I+X#RNl`NnSG(rk6@tlxhA5;Kh7gVj=pPJ8T!y?^3@{_%2!N(SXY#ymaD zdPh9UjXjJ#3Wd2{ri`9iLsEs&$$;)4x99JCkdr8=)Vfj$1~z=bAFKpJqPqxe2^){% z`rZT^qM>cJR{zav9kc*rvBxX~u4xi8PP2Y~ms}HBtkOLKfwrv>30}yA2oA-vS`I7r z)Rn~cW|gs0l^@$O-eMaXeBlv+U8LPib}&YpzZ=cEeAa12Td8cA%p1NNH?byV+Oy9 zJ?eA5roGG>_D2}4|43wNhuJs)70Ml8HMyvqJ z!9Z5$NSIy*5!q&nW(R}SRIPz zmZ;)l>@pZ>(N#(O>voPrA-q6jX+K|HE`)77io~Kgp>UO;64jA|;&$8Ww8eXFmkYmf zC=MQr{+v=j&qh=}8nX~6){ll(zAM2)QDIP@V_Xw6)_wY@S8ar#VdEZh?E~AA_b?Bg z0d`Ee+ZHAtQdo>oqMR8pE+lE;s4UIdP1qnO+Nf}~X3w1i9!VQndHi$(8^Sl*M__V* zLC-Or$b2@hXJkIbBPRTW&R$IO9MU87X$J0bFtElFE*ebX6j2RaBmT57lLgM~4(sR5 z=8Ze_@1UA4*M1#M|i;MO6@kQBpQue>b@{MO5*kwbtHf zcCHHZVDlj(2t!f!Mn)JrjBE8}l!iNh2EC^&0Te|~OK(W%N7fdy5n4-6Of@WE;=hR& z#0wKNamDB^z_4PS5X>bcD*H@#FPA(g={F@v{igk_B?v}y{SI})_Kh;6^yul>l;a@BP8D#TBk9(3tT+KJl(oR)!45_`hC>N>w7C8G zTaJ$1_#0oP4KZ3nNd4>Y^N_acK8x`hKD1(h4BTpqkX=od~9JTFd(|L zfn`JK7+C|Ae*B=Vd!k6QlaMI=yrJ`{I_jQFGtDQ#(DnDok|5rr4Ca-2l7%UcrskM; zj5+&C1pjt7wH@_oVSh=ptK1JcpUVb^1o)AXOd#6nko>lWxM3K0fp({{v)oBHF*9=B z#}O<}h)#rSFYL&Zc%=-8;Po|$^-&p*Fzk>L^Rwq1( zcB(>vHrY#-qm6raCGOQ`r+KLM`SuBgP7ldGy~X`BM98i~um(<0`(ow2nj1XEQEtmi__5v z&nM;Vb@?jbGgK}qB_pE!-DX_2$pFJWTdp0r2e(4ASV<-mU8+s6e%sHm%UD+xJ6it> zv(K1I+PtTo)U8PE(e@5TCkEZ=xE_9h2 zv&z*0?tR1I(hcw)s=Z&(+}b{{x;)5YUdQeo!f|)+&0)ziuZ-c!%syS|QEALo>qIlf z{Bu-+t;Au-AbV@u?5N`xCK%wz{AoX*(G@S^TVs)y3{~TJz_`99t_Q=~?3`X2 zqzu{|At{|dWd8YR!(6*hmKp&?+Yy=cDp96@4I9|&3KLBpPen#@k~Zo`Q7?`{{*9o@ z_5Ms3Wgu^w$1b7McF&Db4SazVwjo9ru6e{=#^0j7s6noS>V!rqst-dZgNBI1?Z!3) z7_lm4!}0p?gaBce)?JKvsbXwwP&X8pNRioV1Vbi$8oprd?(Wj3$3ofXihn0zkJgU$ zAh;ggnm&hTTyC0J)`4FXBJqbGYh}%GnYfq31k;PR1cu-xbRisF<--sg;v@ZHSXvv1cr8%-=^ zm#_VMUzl2Ey|3}f5Q^09Bn!mJfS;LCWreSC<#&JI4WnOypWP z7J8AB3TwpVw>3}8F&55{34GruqembwgVmBh%8E@tCgf${ZN7rl=VJrA%UuXT?^&!7 zp&oEJeJut^(h{>BU6pCe9YT3(OL7MtEr}Eq{c})@E;@Mm|KQ=)4HbjXf-xuw{DS2S z)LM*s9v}GOXf*=+M`N5m9k@PmgFJv0sX%NA+U4y0a9^l-bdz3)f6}}S4%kX{HQ_7_ z79%C5HQ!SoA}`g5rjK3H@Xn5u|RlOZ|~o*GdatqJ$=UN9-QZ z=&FhYzvL#-VHoH~f{$pZ=hxvGFNz$%32y^$c5shb6Ol~OS&Bpm-27dz!EaERM!xVq z$N@V~s(y;Stn`hL5%|k_KNQj%<`5#H)J>x9=js+K77WxqcA6-`gVZm(7m!^Sq8v5l ztTB`MgLjQ;vO0>0rpPq&;w^&(rVEk}Awh5&y? z_ErEsyo8~O%+-f_7Q6s$girL=g3@%Nri^f~j?o&kb9BQEJJ8;$Yg#{#M;gIov8RB) zB%w(v+}kmOrJ7oL{6eB2&ZDPI{t>qwz4?sC`j@q=JU?X>F$(+J=(b8j?aGbr;3inw zhU|$|tHjt@IhLBN>J#kO>uP^v117p@fI=HXg9-DRMqQKl{*$X>&4iei&4>IORbDY6 zeMb9^DaczQDv&;Tt-uSH;6smG>9XKGQLT%gUM3vj-iuj9;q<<`3ONp36;FmAc6?om zIh(tn&ar%8$7>g89e`YYp^X&x2XRQ?F#sI)U=caDz9DFnj7RjImFXc53*`5B(>}Cx zgO;Q})BUbgF4?!vMaNV%^VXp|Q-V%1Q!OoGRIu`xH{fCER<+uF2Rd;N=jf~e#KU#< zbU+dIqL`H(uOl74}7L0cK8 z0uwdp7tmK8j0SXP{Q)=e?cTFzr6JqeZ;HxEmhPUFweNRf=t)siD|8cRQ(+T#%90P& z1^Y8Dg6;1c5^IQHHI8h*S114Qtr)=`R)9bdgpnYp=A41Bk+=VugW=wGwMWzkjN&;!mR)JVZi=6 z)RgX)SL(iYe_J-NqG)e&j9Mzm)c5N<&M{35k+0WPy zhCoA~_|d};zNsE9{wkmOS3mD1HU7Bg`O9~%1=4ShE`7zPtH{6OWp#`9J)Eu^&z6SL zq&4OfwA{_jtlu_^anVN+Yo~>>ZiUXm_1Jt1U!U6j&S))o>zwmuv$KBPz@WCvu4DVr z!+uS681;Oe`8pzWLQAcuf8M9)p63UiTmvC5n=fMt1=mal{Aa#j{667&7M=Zu*U==Y z`SBWn*x#+))J(_vhPb--ynYz&-7Oik8=1#>npt5Rc3ShLDs+FS8gFzu2F1iL>bd*SV6j|P!R$ku+$PdsC9DQyK|H-ibOsb*(m0^)5v@HhyUKRb#ri}m2 zo79@1`2RhdcE7CuE63`%e;@rDHv#`F=6~nSAFm|;m3L2HNr7sA^R6LqGhD0l_X35kz6%v0nDQxDFOP;PE zqm^e~PHY@lF8%`(^d)VQyf`RMpsAdBkV)ghjt#9GJP?YzZELV|I!3tsdb;)+>OG*= z7734tT)866t;q?@c8+^Zzi-kr$jPz2tE!Peb7}gs&e!!i6|Y##`Lp>}ADQZpm(5B> zy+&Ds*u?1xQgJh!7e>`}GE}OTE)M(WnWCb(a5RR+uhOg-q2WlS%dg#mrvpVrE58xo z$~{?DwUp+{FpV}{w67H`JJfA~U)fzHZoHr|gL`{Ba%3*>SR6;aG&@gDU8SnE%~~7V zrb$H`%*3r~(#-hcWQSVeTy zBw)uIgIDFuyXuFQdG#U7rY)n-V_^k6qUw?TQ^!gtaXzKA>KZ~h4Mv;8iiYdT21QGb z!pGIjI`wxT^;Ri+4FS_#Ii#OR(uvqi09E~hmV6A&bkY(HMNm!DjGCrZr3O!J3>LmJ zH#0(E0#QV>Y=w^Hj0zT;VQD12|5;5HH%c4HMUIPj4ZTV*(j--YKD4}CdZ~{EG-7B zwPQ(hY}eeK+Yy%+8+K*;tB%CUbQf{ljJClZmwn>oStd++*YK@p-W!u5QIC4wu*R+s zY*Ka0xP?7SMY7s&Al&Wu&Y+4l_Mkr-QXu{21~rti=e&{_Q#+=|{G0k5RbX zwx=zS(_IWqFjt>R)SQ-BA*MiC{kL|xO>ZMtym1v2_3M=LybcV_rN-%1z^jvb0+-RF zksu!3cyF6_JsH7SYvb!+1-I7Z6If`I7<(oz;h11X=5#_`Wv6sH$aG$Z&9YdsBFL0c z1Oz%S2hblCJa`qdEA>zjQsx66Qw9}0-fa!o>^~(qbx|#cCtb~__TIIg5fAPK0hmo8jj8aKv!dm%$;Q=d5KF! zglCC~D2yzVJ~nPwnw67vu3$_|H9Lvv+dOIizK+H4ImpYF7-esGRxv&h zHV~}XF3BE}spDq^j=xi3+BZ8fg!s6)E$a^CM}7^rs@KHvt{WN=hwHKj_s&3V3fTtJ zS_anMzhS!g=dLjecuHMNm#=3T1LxdQIa5eG$L;c=-_ym@jb4VJ+TzS_URz;G{x(b8rzCoETwFiE^?h51%u@xFPO%lFz5-IA~F<;tuxRZEFZsF{c`dTe1qRnHLeAB&v!uNMz(nY)M+z^(DQF`nq72i5%7#h6FE zf^CDheDerRuul)212}S>QoJ`n{m#xY z5097KEBg~gzhxU&h1_@rpAYXR)X#Fhy44e?0gri)wiQZ8@AWVw4MHZL3rkt|@7|z~ z(7(2reJg7*Z0tK{tWufl@LKo#E{OZ`i$!;ef_Vty2@snu9~4-OGY3U6vY&m zn6=3|;q;N`zz{DR+gw7eh*uJUl@!hD13tILyYf-K8Yd7bMyZmhZkSy$M#>pRF~jl_7`5(_ryeZ)p%~75Ap2d`t_@%w_?RT8M(v2?`}rjb)S7Mxxe?R^nkP73=FzwcnM$ja}&q59)}%t?7QW>D}sCJU#(=n zVYGVyUv52v*Lk){O%N=-2ksxW67lY?Dv60uSB@QfOCn9EavcLD6+pcQUZ^R3V@NxM zZJiYin3&Dd?C`_qJp-V2Y_%H6Xb|Bq03;IiAzE0n3911UvdGy($>GdxB5CD~Qey>d zN?-6gk5>&AKpfc+5^HXMCW~ z+ST>-f1WPWLpTC!;_1#gBXg2BaQS-ueeQ3;xHoje3)UM~-{xuS>BQA6kw+w-8J*8c zWmQDiq)8A#9a7{tuX-~ycu`1Pa8i*<0nmy%Xf@~=vJ#IwD^KX0V3-l(ECq3`!dRcH zono>R1wG1{SlewXLGF&AedWzbC+*)`M7|B#63WE2yF>y7c7x-NEAiuHli16nN_b}L z_dGm3WS;*{VyH4tLb=WTU2>7D^^PPh$X=CTH@QO&ev6L14KvkIW+%*37UH9Z>Koe` zZR7;Wf%kVh(QQKh6bce^B6+QAmP4!^CRGKT{ZI-kSxTfJ6hJ&SBFPBN7a?wvK1Pl+ zUJ5Bfm=OfJ#||SFmZTOP=zuQXgv}9a?WfcaCw44IN{LiHlklrq##{2m~0}w=yCShuF7T4VanbG*mxCvAv`5;6@$Y3Krg^1OA7BozjI8GKK zCfN}vbR6Z??FieZ8g*WgsVPy{+6m@kV_|G;ZrCmQbURs<0C~{A)oe~U%>!`6y1S}r_(6STX z@|fy>1QrVN9Wp$}ChCdWZYCC?2-OcA^7+K`RKqz}o?lck5c)hIb7<^ypuD+wb z>F{`JS*@Xgh}rxZ_q>_v(@=d`sA4s+sK`IpzePXD?Bp7~F%@pn^L1(^3aFQXNY8cS zWO+HYy8a5R*?YFc5w@@sGL8m9Pw{vtC=Y;K#cw*wD*UopFg2Q-$ME2R@%705 zicdhBC8N&i8IK%4rBGuej<~CJ5oF6Splps=@)GO3(s&>W43EDHS6P_7OUfMVS4T@n zzl{wb(~2qY2qIZEms;a$(%;!+9_j=^rA$t=Fw6|BuNb~^Mu1tSX`CS2giir#)5+d> ztG#$9n@tqyc=kVBm(kHPDSql)c_3?=VpZ#iQMmKMw}Pn8(KKx<-*_PP<$7P>EcMD3 z?-&y^;a(Vk9}&yY!U=e;{08!3k&4&CIp3A@?u>NDI|z<9gu&Fa4Q8)m@`SOPCXu~f zSSc9ii`l3wn*9tOFvoAnLx2Q|@_ByVBN1-*c)#y{7y)7ymKqBd2nt!yU`gMD{{>_1HFK%PPkpmIm3k=q6xxQl_*_1KbH#9e|_ zsR1U=-v^hF7qj6D1^hE8Q;a4<>!8G9QlwM4l!FXm(J<;P2`ikMp&htZt0{UP&RJ5W zAxY|`AkN4rlppH}bbqRPajDebvnSS;NRUGiTsk8SG;h%|;3r(7tE>k^8D&h-aut%0 zG;^RnWTdcwfGWaI{CNYqCm*hTPt??~$5B)P;J3oLp12PkE#lmW2Ia#bn1W7kk8e9BpIiRW2Ei{eA5N$UWIwyN^b@sjBSOz zc^=#=@I5mCeh=Tetq%%86g{75V)c!g8r*9=TFDcEa=iQY~{^*q{@& zf|&`E9G}_?!3p{m7eDt{RlJHnt)e#a6Hl3DmsP(4IJdwk3I)7OA|lUHdBK*u?)LJU z6>4b|<|=@pQmS?fo3oiv)`(5B!7iT&l@UZ|9LT6pP>;ClkJ)|5Dqm&kLmbLUH-ICh zjMKah`lch5`an7bjsub?-_&6Nm3H^S4iOKUJ^YW$ic?f2lv(9Aen*jcb`1hGp~{03R@@wBJ`wDQ2E9n~&|{10{1V?1lExn_AM`J>w5HZa!}Wo8<2J60KwvmNQx$UfM!rIE+2n@~y&cfN4Z z*%=^T5J0;!@6pC}w&4R#`aCLUaq^?L>o7`k<&M@1T^%|gapSb*%Aao#jS?=qd{XQY>g^sqjjWs27;j z`t*&?swd<5PmEmqPeIlsRzN<#G4gbg)%AW~xP~|J^&z=ig%|yy(`K8T=2R-2R@~Ui zu4UjveZi_qoRYMA!&c!h?$>G(8gC^fW7>2)tgCBq6Jl%~skuV?&4(78#aatH57t&# zX~RmwtzMr~!)R&zZa zYC#frmed>+%gp0a&JeXVHJF$q?H_H}O3(1>t<^qk19N8T#IsxPn?4*W1)ut` zOsk)fM!v*!n(ooF6?wK9@8%aRuo^}?{LUj^1pcn~L4`mqShX^wF#&w{eK1t?YxI$& z-oC6&bkH0(HS<||Z|L;)`e;_UuAD0KU#YC!<{52uR3)jaIz7aQ*sa?{?l4)ji#raX z{AJ%>-+kE`K#zlkE!#Vh+nU^!9yZNmU2?deidX>*LYm?n$<;?9FbOde4 zaG)c}TvKwx|2^YogtZ4%(18%a{lnyphH8VzeClOnsHX9D-S5?fs6*DJY5vA?Br;zD zKlUoS;2RJV#trdAR>aF}~_ z+5Al=kge62KNZ*mHop;kBws}q3&ABVtcxFLD7hffWZxzAa_QYZLrTYqERTvSz?GZ^u&^6 zHfIki4=eC9L~=pMJc@)-kDsNWibrojmSxX(;`@iz3}U|$N@!GUFgnGM*-R|MOEP5} zo=S?(s_(K2S(i@`67CddHj|9mSRc{{9HD1ZQ$MjX9c>2h@)(>D74O4Xz8b4FQq^}> z(caj`p9@JClpIwx2)_k3%ej2*1~*TCoBPFdoZtb=`8xDUc@!|EZ?~Tzi?XsYP@duG zdM930BWmYX#H3Ya22WHQ$IRLqn%BXRCQoS~B7>~{{KYl@ZjfGnPwm36!pDD;H#`6$RW&`q3EN$ z2gQ34J*1^v=}IwLZ--)o$y+d&*$1)AE!HB|%=wC<-Dw^iTmPBb0C+ANo-~ZFK1>6f zxTxGad4m$OUCa8azb_sP5dIbv+#C_98Wl;wM}S<<=U4u0ed3w4Pf9N?XfK8OSE-&-RRMV2l4VWMK4-I6-ynV0Jcb<_ z#`>CWLZV~@gdscZ^uZIIR#%nKN&WygrCsoaXo0b*+wEoFz|J3S&LCWnPl}Hu@4h)r zZ*v%Sf0++_dn53D-?}b9{$wvXgJ9V*h-ooE-;*FMz*E-j3@pd^(fbUrO|~f5f*Hqs zVc>y?5w=Fn0n368MAQlLgV=t6hP783LTpkbTn^2gXMWF_rkSVVPv8vTM!^Q!3$0Qd z{V>JiXsL#CVe!0fg!GLj+p7RC@r0s(-T?*te_!zYBNbzW>4V^ZHRGQ}^naHMX$4g^ zVL3T*m4AH#{C_bDM=M8ICE$PI%0KOs>v}PXaQ^;2AOQdn{@>fni>nEX39AYJzq&8! z{!an9HTx?d)qe%Vjn0OYJCj?0#{|t1n1me&2!^C`;dtMEuCB7zlbR%$`#E(skQUIV zw)$9oHpr`brj^d~XBnMiq8ZJNj|ZONaWJQXEB?+LXUPFk5=ej#wYqFl82uR8rIUWo zCreTqt=-C`U76O^P=;OQTqpaOP*SOL;#0ihReC`pEq_B{nBiDyq2+6kHkBL<1Y0vr z!D`;=8T1~Bd}CjBYLbF|Tqzlyotf-~nGvBpjnwIU{_?usiZAj-`I93?(X92dIU;|v zQbTx0(nbjz9sHCfHpND<7GuEF`5@z;nVA&llX~Wyg%yqVxO;bb_`b~$oLqoH=U_72bwp{!PwF8+iYys9 z7L972r+dEb*76AO@dzk0W=?V>4v>ls@=bPH{H$b!#Fo*Hr8qKrZTE70G<3+9ye`7p z?10Ftt3)QTwlR{FcQk5(6!~f3#_84~kb879Ut__S1BQ8v zZ&5&kBcL>!W?~(kSRx%!aw+xFx8ZVICRKIZ}3Jyqm3bd zZ)ivrDX)^l9E~I3A2IfW_15N1zWsIS#wiaAhmT#w)yN}%4@Dc(BCER2g76Ovjc!TG z=*x|OsZW`AZRtH-l>G+_xfi>L3Ltqg1GoNzgN3BiNjMGXqm{H8sZOgi3WLp=k%zI8ECL^t&L&1e}^hK6MY<9LS z`()5`mNY7-2 z(AI3MZD|j@#m#dxsZCZa+3Cm`aVP-Wlrjg!iMn|@ggU|dMp0VAMuiu(@JYH z5on~Aost(di%`97|350!@GljDGDYcJ{zhm1z8er}WoGUB?aSypi)dHb5rsY^lh0nA zI-0xy1YIyOrqac)Kfp(AWcV%Y6OA-MJgP?zEh=ebz7_MiH~KHw`%=Nodsn(KZ(&^P zgkQot&oS9{mS&g1nV5%`D7GS>JB3m*qZC@yxdLz*%|^uiF)lpb-^D6eT1r6LYSN@H z%xWkrok~JnD~yHUrCD@w@rRPX+kej!j*l$kAUEbJkn|se$_1j-L+$vW8G8mDKBEGb zNy0g;;-0jizhT=YyYdGN#7ay%4zG|);wcaH_V&smU={ffS1GUyB5P9`h@V_;rfe~+ zGEJGmxbsyk!q4A~Sh9KhX264#(iSTS_9~U1W1X2|59(&WTs#Q)IK998+l09Pn$Tu@ z*`H#j7T|xO5Ym65(ACV-f0&TRf11$9zfGvWZh}dSpNJya>uAY_t#~8&yVwwBOu;ra z-yrJFDPFs;tLOT(WB5V7$K8A1Y!Uazip3|JDL>Xpz2>I}&fapsS3c(J;I7{___w!o zC+I5=4>I6tH?Ny}nYV|>kG-``{W;bW{Fm8{jgM~LKh7SU59I>q>^zcQ67`0227_NI z?~k}2L@yw3vny}#3J!}m180)c1iZhKax?RU_(9vALmc~CO=jrZxocTQ-HP2e()ov< zU0k8{T$SGUZ}YGtgCH(q$NZiG;#z(Qy+xix{-y**lX(=v?Rotu^GW1=7CVZq>P zr}1PIpzDbYu%a5Ei6=XwbH$kn%?mhHj?25A;N&&YhsJNag!uD$flVkIgOTAOt1p?^79@ z>#qh1UkwcnN%5hW`$08oco@85g6|iV)XdJ0}QIkwItr6$g+SNzOzoW0Zo5~#LTfNYWC2_ki(l$%V2&i z!H|&|{{T4=;=L6L;x5Ta{Cu^S%EbS;r>~w}ev4w7dR-n#c5?EddW*SU;~((C`ZIRc z$3qIwZU$k@wf%zU^%LTc;Mr1^KV>IfVV4HJ@VS3I>Rq|(r(mZS{kXylJ9?s$%-Jol zb8A8L4t@4DF*(41$$t`ta39(pIXfpAOAbEMTz8DPr7VuciHkH%Y$Py{UTF9v75Ur* z#u;|r493L8^Nwj$WBiT{^AtM;@+@B%ZmodzKC+3^JvK$Sw=gHbu^bdw27Q8u@WaLkQ$&U<`7HSG_7%%KSsH2Cx9Ee(`wMKbL%Tx?d_9wE;_&%m#PINawP z*_HQ6htT^lwKM`2q3Gr0Q&OSVRoa@0S9(}@CpPKycQ4kWHKm9dL-Cy|HDEA#1)LV* zC`sAR*~TX-8w5_w3`c3~cLChjxn5DJnbKCpbo8|@wJ9OC6RCuSEBE#HbuC`ULrNX&4@}= zGwkS^cWhTG=r@{bgBm3)lK3pVAe*tv!S|2E zY91pD$fpDtEENISKymmP8i7jzh5g=8pEam$xl=7#gPNnZdkB|_%ATZ6=jr9%hcu@E>fE8~QSHl`<2}Qm1RU!?0nKN~hpEm!7U{Jak3HyPK-5QYu>ukP}tybM_EKzgUdfD9WxnrfdRmqUkAUjo76XsK5_KKBQn+ijV1x zfF0<29cn+gV4z&Y9GOb; zz{{Pb_w(rg&4Gab2|@o42g3VL2WtI4IndnybfELZx5WRm10}wEsr}o5zTp#86(5JY z0lj@6`2K;Qe>qV6UfkCyyR_rASYsLDsd#+T&RgU`AwToLEEf)3(M`&LIltQ7P3%DL zG@ot#WciQ%t)KS>%~j}3ZIZlO9-3DJbsXU`r4WjOPkdkA?a*VxKM|Z21$%cskdW{| zJ=JMCY-_vI2Ii1_zVN^ue&1@K_5&%Wpm}V-V0Fc`Rys|iU=baGCtgBIYE<*nDh2vqx8~=&G*OMgFN2hk0GUUjt8RS)u;VlAChi=&69--~oUThir92VE$K83)4AfTLPPze2jO*awWKU4y687GLbA z-_Jh~fr30z*j>=luJ1C;$usW}u&=dc9 z4bZ5GOc+&BIR}=Iw-@6)r66joE&^m`6$LF z%+|z$v62)RAhM^4)X{4DIo;e!bWfA>lxG6yNrhd3Xgge(4N(cP3Pj<9y<}!PBkayC zW{)S_O>qciO;PjX#F9%6Sv?y0`JxHi_^iFz1?wq6}lp zkITp{9s2Iy32}}w%=sQ&yoFyGa@P;*Rqif+Gvc^w1J#tN5yu-_5A7qc2$$)9HC)?O z#7hcX54&807RY}yiSasrMO`9 zi55&VyU8E=0GmNsAMHORNe#QUF{iM0vP>On*9C$Gwas2VQ~4f0ec9}HExXd8xr(2= z^qfF813XfbEy&iP36;{$vw7TXnX%d-oX$71ir|f|s$moI$4BL{eS;xzpsq9-*+ko6 zY$HOXywL2~Pc#30&bBc!!2gr-qQA=@bu4ayuL~$uAQsZ2XRyt8S)Cp2aY2}oC*($r ziW8V;3njdZ7(}E{qrBK6j^b!!T?PsUXL42h4BSe9WJY>bZW7xt2`%M^gH**|*<{nX zrlIW0ATt+^l+vK5xN#;@zY1FisaJQ7AZb3(K$ME_DP2z`0j*Z+cWPT7(2iV@mJLRZ zWXHZIhOq$R$?V*|vt2R@kfw5;<(G|r;AA51>+wG#dG7lSlPyUq!ZR!Px?2?JXc}y| z09Pv2M^15Ck*%uayVkkyBeQ~Q?ssy4qBJBCT?iq=1H!$d?jL20Axr(IhYj*6WPAbK z=-<02?W1ctmu!fllMy;2NDRpvx)ZK?`pV_xtgM19HBw?^d$NW>5QWhF$=b{Q#bFgAiAjIu`r0)@2Ae>9 z$m}HQQoT%HFcocAdP%`A8VTZy10-<3`V$1r1z{As9Q@~-p|Nk;A!_UgFjq<*fdK@I zh~Fk-M_y8jHU4GWRM7DEZqOT}edNB`N_u?*Hbz5;qsK>iPfJL~RxJ-NoWPT(UzgD? zy;hvt6h>qk=kCDStwfKJq}TrG;v0T8JmjTbL#OJULhCG`LW?BNEu1Bh2*~AD@s1=_ zZ&r&BC5y{=#4kv?DE}}Qa{&LtLJ=Fh+4A>$$8}+Ik}SQQX~Kf;$9v zcXxMp2_9f@cMlL;gS%UB2=2ix5Zqnf$@l+t@4N5b`>M`Vb*;13?mgXmYUZ5Xy~jtE z*v?4a$DoyIe$nj!B7LvkgGbNg+Wx3Hl|my~Q13$JH0M zrRstzQ;m9RUbH_upFy*03mmCVBkn#%R8}tchO$i88n=e1GZ@|Lg*K_cnWK3o>az|) zA9?lx9=Pp2VpCWsiy#mhqW#=nhh#WQk4;GO`JdH0UHH}(0}8Gs zNd+1OV>=#ugp@?`sAy*Y%=-cvrwfHl+Ih@Fx`^>K@UFw#`Rw+an>&UGJ!+<=xg8BPzBWy6 zs*r0^u9Cb^@SuI-csoCQ_ex{s&8D8$nR_XH1Ame}5To=>>zGg^ROt z-CYEQ+N;QMEu-D9E!Cu*aPqpD7rt=gQ~bBG7>}cOB%fAXIF2~)!gYl**;JFf#@4w+ z;99Ghq(yFXr0B!@JZ6JX?kT`J&aY97gkr5|GvaQwGR8Qyqm()OS+}eu-~?~^r(#sw zkJ1cnvhYq%@$G2ER^D99T$9F)p7WMNh!zV26UIAguO+2pBNERI+lC-bEU(NxI>cv0 z6E+7ep`u;1os3E8)&vG#oEdy$Fo$V7AnU7_@?aOSKJ;cBoW18ybeblnx$H&K7qp$( zgSV`N?^a(YtDAi{x<#%AFSS`~ELIoMTeq00{jQKe>y_4MLJWJqbs!*c%dCEWzht#{ zc=a@XCxSblBVyzb&~x1`Qihy0?nivLK*jXCv3GFoXcV&GGnp-#|H>_Vb z{i^&hYxyy@(*9R_OiDj-;qch3iJ2Flz9;LD!z$+9zv0ja^Z3Y=R&e*U0D0s4irwz# zAMdP}UzfXIcRSnfBFPeY4m&y&i~+jDQm(49WG}F+uQOe;X~p$mG;}tVf|vHnzhy|W zm@xug>NftMqpc!}liBxH=!v@=YU6rX=ESV{PxV<3Yu;{z!FnND{(q-|O8+|z1pQxWAm#rh4Fvpm9*9~|`M=XZ6vl{Zh*n=>)XW{Eds6>GC(V|1 z6>WD{Dzo)`|H6Xx^;2-1EkusKN^M5d?bs06Eker=uLchk1w)e2z+oDf&Q@!(cxiqH zVuijt0HdFK4rS_$Q)SV0;DnzB`A6bMw%K|+9=w)K5s7SOXrcn(-{dpEP{6*Y>`jTR zQA&ILbCCk_$BzN3=AIk>2CImz@<_3vVNrw>(}q7%xUXZFYshrt-S$0pbQl|g{jhNd z*^_}ic{MLHy_Z2W3@`i`Lk+?0>i%6|p$+1|t1M^HeZCzR`@$L?Arq6Xt69huf9_Xz(u;R1BK}Ur%lw=g zwM5#?;pyoyR*Vj3-9t0R8qwUd`f;?a-1fBqIg+RN;I>1zmoz0cG4MI!cX>|Tn>Chk z8w~{+q0F1lc}j8ZR$K2ZQ*qwW*&km@K89>{SZwWX!LXh_@C`3(Ddf~1xt8sJ(zOjf@y z|6a;DY5lPbjANg2APvlX?fo?J*|sF)3esgaTqN>jTrXeEw%9YIe|gV(#Ob$(jEsRk zmFsS)PyNx{1n1xsO&~)qV~N>3L1~U3kTd$-0HU6ZM{@(3yx6>>tYUBS_lL>Q zpu3oGE4nbc^*?{BKW$qg5PLq+*GuXxHVO1&6bZ01n)+ig9RBkL369R`J}Et%sMwP zPZ`5I0ZQbbe9q_giYK4BhdATdaB%{pRAgC3p`3~&(70Ml3S1;?&MjnM^AF{ZpUCZ! zF_!q*PoTem-3Glz3QOxYv^;TX=$0$}?Jx7`O;L)B$Bk-zKsVNK=prK=VdPd~xIBAv zV)iMO6jzWuj1OJ_SYe|Q(VF&kza61ZAe+$e0dMtT9+9iucicL@nJ{M(dfW{yHorOv zejDn2$FxaMPmw_>!T8i0a-Q`1pH$F)ZG`!kt2u<`jQzI>h6_~kiSqxRt8uh+H?=Tz zH)Xc_;_URlCv1TKSqUmGMcEmX4Q;45`T$d=KMsRdO{vlW@GWBium8))hXHQ(lLvhP zA}WMSN@t~r=UIue68Re3*{|$aZ&GKVH#NkX)AET@oL6U&_Xk%I)*ES+&GL|{_vOH( zUSVBZ2LW@rpToY7+POZ)SsU0uIDtC0NB-=~dBEGjh+DI+kiRyY>Z+!Xvb+kW1(8G&D5NF!?d z#^-(MoWuh}1eXM+jm2Xp+`hiU{?E-&|6(BEqAxiM6a&c+U|_`m_ZU!<6jxT0_}?cV zH21)NmjUybn~X0M!3y7bqx?cMDgs`@Xw?r#tCCMf)CFa4m&R+@QrWDT(8=s;-m8&6YOo6gt=WBhMQ7eFyBXi&@PGIKA}>?$ z(%ttKec1KGRbZJzf{xuc8sXmr^DVJ4Uw?*{yeYRB`H-`^zcWkH8F_S*qGZB0f0GS;cdLGP0NUz$ zDucEBM6tJ~>7#3-TXe1@p`rR=^|tO*Js#E`l*E#wsur7{%j`X@ro5)wt@FOz125;i z?74>R7Jqhi6g3r_ThIbUbf9n?uyl#~TpTzDKA;?++U8K-kPFJg%memepNx7M_hI{z zFR*(cwVxZYDQw`1n*_!IQ!t_!VmTf@a0;`S*bnS^U9E%|8PA3w2lTkjFLNpqSFR=-I-#I31wz*;RIr{YMLwo!D>%5KsbKtCl{eS zBuV6PR)d~Y79`kv_hVPu_`L^j@qD8fSEF$B>vlgYRtV4EYntInc$RQl$cH7gDayo8 zSm4sS9C!zatf{U3yW=!?I&msBbnTy#WXn=gxl^*XH=0j*oOhap9eR z;m5$NxSPF3jb$V9UXL$M1C;xs!na-dF^W`~Nyj2!4uo2tEf|$PLnW-K3hYEuNRK*l z;ZEb{>~ASW?L%q{J)%1at39f;^P(>i%q0xt#Uh&KbWA_e4y(U4CKjv}|7AVKlda+? zZkQs!(wS3a&D?gT;=k^pxS%-VviMAVoWoVJyK3%tjUcCIy5h5s4V0%o5c#kuZ{j(R z{k|@_zJcDJ%lCJ6U`1N8uq(%l@0uVzSo9EY^e%G~rXMJ8I!E2@eXq!C^~P~Pyh_(t z>a?TtpQryus$4wRuFyiq^$=^s@98Au^01D;XZvTgR?(k6d(=X`{Z8|0Y3bwjzOP2G z_xHwCHq-Yn=!%?>W&9yB zSx-BTATP>n336lDpD3vBpC(jMPE?0-X2+c~nGJ)Vj9_GEP2EToF~9pVPvuh}Uj#fB z=USr%bHdXn#PvI19@G`IdOLlgzY$5>Vag3s9^;S!5KP`w>HsMaE4JH!giK< z6U+w4+@#P9nWBJ3s9uY0!?MZm*{0`o250Qz#cqTb4mYKfUwJ42(SO7HvTrvyMBd}) zEfWTubTnZn3%yF#^z|f|ued1PPBK-M9-I;K^Sb_yXG3$J&B~XOA`jr3{(1!P-lxNN zG+OdZOUd2C<_WJmx~#?s31n*-x=K^oR|Dd8!)GL)ew+g7+KfJ$QJxH4g{d5bx|xn} zxy!J+c{x$M;oDDz=dXl+#wSoZO*OA9q?yHA7I1^)+kEM$FU@IXGnOyhEOCPu;Re^V zJjzLXsseb*8pF%`1PFcab$Qm%PPr~zft--1@a=BJ#Y)`#DYR3%9^L&~og=i{x4F9C ztagGUR$%}Qu!EW|YDj~b-nBn2zmdtR0pNzPbX=QVnDnnY^!9xczx)ws))R=kXRu1g zf`>Ai*0YC{o^RAY0WXU8#6FdBXz1yWqkmY>ly-=e{=5u}zc$@*?I2nuRCXyKAZ+Fq zZ2Tqngn>y+Ti41QAC;eU0=b`EDHM91y-g(7a|M{?S(VT?Q{*dyxuQDbn1Ze&>@pv} zlsB+}d-9>v+WsUyIvp`1O^8G;Oe&FJ>5+7)No-n7DXx&M&=jZYhJRY6fy`c^eJ8=D z;>ptxqNTT%YZ`BNd0^E|tK5FAAv)=i)SGZuB=C1M#qfpswwBS-r=C7k)7Mfxm5sec zUsq!NX9Mq80F`;Q^tV`g{amd(7Hj!2&w-K6Yrg7?@`hH1Qw?JuQCZyj>huw0 zt(O)i>9AM$$?MFCngqYCUrV3TA;9rqC{PKjcnLB{Ky4tvO_*IeeAS|Qh}%FnDw3Ubfc4+^;v6E{DP#ADjDaDwSBF2Nv?@Wyu;D6r{}q(H6FVu zN&O88-g9orE zEvaNP>+VEViV^hO*LkDciV+N3mc}_qEaLe|Dho|rPTx-T)t2#4B5Y9UPf;0zoRSHj zNNdEo+H-J@1Sz>II=FUsKS3;d)c-hv(RQL$S&jq7UHHFm`)b!*G!qnft!0ug^SW)Y z$%T|V1k2Y)bJs8jHHSLXXmSAwyl&M7As#v`+Wa~1Z8U9ejtN)+ahu)o3Wf*cnj2c5 zkh=2?=(I-C;|;#GMlxt)WxibZtdH#&3EvX8pW?OuN<$7Cj~ibsUvKO6 znL8ym^w?|V*6t$-B8T-#b!OR84Jgl{KQdn4$FFe;&X|D&*Z%i7&`J*lj{RTH1Kh!} zKIa)S(BKUJ*9QVE*)N#Vc>e4-I=|YeRx^nm>RGskslx+EW zwY@&gzvor-;)``LBZ_HBh2qsrm#zChvdnB1Oed4h{PBq~` zM+!@s)sSGh2!Y=Fy7H|~HJGfFBAD`6B?j-S?2<dosRBmzbk0j;|LAi@(AeA}^oyE^c?qA+E z6XF(FKP#)v3nYK5kl1=xnI8h^ofsD1Mt32qld9pY+P}Q`H;L*?%4Am$#Pr+H0EOLR z{N6%;zPHc zbz;&PjwsLU$A$-}?&=Oa4qv>-H)h4riCTD%qI2B9?08_w7|df>K`3x1)*61koH@O!J>dgOMgd zg=uV2!`(K^$_07+Y3}MNKdr+$kl1{Q#r{2jHwsrWkUa4^Z!B2j%{cWVC&5qnI!@E*^<=rK0pHw&08UdH zb4si6Tej5jz6uY4{4i!(|6IMI)#=lpb<`3cg}KMO>BTCWPejTRDKUs*oSYwiUeo<4 zdBn2*S7$Ljk?C1l{nS?YMRs;SigprFbb=FrJnhDncTVZg9xpQV?Y2(u)ELWe+MkKfVpA-tYB~sXe$Lj; zBxL-|*Us`BPG`Tw`HA`Cjk2Vq%E;RO3XyK2-y}uMQmreTHdyy$-6^VoRu$^7U`Zj| zwCz*o&^h^-ZEPJJ-{c{S2HuWT5DUQ*@EyQI7%)y`-A`pIBS=z-U6&80apYaqaK~4~ zBprnhLp5NNqnSlzQ;VNq8-mgOE3IgXC1vlzv4u$0YZ^<`tjk&X z7QDMK}tU7p*2N_pu!F@xy4;_50I^`$?!$PY|P} zn@GWF8q#Tof5UR(+i$nL@b2HQf$u7XLBf5t1PQ185`LkwFoZ}05(KB|hApQ~%p**z zcPOTpuHSD1Um&Ms7?rlq8OPE0-P+yJ&`J>#a#KZ?)cY$^Y)uX{7Vf@z%#i1)a+d? zz|4}RGZpye;X5b{n~NZ(cd&lV>t*m`!6YnQHbxM$(HgOm?onHD zrl;skuk6{(R7n^I#fr>ikye$8O`CR*US;Ppm!9S<;Uak>-Tg{zmqKTs*xA%$*Vh(u z;Lojn(0>Z?@x)l{Y%~go{%gVM8C@>a-lyt#?C<>68*+v_BDmat?ic-t;8Nh|OQ4d< z5l=f9TBKlLX4Rlyz8MLK;Di}ydJr%GsG#8jsFIM6#;+Lxo4cn;-Jb<3#()YsH%bT*vE-#d5f$VoC`O@? zzi7|0WHQ?{iv{6BlAOYMHwo{`AC(`XZ=_(yK*=NQqb#zJofuOLVoj9iWN!giTjGZZ zu@FBlpKtg}FncrvNo^UAPAcx`6_&ys)EEDhSDzu#>89YWK$bOjc9zVOvHPc+>zm-7 zPdf@wxWKlQ3xkU|m$wPeBN-ffJ{*MK!9h`GZ46mL?U%G$2ra4eTRC3Q^?HDP>b_;*^C3@W&t7w1x{UfY} zuz+*bg1;Nn;YV9;?HUBV^BZWpBUPb+wj*xTrU#bx_ORYMq02NhUMH)8Msfx}uwo!% zSJ^hd*c^EQQi+Nu4P7Z@o{71fmhl#;+}Sng>7G+8M8bv)#i2aEfNY_b>}9bU2phz5 ziTa_E9a%H~WCIn)#O$yD<~|HOEyV_-rrT#Lea$HM%ENZA(L*zktK z4=ncNfi2!mGrzHKJ>Xbl>&_GhKhw0nkCifCS}Qj=GT|H#`*DO>;ovR~y9naC2mg7N zwlNj`B7-;LMIZ)i18;pox=j?LTn?MPl9<*Uyo7_xB`R)H-0O96LE+Gt?=i~eK++@| z%C(!>g7AC1s8M{$7q6MPskJSi?%v~z3=ob2QnbNl9Tz$Ib0By}s33ER0EbIkY1};A z<~;(=#-<;wPH&FIC#&=|o=P$@48!t48Zn6aG7JH|6ves*p|xubUVQonD|M&f{)5#C z66j038bzEX$tK{kxyw>TH#^<|yA=LCQlRP2@NI0Jv zTHomlU%2-uh&yx)R_;B+ortJ9^bA&5Jj31nN2^gK-7yh6!ubkc-9yfCa6KbVAPnzB zGlX{jyw$T`1WyMo^~w9(c+wZAI>(a&EhZogsW$xRyh8NhWj zG5_S8FG$!d60XljRS9>r+b0qeb7@iy9b!^91dY;AYk!m= z3otqn8q7wMw%SO~EKUv?%Ep%8J zCFUYujwD^`hr%|n30=)mBNRY(n_;E;WMU9oO8JbrgH)d(yVrtM=iE)U@R7|KnNO+h zkQ8rUnBRoBRr|6p8ch^r7*I9da`k&*@6^ate;0~XKAuC;dB!+Wi1R3JGrrZx_c9pv z@rRjfSjhy%?$-Ne1OOw!_2kfQ)kYj$J2pLzCB@nZqa5r>>OB2s*#JPNNMc@V(&X}&f#zOa z@3Z?{t!Vn@`5$3)bv+zX0cB7e{NN=yc691KlMoyo8PRzAF{EC9rjKIrjGYk>HuMCk z-YDBkA7a}%dU*bMQ7c2iH)8!ro6X~ZQWV9h0{Y`ZxCqAT9!Bi4A&6@c4=2_m+_&)> zqCa@oU^-Ap6WCm7ciJii7f__cBKl?@H_k9cPdkM;rF4&jlhsIb`kUR_Ype@-q^3E2 zzp|xFu9>eJ0rAa8cQaA@r&gg)m zRAI4{ZVnFiTE(=3lNJlswKK+azDFCR&r?OQf@o(vC1|G%55Zzccv?R{QNm=q0xa5B zm5ZcZ%)h9o4x@`K`mw4cu*P%xcQNJ0$#VK7-m1@o6UmpZVZ|LpTlPn|nE-(TY;OR` zQ*d`8Ec`R?TUCIR@Y&L|=GhPCH^v3!`)9deXhv$*feYBStkv^CuGhV#=^UFJL8h+x zd@I8@EC98b<_S&}Op8z*?w1<2q;qRo=n@$?Pg1+QxGV^pqlfVFOF*nh7QyOoF3`TbQ@}0Ff*L^1`Fm^N0K`QLU=} za6en7Qc+R4tu;(vgot$;)rQCy$kcjV9Yn3o?7rhG1?n2;BxO^YV8X-7D1-g%9W%M%eMy%!YdB6=?^# zdgue{%-sS4_3gI}mkaxI@&oE|@+|PMQmsY?&7E}JI31_eu(tDZ&*x^O-1d#N{!}dD ze+xX<^wUY4mfh@qgNUmLbl$lB_Q*H4Hx#Pjg4+eSKY zF(zz`K_zua=>rHl@FjH!<0hO{LCtk2O9TEc!UABZKViJ#NW!JJRafA$P1prs5(WSq zZ;0H`vTa*$nB1_#Z69xNqtNP0j4q_wzREh}mI3=ZNTUdD6Phk~=l-=zl+$3Z9YJqW z&jHv=az7~20h&5kp|I)gFOLxSKQro3?+3tn;3Bpec#w<-xLu%n!Y;OH{ZNJb5-u@c zk$U@TF9}~!fWEv-+*jm}zTQhx8zbQH6Nc6RR8>4@9re=B-$!EHOQMLFZ15+AKYhIs za-++3{(8eKjlis+5t^C{U}kUY9`%>5AZ42)Iz(CT@vb1~n-e<3oYe_Zo5L#fYn(>f zuE6t~^Lh4vsb}yUIQJ&G@4Km|F$(Oy6g!RcuVc9%c;^9w-6bQ66?dUU89)NM;8=!t zGNUM5DC2+5^1zJj@(?9pUSi}#rnr3ebw#i;<$89Z|6{`ZXNMyvKH%2~7>)_KQM9B^ ztY}UU6%VHMjzdmJ#?FB^v{97y&Z0N6QOuVszAh5yKEf;NE_~;HA0ATYp|wlTF35{P zXm8xjxQFfTHZlN{O*v0PGN1^j!)JySKIN@Ps7u100yq&{G=<^{KSJLwlNN+UM9c^y_uXot_5-uQS zYe)5!1n48ZqIty!`i-x+Ux`2Zgs)g$2|xOQE8&H~zhLN^MNpt^D&^FRg}?VdaW9g` zV9-S!Cl~s@?bRJM5dh2$JKU4QX>Hl-&jJhf>wZCgykPKSD`IBKwPdgBQRL+_|#6+WhRhLem!gr0=X^*#cI#p#l)wk8LN+iPaOb5PJ zDmYY3EwZ3JYDiY7e)==ELwwXL564G;JPMUWUeN2G<{S~cdf@f4%Er+*aa-Z368SBD zlL^W;dQJxbilMP9T#06{NrKLc%heYGFcE(TnV(}{PDS(aFF2wN;~= z0>3CMj}hO1F*T_d$*Vjv_=omkfM5J5uLPmwCKV!H>I;(vPDNmK3Vodn$LA_uxQ87X zh_^n`Q(wwEW1`NnAvVQT6Uy5~NcnH3TFobb+w0D5{L-0#P~f#iPkh-YWN*szn^^&)?SZlG=3`|##{z&ur5?*Ev8 zYRf1zQq_>wC&FVI*G7B{i)N1fjQJgDJxF~C&d*u0o7kRvbZr^In^e-D$ew$Abs6*u z24hKoV!I1Cx~b+`+{=LIXWj)P{Pm#w7pR`z!uR-Q!eZP9#78hmNE4L>Xi;*=i3mY# zc~kNfcM5)-Q%DGYm06JyX0~x%60AqjXc)HFt4?$pqrE!>plrn6{$VJ1i|jH48~G1? zk`g|A$i#HS3X64~!^93bI8mVuoI)f7z=Pzs<4mo|*b&X}cdC`?dR6K6S`(=-BFv_| zupp;UQax7}o(qo}ad^|vM}jPZjsS;Kn8;~FIH=;(URI&;luoQgL8-y;sT|FMcAO`u zm4PGTPcg=e4^m$ogm+S5OyPOI1`LrI5K1=%x6=ID@*8g^8|v9i5?8#Hp4d4MFx2g_ zM_qD)TAQwVL8-?1FJkPXvry(=k!Vs6!;UZ{GX_l)`hD-93%-@x zm=WFMRT~;(70O0a4}oAl&&nAEEe>9kudz!_EbvL%N!%!3ky?(7aIyfp=u(h!)@p-6 zEVYD|0faXkYll(mt9pWr94xPej+TvDJ1A$#mUbK3l+tI}f!exLZ&_#uwBu0&Bq5J2 z;x=yB2g9Zbs(xP$Bd@UzKs}23eHFJUrOU#J5R|%dEJIV&=J;-0nFRrLwg7lmEpMeR zzeT^I*P=G`0;hlCzEAa1)gCg8C&-9|yM^iATT`;JXSPC<<Ww&mG>@|R%BZIDk5j5UEFRaDf+Y2Z5Kyde~flZByyCg_hl3@%tn-*OY z3xJ03)~$BNpycQW&ncT6OD|SoCAJ}Pgdohsq`%mgxI%l7MVt0^^MiZXPb-2nf1aW9CLjnw`}Jyi`+t=;TF6D zt}XaUKgk;qLx+|WJ6Rul!_FaQ_Vd%%f_BAOM^?7+kxySve_W$-UT^&h%NbRw7akb> zA+fVkNE&+VDcL%(|B*BvWGIZVN*sM2InNwIbVyUsp+5WF^|xi};VYvBA{GEzHNyl9n*fiekLfaQ$|YmB_dJs9QRQ+sm|i=J{Kc z7Usz0I+ZrnAPc4h_6V=Lr&vrsWz04>ETh4=atk>iUw zmS7Rf0X%*m$$rk!Gr=-X?au@1DyFHPW@BezdT(UZ^Yjs8O=D$mS~*@@mBtb*V-;^& zn_gRm5^(TF@T@Nn-&%!g_ea==318Dcrplme%nhtB3E%m9_iL>UoG@!~qUH^J37t2Yfe>}9YCdclAA$K^_Ug^Yzo z3YY-0ZG&L(Q3*g;4ee6|9x6UaPk+ivVkO}4&&h^;Qd0plkdtc$hyvr@3)|eUUf5&8 z!`{EPTVK62nJ#(uTtl`lw-zZsp!VQHwyw7poBL8?X^;a3faSzj_1Ln1oh&avCbnn!UcS5;=Zavvos$qF-+%mQ+s2AU4;M-{9SL&mE?DE`cx^;6p@Ol!vJbxN)?nrqR6&q#iIZ^vt<{f#M5Jas0E%&N8oDIS% zxzbUA5vnm#s48+0i_C;awE3B4^mKTzTPNl&&%*9Fsjg;9Y3ed6oao zh%5VetK)bn#Q^fI0-(Q|@50|tQhtE%g>ZDvQgCNHM#Q4dp8{G5>tffWY(jF4gn|u4 zgThvRIaaN{7BpkP&qvBhr`ypfjE~eS+pLY_Btyy%{JqA1>ekf9!`SKhQ>}zk`X?4V z?LCf7L3V2hw1QJrfsLVvXlA`WudjsXiF?mTxUt89Q1B z0rS^%t5!x|nz4_mN5M%ao!cplyur*=t5$%qW7@)JAyO}Eqwc5&qZadyqtkNsjgnLX zG_Wz7lDlMyAYn)EzBQSZOd}zVpvW#e20Lh|V>UIf+0ofc{;?Ey*)iEcQxdajc-@HB z_#dVCZX-tHe|YNGjp&X4;mPkdVmAKckOE3R#%ION?3m9xfEN1_L#Wt~oV)uXO; zqIBrS9Np~?#>_3v4k%j}YtyJf`N$i}*4g?rssznQ&E$2hX{}@dEh;TVH$p=|pZ8iP zPKRmC@y@Yi)ZD}D4#aFvBTL|ncymj<;nbhsy-o)R$jXOqk25E_y%Jb1mkeSPX@J^^E3A`F zKILlrvspIZt+)*|c&}F?S7SYx0^+(|G>K(%_P;Q{^Q6cM`!!5?QCBG5P`$ z!KhpiHbmb|vWB*%LD_U$j+`|I`=b2R8{aG(V!)Yaw#^}rH$ri+Zmw^(=1##nm=>LI z7I|jp|8XIQfvfcQ@ksKPzQ;uhs8kUXYN2UishPARksBXD8AKUs#y^v=eOgIcsc++| z?5E`eqzgS`zQy3OD<#Vs|%U0dL)rN&UX*@x$we6%eB?v|eM%y=@%O0GWE1OO4{zf{{;1j<8 zbWdM1*`QSNWKPCb*Tyx#m-d<>(iTDef7nCJEQo zmMNi5l~418;B>mhFwtDVTt%uUw>Cwd)WJ`(+yWt^Am_XLY&fzU14AN1=5T-he#x>4 z42cSvKOHt&CW0gqBbqzvum7spJ5-Pt{u(CKol1?rtpe=MNIi&|%TqCD{lVX6-L3oC z5$ojuQVv87Af7aAw%OKz$CJg&Y}sqEEO9^*$r63*S&rST#E0RD<^kPe?(`Iy`(_7c zB}v;oQkP#Lh{TE1ZIXr)An^4y8j)OxTn$VOmv9y(Ac>TTjCC^VB{`SD zXwYb|fF(;uRYmT;sKF=@cMHaT7+mR-lHKJ*RByr|rxP6LtFghcFx;uZmS!uD+nIV3yV)b3}7gbuzAyYARrP zQg|Bcm`~shzM#6`xN4aiN}10sK;|gs0ERjliU>{^ZN{PJ}DRJhTAYW6;vpi=W&9sneONqAy3hjOewQ3YHEAsdCM*gsc{WcW4 zRBQ|T$gRqG)~8RengJsD?Y@E>TPm)AYYS}4uVb#{w3UKjrev-n$}I|t6)yu~V{P;a zSr2G8oU=A87m8)!+alY_-G1wMev=T)`W6@y6@z#@*19^g4`m=`VAfLf+Jda8+*dMK z0-f>e?`{DdLR)NG)pqhhLVAHMLR(H-S3b$%0&doiK!!*LgyS&)oFohMA9fT2;<0N_ zAA+K8pXQ(@^xeL(NJJ^qw%smp9PFF(;8IY5*cRSaYDTN$bU}$TdkSqJZ=k-Aom9ESXfM2Oht{4GwEEp6!z9 znbV{}AFWxcZbW?}rx$op)T|ZpQq9sSbS(MsKce0ZE^9iTJ&0%}Flo}qW0s>U{qEsy zg915>xi`rdo3VQ*d#KoQD~oB@td~dr2D5zJOf9UO!*h)KKNroXB*SKGV1aW`X#Sty zh5SDkzDvPpaA1Qoz-nCE>k5Dtky&AbV?aWHP+vT7rvHJ~;DNWn{X=cY!Rh`7nn?~` zgbYasYmgzt0)jWV=d}KraAE=PiT+1s?)ZO^jXJ;q6y&I`OF4z#lPLeG=$3Ij3Qk0$ zy8fS@|G%$7WMlr!{lB=$G6qilKe{#;124lxmV&>MtA95OUo`>)!^}Y20Vn$(1nwPh zFC3svHD5HbVdKn+NR=e3(Bb@u>(jxx5CO6Z6oN%F7*@v*vgnQZ8|WACmzL=l)E6$G z!MFjxwM!d3^#DIlCH|Ud5uI+t1=r}U0`N3fkf~p zV5Ud>xR+0d3Ko?6j&EIr3-$Zb4V1pon{`Kw~BI{--!*WyHYd&zT@f6 zBk<}`DIZl;Pd%rVfuVRO{eBK4-Ci!|u8Dd+%BZ*jrD6P^C^zzk!I)s*hT9zbBQO?` zzr$XUvuO4zCXnf%D+U`Z2L`z4B@V=dOKMA^*-M5x`*)V1SlMS@ds{Q_SOeZWfkEr_ z2^HidUh6(#LmgH2ZSzcVI}T3GA{lPm*th$1Gf{dpmr-`^?&z!JP21#_m+cKu*Z)7#G&iE>p;;w!PLnP$=%y#oBp1_F_%G@{WjSD!g+-ff7c#2G5c`jjSLP|VG zCYurrudh$*&tvXmh=88La%Q;xpYJAu2Y#85_ovj;-?@5Ax83n826(mNw@rb*hSE^f z%f31k!TDAcwM#$G$c<)-dMWvD80>R=fwl(zW+Ip`!S%ZEJ+%hM?g7aaUw&0`mL9a0 zSdd9v9BPpNsQ^_$7`0C6iRL}oX8Dt)l7ZVX3aWI!Tje{*_#5z?g|RQ!nX@Xn{pGbO z^?dT}GbRD0H4812=*p}X%wA&|i}*EJO}^gBPZbnb7}aUrb_+IBb5^hR%9r=3Fyrsw zLMy`$Yj=T;26mttbtoEWTgi`gNgKrC2IlJzUf`pgQqBzbQ|8S}W3 z-%1T|=Givoum#D%lKt8xc#Q|=%pIgKu$s@*N_s3b$F*n3`q+#Y6Ps3fGGt%Di2xZI zZ&IZ!qA3~+>*kfxw^3Mj!lZc31|GO8YdnJaRLWER3;zXy$Y`>_Iw6XMoy#PMQ+WpaTU?i-&g@YEhtPxjDS-#^lEur3O354fJn4h}qZYjF?g zY^gNA?)L!w{g`h~M_h>Fn=G)#=45G}?52v4ReA$SzBzyMc;)*>)0qlwUhc*xDaB2X-6%F2% zfjZySzG1yixxBtCJRH<~{E1(!9pkfMp?b!UgVgFcUAK8lUnZ{{tAYgdR^YAQ=&kAJ5m0 zZ-{gVx^0qZmG|U%P9_i*@FBo^LoJ3X>m*lVFexRA@4YsnKtzUTPBKjC?cH={4LRn= zufX)T!etwu!s64JDg!xhB88mHJdB3E*%ELtx&5EFyI{~WnO5qi0nN=Y`je1>CxIjl zBQ6RFzJd?&rh3yU@Emb)@SsFF{++P0Z@wmhx}3)%lo3Z29@wkzFL+=bpZL+OQNu<@OjFL_^wm`@m9er5(lSf1yF3fK5?axz7Y{u)&%}&C{iJ=1sIM>fRs;iTD z9k5W%kW$l*A&+koBMX<~+t~dS{p7n~)IB$@>g(WSjXyfuOaz8lL|lt|)!u`_346x2 zr1g;>@khYVPxu2>k86QV>nSMm(&$}wA9TD0!$dgizev}R0U07{ZX_Yorw$>?X?_^h z)-Fsm?Jx7sHb*l__p@GnFA$8UgpV7gj_i@;0$1rm*#8dzRzRu0+g zjvqgH8X5Ao9)eJt9y+H3B9rBCs0)$3GTs5_h`3{zEAsf|S-XX7Oq_?{B7f-&Wh8WW zLh$`wXAa$X}Hz4m~Jrwp&fwKtDPe?nK zK{>Yug>F+E51XTFZO*gASbq{rZ}1ro9N(mtgFyGhSZXc?V3B2QpfcD9k;c>v+BG@= zX&MVi=rs9^FTxc>5;xe?M36HolU*)Dp7uav z8=>robzJByZXJiJ5$UXG~2?I1X?;0}L!EmkFNov)PBkAG!VTorV$xLzTW z7MzU>?qD%H!QCYF;Q9#G5JZ_!q(oXF6^%mjt)~y`@qR@ zvH@Y4Ekra!-5A|-Q7W>}j}s)qSEycvm<2>Hwqv}Txy$R>vBrjudX>DR1zME9a2s?N z34>4~p%CrsIOfHQkss4DeYeQWoKEQNv!mSIh_eD_qn}m-PVxB!3nbF&eNjx4@y> zOm4hpgh2&1FR-CbjNrAs#-C@~U>1JXh(K3^W+^v#Tg!y??o+<<)b~X0w8PK?as3DEVq1ZQ5ap!mv1@E8z3ikL8{kX^~0y z)K?hXp{vr>DvX%NPlLXwZEjM1E3T`2e_gIO3#<+aOQfM_O++IEmpI~UYXcU#u2x{p zjE;fT(%>zr-e7lKt0f3}8kz5l=7-Itypr*I0IqYDvn!A~F-qhnaiwOlxg6Jv&DCUL zE)Ys)NLS_(-H)?(q&-1!Kd3$vtnCOI=s}gQOPMax{M^Vl1DDEhDaprz+@IHFuhy7q z2v$tJJ1|B6R^e<#}*%TA7PIMZl z5hR$j7GGhfF(sOMmR%__G%-03m+-~D{(|Wxg0YK+AS}7SY=o(r ziEj@ihZkrTM}JQTN&N&L-F?WlAjSJrb2z2d%_xvmDFL^nM7zAqLP0QXHf!{itMoTe z3DH6PI$x~E;0~L-e)SX|H}cChB$^@vO-5xJA%|5~zr%Hc9xj))lUojuc|d{I4afvg z&5@psrg#o6>9A{7xGpsm41U9*)&3HNKPjut64K`mS%2TES_=RUENs+hFd13BSy8VS z*{yjxT9j8vOEd_mO1Z)oLIFW8P;=F=kfA9Mpj4~=5@JWWh}B9Zmw<%iuW3*=(S!*L zmYU7+4~xC0kbA~6D&0?hkI6ddw&(i8>VGVTQqty%sZ%NARY1-HiVIXq3&q=Cy!j(X3ZoWwlF?E}nO znLZ|MBg&Vg1p*>}{Y79;p=D&of8?&K*VtZ7h@rFo>9&+5RE^|M50o4db)x*ICu$&b z6z_qKCh=dXWGgyVMSi6dPYV?Jc|~t2kzdf1XJrin#|H^X_Qz1#z-}!;N{J5#zl=Ft zK5l7+3eLb1&LP z*IET>*d0N^{4zpOUERXq>4KV~x>;OKu6XEU7UWQX*SEmLdltoRV}_+jLO1N$<2|El z1nBCh^H>IdBLY@Bs2+c{VOUYfm6LZ3o$nA=1%fhD;N1$Te3$KO0GTgKu^Py*wGvhV zKn9CGBF$u-sZ-4lJPJcnYHUb1@Yn@Ep>V+>GJ41*DXok=C9%QMUbIQynIxyYVKXAU ze97}By{Q>r3G;3b9b}3&Fz~uqQA#`(I26$WZj0i7UCu5fAWEn~mU&%+tWt=qGH^pd zN5=hv=f_r#%t;={H3qDHHi+-^Mh)1y;YzYf^})ZaWOtBf9t90t{)njS(!wxCoMr%% zlhd3e>8$TH>}30$Lad7xMqTS4ORf;3EiItZ0)NfI%cn?3OD7uiL)(b@NkB7fV9mod z2-GNl(bGW#4TX5?o^3EP=8`1Y*Ppgn5Qf0~Fy=B!`kyf0td5v{*lfpaI4YhXYi3QF zeS?4WlyxTBA1zdd=JG%@agWjH^;?5mOpnN99`mEEmd34h%NEwkEsNC#SSv$Qr-vBA zmJBT4n4d3@Q3yOSp$)(OBFR6%^pR6qAsa`39iQ%BosWk1BafX#KaX?r53|?*Q)7T~ zPki_!!6YuIVLqTFqJe^B^YQKvXiNht1pyH}$!4X*HN$OS=M?|J7xVD*5?F+`-7>*h zU3SDFr8~&c8|jQ{(J`ySaEkZ`orPxo=oG-GIa^$3^|fyP3{ArMK3m+T&WwQv6TBUN z2gldQw$(VW|3*v>9s(|pyyUzc3k60v2oBY7z@~Bu=~|Vvvm+3=pw_%`?Z{57>s$3$ zwwwj^p+FDCFEECW8oOP`R&0aw`ObVlEf*--_>k0+?l>&C11vvET@QFnXi?`3}ESBuTw@p8ZPkyjh;1+by4k{iPD;n=&>uDJ9-Vc%k)wvQO>w z(|!mDpW=4_W;-KDZIMJ_PFowS)~!CJv2HyqA!P z!+s{>V1f|gA@s`BRDh3N6aycBJ0?5HUZ9LYz@)#jjeI4xr4!TQQWM#WFgpJ k8rj+HH2jPwO^bAh%>pq9AC0P;Ahl#AyR% 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 alfredfiltersresults + alfredfiltersresultsmatchmode + 0 argumenttrimmode 0 argumenttype @@ -124,7 +126,7 @@ Requires Viscosity app from https://www.sparklabs.com/viscosity/ version - 2.0.2 + 2.1 webaddress diff --git a/src/scripts/connect_vpn.scpt b/src/scripts/connect_vpn.scpt index 1ba6d241c92f5c9961edb71074dcdeb2eeffb84e..46de4c7a698b9c74ac3bfbc6dfb81b458efb3c9d 100644 GIT binary patch delta 55 wcmdm|uuow_1q%l&M_$#{D}45o8(8d_FMpDs?8z~2a{}vpCJdR)o*ZA<0XftZga7~l delta 55 wcmdm|uuow_1q%nu#oJX^%evQ0ZeX!zF3azk?8z~2a{}vpCJdR)o*ZA<0g@mWAOHXW diff --git a/src/scripts/disconnect_vpn.scpt b/src/scripts/disconnect_vpn.scpt index 02198091fa62bbf9d0a8a4c3c63b97ac970d487c..5f5bb199bf8c3ee2ee15df56ae64f689966255fd 100644 GIT binary patch delta 51 rcmdldu}@+{1q%l&M_$#{D}45o8(8d_FMpEXe2C>4Gp6V#4j*O!_pTF{ delta 51 rcmdldu}@+{1q%nu#oJX^%evQ0ZeX!zF3a!Pe2C>4Gp6V#4j*O!O3@ZG diff --git a/src/scripts/get_connections.scpt b/src/scripts/get_connections.scpt index 0439dfc3999695ef7bdec8af3cd1cdeef2b26627..124364a53e9b385f49a5aa6beb217b501e0b88d8 100644 GIT binary patch delta 596 zcmZ9JJ8u(F5QUG|j%?rSHBJEnS>e$lfm|UWAw{C$7f?qV+l00Ek?d}PXwp+=+r)Xl z?ZkN#hXnB(2u+G0@e?R%4zm`rgl}>6&1lZdxpRNr7&qnar+jWC=Y9NfT^x_+^5g06 zzaPcd`Jc}+{0bWlG*bd72^+lPrREjP3i1u#_9h%Vi~z;UxLqjE7Nt5{;uqZE1$%Jd z@?1+eR9@r-j0``+OUq>x;lTjUc&d4ZLIt_#ef?i&&C|ZRR(EXIj_Lu#L@#mUV1y?; z<`EBhpm`#~+5eTt!%EE~6f00k`!EV@Zwk;n?B{%^HqjpvCb@%w4VmdC<6LC%fL-o$ zj~%x0RI!VUvchVhxGxlasNHuI_XL}MRj4CW^(PyO?btHQ=~14?ZwqfqyYRWgZA@c^ zTZ+4~xv}RyQcWc11p)(s?Bg{z4Q>J{?j&#CPE1Tow4u2Xf6Lx|Si%f6rnt^Eu5yLT zT;d{IT;ROsdfdw1d!o43H{p4Ts{>;z17pi#Z0yyN#Gd8W6&HmfYx1#TODK%2NO3{P c@!r)m=ZF7slv{Dnd}$)t0#Y#l+}?Kn0%eNZ4FCWD literal 44386 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 diff --git a/src/viscosity.py b/src/viscosity.py index 8136326..575ec84 100644 --- a/src/viscosity.py +++ b/src/viscosity.py @@ -24,10 +24,12 @@ from __future__ import print_function, absolute_import from collections import namedtuple +from contextlib import contextmanager from operator import attrgetter import pipes import subprocess import sys +from time import time import docopt from workflow import Workflow3, ICON_WARNING @@ -42,6 +44,15 @@ VPN = namedtuple('VPN', ['name', 'active']) +@contextmanager +def timed(name=None): + """Context manager that logs execution time.""" + name = name or '' + start_time = time() + yield + log.debug('[%0.2fs] %s', time() - start_time, name) + + def run_script(script_name, *args): """Return output of script `script_name`. @@ -49,17 +60,19 @@ def run_script(script_name, *args): have extension `.scpt`. """ - script = wf.workflowfile('scripts/{0}.scpt'.format(script_name)) - cmd = ['/usr/bin/osascript', script.encode('utf-8')] - cmd += [a.encode('utf-8') for a in args] - proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) - proc.wait() - if proc.returncode != 0: - raise RuntimeError('Script `{0}` returned {1}'.format( - script, proc.returncode)) - output = wf.decode(proc.stdout.read()) - log.debug('Script : %r', script) - log.debug('Output : %r', output) + with timed('ran script ' + script_name): + script = wf.workflowfile('scripts/{0}.scpt'.format(script_name)) + cmd = ['/usr/bin/osascript', script.encode('utf-8')] + cmd += [a.encode('utf-8') for a in args] + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) + proc.wait() + if proc.returncode != 0: + raise RuntimeError('Script `{0}` returned {1}'.format( + script, proc.returncode)) + output = wf.decode(proc.stdout.read()) + # log.debug('Script : %r', script) + # log.debug('Output : %r', output) + return output @@ -69,22 +82,24 @@ def _load_connections(): Returns a list of VPN tuples. """ - connections = [] - output = run_script('get_connections').strip() - for line in output.split('\n'): - if '\t' not in line: - log.warning('Bad line : %r', line) - continue - name, status = line.split('\t') - if status == 'Connected': - status = True - else: - status = False - vpn = VPN(name, status) - connections.append(vpn) - log.info(vpn) - - connections.sort(key=attrgetter('name')) + with timed('loaded connections from Viscosity'): + connections = [] + output = run_script('get_connections').strip() + for line in output.split('\n'): + if '\t' not in line: + log.warning('Bad line : %r', line) + continue + name, status = line.split('\t') + if status == 'Connected': + status = True + else: + status = False + vpn = VPN(name, status) + connections.append(vpn) + # log.info(vpn) + + connections.sort(key=attrgetter('name')) + log.debug('%d total connection(s)', len(connections)) return connections @@ -143,8 +158,9 @@ def do_list(args): # --------------------------------------------------------- # Filter inactive connections if query: - connections = wf.filter(query, connections, attrgetter('name'), - min_score=30) + with timed('filtered connections'): + connections = wf.filter(query, connections, attrgetter('name'), + min_score=30) if not connections: wf.add_item('No matching connections.', @@ -189,7 +205,7 @@ def do_connect(args): name = args.get('') connections = filter_connections(False, name) for con in connections: - log.debug(u'Connecting `%s` ...', con.name) + log.debug(u'connecting "%s" ...', con.name) run_script('connect_vpn', con.name) @@ -198,7 +214,7 @@ def do_disconnect(args): name = args.get('') connections = filter_connections(True, name) for con in connections: - log.debug(u'Disconnecting `%s` ...', con.name) + log.debug(u'disconnecting "%s" ...', con.name) run_script('disconnect_vpn', con.name) diff --git a/src/workflow/version b/src/workflow/version index ec8f6a3..e787e4c 100644 --- a/src/workflow/version +++ b/src/workflow/version @@ -1 +1 @@ -1.27 \ No newline at end of file +1.28.1 \ No newline at end of file diff --git a/src/workflow/workflow.py b/src/workflow/workflow.py index 0d2dc4e..488ae3c 100644 --- a/src/workflow/workflow.py +++ b/src/workflow/workflow.py @@ -1959,10 +1959,8 @@ def filter(self, query, items, key=lambda x: x, ascending=False, ``query`` is case-insensitive. Any item that does not contain the entirety of ``query`` is rejected. - .. warning:: - - If ``query`` is an empty string or contains only whitespace, - a :class:`ValueError` will be raised. + If ``query`` is an empty string or contains only whitespace, + all items will match. :param query: query to test items against :type query: ``unicode`` @@ -2055,13 +2053,13 @@ def filter(self, query, items, key=lambda x: x, ascending=False, """ if not query: - raise ValueError('Empty `query`') + return items # Remove preceding/trailing spaces query = query.strip() if not query: - raise ValueError('`query` contains only whitespace') + return items # Use user override if there is one fold_diacritics = self.settings.get('__workflow_diacritic_folding', @@ -2244,15 +2242,16 @@ def run(self, func, text_errors=False): # Call workflow's entry function/method within a try-except block # to catch any errors and display an error message in Alfred try: - if self.version: - self.logger.debug('workflow version: %s', self.version) + self.logger.debug('---------- %s (%s) ----------', + self.name, self.version) + else: + self.logger.debug('---------- %s ----------', self.name) # Run update check if configured for self-updates. # This call has to go in the `run` try-except block, as it will # initialise `self.settings`, which will raise an exception # if `settings.json` isn't valid. - if self._update_settings: self.check_update() @@ -2275,7 +2274,7 @@ def run(self, func, text_errors=False): self._items = [] if self._name: name = self._name - elif self._bundleid: + elif self._bundleid: # pragma: no cover name = self._bundleid else: # pragma: no cover name = os.path.dirname(__file__) @@ -2286,7 +2285,7 @@ def run(self, func, text_errors=False): return 1 finally: - self.logger.debug('workflow finished in %0.3f seconds', + self.logger.debug('---------- finished in %0.3fs ----------', time.time() - start) return 0 @@ -2524,12 +2523,12 @@ def check_update(self, force=False): if self.prereleases: cmd.append('--prereleases') - self.logger.info('Checking for update ...') + self.logger.info('checking for update ...') run_in_background('__workflow_update_check', cmd) else: - self.logger.debug('Update check not due') + self.logger.debug('update check not due') def start_update(self): """Check for update and download and install new workflow file. @@ -2564,7 +2563,7 @@ def start_update(self): if self.prereleases: cmd.append('--prereleases') - self.logger.debug('Downloading update ...') + self.logger.debug('downloading update ...') run_in_background('__workflow_update_install', cmd) return True @@ -2598,14 +2597,14 @@ def save_password(self, account, password, service=None): try: self._call_security('add-generic-password', service, account, '-w', password) - self.logger.debug('Saved password : %s:%s', service, account) + self.logger.debug('saved password : %s:%s', service, account) except PasswordExists: - self.logger.debug('Password exists : %s:%s', service, account) + self.logger.debug('password exists : %s:%s', service, account) current_password = self.get_password(account, service) if current_password == password: - self.logger.debug('Password unchanged') + self.logger.debug('password unchanged') else: self.delete_password(account, service) @@ -2648,7 +2647,7 @@ def get_password(self, account, service=None): if h: password = unicode(binascii.unhexlify(h), 'utf-8') - self.logger.debug('Got password : %s:%s', service, account) + self.logger.debug('got password : %s:%s', service, account) return password @@ -2670,7 +2669,7 @@ def delete_password(self, account, service=None): self._call_security('delete-generic-password', service, account) - self.logger.debug('Deleted password : %s:%s', service, account) + self.logger.debug('deleted password : %s:%s', service, account) #################################################################### # Methods for workflow:* magic args @@ -2773,7 +2772,7 @@ def list_magic(): for name in sorted(self.magic_arguments.keys()): if name == 'magic': continue - arg = '{0}{1}'.format(self.magic_prefix, name) + arg = self.magic_prefix + name self.logger.debug(arg) if not isatty: @@ -2814,7 +2813,7 @@ def clear_settings(self): """Delete workflow's :attr:`settings_path`.""" if os.path.exists(self.settings_path): os.unlink(self.settings_path) - self.logger.debug('Deleted : %r', self.settings_path) + self.logger.debug('deleted : %r', self.settings_path) def reset(self): """Delete workflow settings, cache and data. @@ -2951,7 +2950,7 @@ def _delete_directory_contents(self, dirpath, filter_func): shutil.rmtree(path) else: os.unlink(path) - self.logger.debug('Deleted : %r', path) + self.logger.debug('deleted : %r', path) def _load_info_plist(self): """Load workflow info from ``info.plist``.""" diff --git a/src/workflow/workflow3.py b/src/workflow/workflow3.py index cfd580f..e800b60 100644 --- a/src/workflow/workflow3.py +++ b/src/workflow/workflow3.py @@ -255,14 +255,14 @@ class Item3(object): Generates Alfred-compliant JSON for a single item. Don't use this class directly (as it then won't be associated with - any :class:`Workflow3` object), but rather use + any :class:`Workflow3 ` object), but rather use :meth:`Workflow3.add_item() `. See :meth:`~workflow.Workflow3.add_item` for details of arguments. """ def __init__(self, title, subtitle='', arg=None, autocomplete=None, - valid=False, uid=None, icon=None, icontype=None, + match=None, valid=False, uid=None, icon=None, icontype=None, type=None, largetext=None, copytext=None, quicklookurl=None): """Create a new :class:`Item3` object. @@ -276,6 +276,7 @@ def __init__(self, title, subtitle='', arg=None, autocomplete=None, self.subtitle = subtitle self.arg = arg self.autocomplete = autocomplete + self.match = match self.valid = valid self.uid = uid self.icon = icon @@ -362,6 +363,9 @@ def obj(self): if self.autocomplete is not None: o['autocomplete'] = self.autocomplete + if self.match is not None: + o['match'] = self.match + if self.uid is not None: o['uid'] = self.uid @@ -465,7 +469,10 @@ def __init__(self, **kwargs): Workflow.__init__(self, **kwargs) self.variables = {} self._rerun = 0 - self._session_id = None + # Get session ID from environment if present + self._session_id = os.getenv('_WF_SESSION_ID') or None + if self._session_id: + self.setvar('_WF_SESSION_ID', self._session_id) @property def _default_cachedir(self): @@ -509,13 +516,9 @@ def session_id(self): """ if not self._session_id: - sid = os.getenv('_WF_SESSION_ID') - if not sid: - from uuid import uuid4 - sid = uuid4().hex - self.setvar('_WF_SESSION_ID', sid) - - self._session_id = sid + from uuid import uuid4 + self._session_id = uuid4().hex + self.setvar('_WF_SESSION_ID', self._session_id) return self._session_id @@ -548,12 +551,17 @@ def getvar(self, name, default=None): return self.variables.get(name, default) def add_item(self, title, subtitle='', arg=None, autocomplete=None, - valid=False, uid=None, icon=None, icontype=None, - type=None, largetext=None, copytext=None, quicklookurl=None): + valid=False, uid=None, icon=None, icontype=None, type=None, + largetext=None, copytext=None, quicklookurl=None, match=None): """Add an item to be output to Alfred. - See :meth:`Workflow.add_item() ` for the - main documentation. + Args: + match (unicode, optional): If you have "Alfred filters results" + turned on for your Script Filter, Alfred (version 3.5 and + above) will filter against this field, not ``title``. + + See :meth:`Workflow.add_item() ` for + the main documentation and other parameters. The key difference is that this method does not support the ``modifier_subtitles`` argument. Use the :meth:`~Item3.add_modifier()` @@ -563,8 +571,8 @@ def add_item(self, title, subtitle='', arg=None, autocomplete=None, Item3: Alfred feedback item. """ - item = self.item_class(title, subtitle, arg, - autocomplete, valid, uid, icon, icontype, type, + item = self.item_class(title, subtitle, arg, autocomplete, + match, valid, uid, icon, icontype, type, largetext, copytext, quicklookurl) self._items.append(item) @@ -577,7 +585,7 @@ def _session_prefix(self): def _mk_session_name(self, name): """New cache name/key based on session ID.""" - return '{0}{1}'.format(self._session_prefix, name) + return self._session_prefix + name def cache_data(self, name, data, session=False): """Cache API with session-scoped expiry.