From e347b69d0e92bf49c3b3ce6919e991ce4c2a7b68 Mon Sep 17 00:00:00 2001 From: cvh Date: Fri, 17 Nov 2017 13:02:39 +0100 Subject: [PATCH] pcscd: initial addon --- packages/addons/service/pcscd/changelog.txt | 2 + .../addons/service/pcscd/config/reader.conf | 10 +++ packages/addons/service/pcscd/icon/icon.png | Bin 0 -> 64200 bytes packages/addons/service/pcscd/package.mk | 59 ++++++++++++++++++ .../service/pcscd/source/bin/pcscd.start | 34 ++++++++++ .../addons/service/pcscd/source/default.py | 35 +++++++++++ .../source/system.d/service.pcscd.service | 13 ++++ 7 files changed, 153 insertions(+) create mode 100644 packages/addons/service/pcscd/changelog.txt create mode 100644 packages/addons/service/pcscd/config/reader.conf create mode 100755 packages/addons/service/pcscd/icon/icon.png create mode 100644 packages/addons/service/pcscd/package.mk create mode 100755 packages/addons/service/pcscd/source/bin/pcscd.start create mode 100644 packages/addons/service/pcscd/source/default.py create mode 100644 packages/addons/service/pcscd/source/system.d/service.pcscd.service diff --git a/packages/addons/service/pcscd/changelog.txt b/packages/addons/service/pcscd/changelog.txt new file mode 100644 index 0000000000..b98fd1d7eb --- /dev/null +++ b/packages/addons/service/pcscd/changelog.txt @@ -0,0 +1,2 @@ +100 +- initial addon \ No newline at end of file diff --git a/packages/addons/service/pcscd/config/reader.conf b/packages/addons/service/pcscd/config/reader.conf new file mode 100644 index 0000000000..d9991a666c --- /dev/null +++ b/packages/addons/service/pcscd/config/reader.conf @@ -0,0 +1,10 @@ +# Gemalto reader with serial communication +# - n is the serial port to use n in [0..3] +# - reader is the reader name. It is needed for multi-slot readers. +# Possible reader values are: GemPCPinPad, GemCorePOSPro, GemCoreSIMPro, +# GemPCTwin (default value) +# example: /dev/ttyS0:GemPCPinPad +#FRIENDLYNAME "GemPCTwin serial" +#DEVICENAME /dev/ttySn[:reader] +#LIBPATH /storage/.kodi/addons/service.pcscd/drivers/serial/libccidtwin.so +#CHANNELID n diff --git a/packages/addons/service/pcscd/icon/icon.png b/packages/addons/service/pcscd/icon/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..222be49f4b8a9d797927059e3cf5a2bb3e725fb1 GIT binary patch literal 64200 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%0DucK>daL{z(p>ih@3tKuypnTvpApMjnLgEP^ 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�_#{ah?YjeyT^CpaifPFuC&YS~H09Dl7I5W(~qkQKUwQJScPPV)@e z4Tj=5k0^~_NEEq2(u_`TMEF5#j5Do~6BeK*DCZ7ZhjFN2%sqHkX{kD(7nmwV z)b=cPbP2kG|I?A*-EZs)zNA}s@p$^zf^iynPkB?2j6@&hRa9Z(C^TJIEtv@COm zgV|S*+B)5B4<7o^lVAAUpZ9vbpMqDnTEh41Dfa)F1?&AiAO8hDm-83SG)89Euibd) zkz@1olgA%EvE4qu(K`bI=WAj2dOr{6sPhky3RANtsbTHEc<|LOlb$n*Oj`|$p~ zM@Yl8s9(|3JVzX{^FD`t9WAGD=eONO0Hk31f?z;@1#bFilrDxDQ*gObx<0@9XWwie9=>4OXAC%lU5#@%L_Ljs9aA`74nrHI zMW70Sk0J>Cs`1j+MqA6l{I0zd%~@Th&>;q;igJssBm%na-(^aL3An)3UKSc{i&pAs z1uN3-R#_-+V*4`m^DVD2J1@iXwIBT8r{L8skadTL^?_oLUbuKBsMUY;>RWqu&&%^4!~}AAIs-51cp_gn8i&l!zc+3v?(e z(lqP`S2%tEfdeHPlDs4rc3@9O6@gnwPe9{FevmChXit!JjEqvCGmpoQ&0~ooB@{=z zJ&Qq<9^vGB!0}LoYQl}4XJSa_us5WYJ2iuDb0?9z6*>(ZEH$Cpv%lSea|7wD)D=b~ zd81m1Wn>eE^(8@)C@;_I7J~djV?``&kHO z-tTG^op}23KmLRN5Ac&k>L;t!tu5i5g7raI6uNJW(P!Q}U53H=Ggpgt|KO3ky*v~_ z%~r0*pT0k6j(+de?@f%&1c?fgO3^QL25qWs)&^;6>(1DCvsU+8Tb*l5HKI{SY#GQ=&~9LixX=> zdXJk+_Jd4+){q~=)eHCv`@VoH0*}HSy0GE~B}*E}uqgQGxkwXrp3Zz-Ovl0eD<)k{ zaW>cY9CO6}7>HRZSsj=v@-`DPm_w07!sJ0)%OqD2C8@9~Q!?pxH(Tw+=IG4a+#VI- z3Mm!H*gnq?)~3RDdPZpJL8BcMCNHzZWU458#+ZCy?^=U?f4jB0iaH*m$flXT@Ay;S z`uf+_*Vlg%UcGPn!4KBZ{a2oOaVy`=eslfm<;~W{;#&LKxf@SD`}70%?^e>{B=7hG zNB7)w@2R)nO#9n$wJ}m1u^(A&Z_c>SXL)8!Dr>ds_;@|-_1D%nl1kjDPi-x2f9^}q z&Fq<~$i_FG|6*DcPyg0`b71eTJnJwfURez9D=lRpX}4^5}zm2Y~jZbU7|GLKr4@fpLmfE;6K73R;*0>=fhyKn0n*R2arSr{F!g z)(P9ag09NiDRnS|$2ci)KFHF;p`x74&`VFy@+kwM)HwGj?K76b1x#QX4O^Ss86T7; zv?vrLOuux}Wl}UStM`RtW%u+p?dNR0e)$wY>Yj6Yrk-(Wz7K{1m+U6;`WX^r8OO zC|Lf#d64D4wl+7;ojVneG@B!}J-eo(#AU{KE7up#U%8z2Iu@f>YNPlR3X{X}0pnYf znj)2zkz{OSa&voqd2{QoU58(P{gtaXt{gx9=-c0ahAr4x@uE*`5hV4h({axR2Q| zBuqy1S4s_RZNND~se|)GLH>?Fp1Wf|k~RvuBlr%f?KF8fwe%BF(t-w!Peilh!dH~D za6p9chtl<114*|7&X}DYoqha*AO)FS{L{jrGe>as5XK>BZbPa$C4=rdfEmjgU?{32 z-eN!wJqSJN`0F7BE))O~=&`R<$gQzOKqsK5)8SqkGUfz-i}p1oZR7DwJQhA$zPJEa z=SYS71a=W*qH)wkUmi)DEf3Qr?kMSv6%7}-pjl{FO$~YZDE~@%T6R`D#!Kh-?i?ST zW=~nzcii5hB$ysC#i`}>I83E?BoyKI2cmwdc>Ce)*M`q>N@KW=6(F`hCx0 zFR9|q&2@Woi{jA?@e1uwB)M%%@_ttIefts9MN+Acj?Zj%dM01LeC71SN-;M9xzQ(mF(8a;8%*?(S?`u#@Z0sskOJwvqGcP&T}1=TQp8ws z6z!8FiK?g_<%sJr_$EuoCWS5T!}K`w$Rg5=Tb{?!HO#`94kbW!!?T7Y~1#~e}m{pMo znwfrDc5S(`uWZokZ*HzGpSzA-XY6&m8(yLEfzD0G40LAXLr>lR+@Jo*EuFLciLVdj z^y&@|>+gZApENw{b~@j9;px2$xru&Y!(1EIdlUoc7^AWg%CP zY0=khFYCgvJc-68>ucB7yIcD3;rlONy!!GBUz$6(d&k~AS&v@5h-bHrpbn%xC$YpK zO11sy3SX&EG9%hHo61WNB#iAD@;P0mz{Vfy607V_xmg3pwQ$rV z+5~H9YWBfxF{Sv?MaCDjkqV6LkOo1{gX>I#K7}*VbH?g;g%+KaT2XdmA(9SoG2yTt zkj-Fda4MZ!cx`D z=tCIFz%)j?bp+(lY!aa`5Bl~ZD_~3@FGL?1Mks^O`@+-DU-ZyTAS7p191`>i~>SiOk`+ZImG0JpMrEpc1xb;sfFxiA9BuK+-hwu-MFyu>l+BuXAjG=`wkd#InWlM=Y`Cd+Y-`E>w6gmomVPvTyMIIr{-p#2{>6~HAFsQ2J z)(qdfpU~Whi7pBOZKVLFY(*#{$?Ryd7JN?h<6*M~x;b?=ple_VjlK!x1}V_m;xg0) zNw#`{yctGb@f+v9U>sHIXk<;9cx97wIk3R75(Wf7OsL>pI_sp5iwbe)lSvpW*WRcZC zr|AHq-_6!mTvI!DO_|Jp?OWgJ^m_CA4<%8G6FZb(HAIySPuh-v)1>{$?Km7aBcB)5wzbJ|?e(_5WAAh*LvAS#T&OJNl z@4N5ljn$Pamo8dBWO79QRw_Z>_tJi!t@!Q=oI%*M&sGyiCV*nKSand ztAZ^QwclI$h$T%v!AhfV5u2m`{ zd2Y_W`R4lO+QU!&+8_PiAKV&U{p@n^gL!CgKKch4Vfp{`Y9;;wsAa$Y_JzMHMfmL( zzIkx(u3fu#J$dpGds{qv?m{*g7zN##tvrK%cXVuY&-|h0*r+MGFMRE*adouXsOP3v zdMOTOAPbY5G&I_yW>DHL(iRD&Y-1SV6DYYy_ZcrHOVCgQTdNv4lB$Q0E|V~Kj{-W_ z&ZX2FM%2e3bBb_)J4eImmE&!Yj^v6F4On28ERh$loTdcu&6Y;hw*OTk(}5Z5@OM%! zVZK00v!)IPZg}J#2qqXJB${D4eQeVFq4#^DtFK+YBn8G>B% zg)~?2SWSG`mdhM#J_sf0goD&C%<>pRubIIE?iK8@;JwG#9T@dkwAdWNBI78jJ8zc4Ls_57)2$B(S!+lpe3N>#TYYT zEag^sKCH?y&aVo%g!MpUC@L6K2R#?sif9Qk!hFb3Z2e**NveR08Um*reyU<{)stWYu3XOdvh zvCVtYEjPCos$}LQ!kMdirbL+^zIT7UQA;Y7&RY5M3x6YP zT8089bI2j++9JipQ_PjW&>A}_DPnDOUJT&;XHRtC;UkV@lvr?Fjq_=XN|bwyCG-nt z%Za2flq#PdPhe@5Oil%*9mb?CmdXXspb$Wb!iWmN_%C?ExS`^GV{9gvgO* z(4+_ioc$M$$G{~l2k0D-+3Ln(2UU-2F)5`>RddjM}AA52cln{$e3D*TyTV>*@t zI>TMZ=N3MUPcSUmq$XKCGD zL4Smj0bhn;L#c`oaT1MB+%*+e<+bx~m0@u7{s;f!GoSuh9>eW0y1G-a{>f15*1s$* zTwh(iRvn-E#^1hDi^Rc02ai2?-|Wo%`AhGuY%JV!P11>q>u^lKTKm-{luEQ<3Tu$Dv#V|6;6J9`$8kKiXzkf>S0J#IJ` zXQ+KJFrw=M>%lOE6?(*BzYCq#bfDsV3H6Z?r09Mqkf!rHAzMg`1zJj=GlPGNeJ0o& z4n@~=Y99s>BESX$BS0tTb}!lD8mF@6!XbkbH5ljvnnozbP{Wj+S%EO{BGl8|cjnML z;-QOSwjgJG9#hdu(IMwH=4LfD4D?_gkH<_#kSC?*_dw1i)Qr2zxvGU^#%)1~|u^)sr z3%J81nA){(baH0t;;DApefY5t|MBnt-mMSh&s_`N76t2lIdp$tV=ntO==aZ@etT}$ zuD9O4bmQW=hmSw7YtN1okKS)j&%(mippOW-t=6(dDr-v{*+5t86Z>=rQp2*;DLtl`-eS zBq(tS?ax3CD!*!i^<8%NZkUpxv{jtw+^xKp6@L zW1I)kTD?z2uDt+?hI}kpNK^)Rk?7#4WQ6RFbSk>dV-km-0kDEsR0*9P(|5YyVPbS; z|Bx-ynj>?2Wgwb?2oZzxkQxBE>k0P_TwhQ|vE*~IO3-CJQ0*xmBEI9y4WetOEX?Rp zNR>6W7W5cp7%hfjk#OYuAwL#83`m8@u*DX{^Ew;tJk?V>=f}q;JS|~`CZ!4uE(60; zv7j|3(`lX>oq5`Vt9EeAA=_gagWjMge@cu@!R7C9OwNmP-xS_N@DHapRrp4hs) zy|%G@=z-(k{r0yvHa32;8T=_j(f3ug`o#_4e<20y{dML3#Xs|Nr&{)3E?zi0NLyNr zeB-abxpQ`G-@bzn9X;CLHdk+4s@B!#Kl|yg{nb~FKlX^pE6d9_YSo66m8@^ip@C_mm6?0d2A-!JOwiJ+1W*lA7gOCK&l7llkruV^y z_YwTVTtWt0F>=+TB%3oP!_}eZ9J@%AwdGpVnw7a;czP)Mq@=Q{ngDB4&w1b=7Xof4}fcf-{90w7NGT-Y-{U=tse99hZ>EfMCgc+z(~W#G6oc*?ufO(F&EN;sK<52{u>Or-&!3uV-TIf-_V$_gel)XZ=NoVSc>UVi z{@r_R1-iQQp8c%<;qU&w{jsxW-cylz=;0G*&R$TysMTv(-b-~aC>us&n5|82aB%R^ zvj-!~b6X+MuSsZOm8c3;z$w@sb`+yPg!UF+lVt_m&af~+U)qBW4ppzT4U29NIP|!Q z*Us;Sx%P^?zM%-l?d2K4qWEHXZf!@VYswydfwV5F5iu_Z4?r_N-AmAaalEB;4QogH z7hyVX5lW8uXk?4ozKr1xv@rKX2zo?GBLpVXd+y25a$eBKS=fh?jAca-7Iv4StWruj zpvU|Gw(gpaR|pA1--iMRu4hgTe#ZVZ;s~s7pN~Y4wRD0<67-F6wqMS*iqmvdJ(ERxE92g(7t3fK>D<<*|rfEHtd-~x7OFfs6Mx2Z=9fOg{_qbr&(Is zXGomYBGbJz@9W&&fMkErUR$|#Z9@3ou%P;@riHl}0ts%>Vws z{jaxV6I)xGr%%28#8Z#9`XlX!4J$9|=#S|i)8C0q%`n3QfDn!?Jd7`!p^IhuFg$>wVglT?m>ma+-0{Y5QNFM`xm;4Oe@EN(zLqU8d_3I+Fu;e{g3+}_Sb8zz1H_}D~JDirsI^IoN2jv+pgxzxpG^( zmv`f^IXZYC5#r{X@A$_5x%WiR&9C+`Tv4T~|JZ}Qy}g==&Ip+(4g9MJXq+Qu_H(6L zh3h8A$FW`MR})FNWZNCvI(j6~wJpQlpM{OT_}>FPs92 zAZ{u^*hL-lR18Al1V-BE65Ec*eV%2`4k<(^E_Im3Gz{cq4q&)rA;B?cB#X1zX4usR z)!h|ooHE`d|5J})4i!+FfEwzii{Zck~Qf-uz)9e99@4B-UMnhlL9%gM)YZ+Qx0k|qsIg)z~I`@ zvpP?mR&+p$pC<~R;s_Det}vdW*VrO`D}hBqEXl`)6GrvepNb0|`Ht=$vg$}U$K0Lf zwBdsTeuCHGCP}O!{Bk6TKRwwPIodxpd?;$waOM%7#Ewi3AAA`;U&|_)<%Z{$@^+_P zOfAQQl^;KR&=1n9HedVVbI%M6^q<8dmw8frPv~&XI1xjgn5T=V1cpU% zBYTC}`5GolicZRCh$mAO#VR!>sz!qG2zDxw#3xB{Qac4oAb2L}UST;LxCK3AXbjM5 zWfqE@Bs#IvBK2@YnbEMJseWl#j4e(E1Xd!Z_Ebo)7>ZPXb= zU1mx=Pn-ZGsN#SW6{5Z~IX=*El1)^?DbmVO_dv{qqy{UrdV~v=XrX646Z8&-E#Z3!$%GzY_gc^ zgh(g~18N6N6Zi$EUT9DV+o?kA1P_78P$X9{Jn};~Lv-SVpsEb18MCm=BLpx`PVyFq zoeseiZf9TMQ5tqvqCgFk)J3VN7l9Hn13is1J1Hyz;{jP6i$vJh?vgq?>2P9)H#v{d z=rWB}XZi$5N;7?wBs1z|7gRS+yozRR57X8_s$%%-Jot zie?TW)RGB=$6=f_;s~|cr)CC@4;`EwIMkRq059CMoa_kE_FTs**jC;vR0`#`T)`7= ziY*OhzEr6+8$-3@b;GN6_msc;;Qez-SF@Gcuc$)1Cam)wYRyYkvr(_tckSGM)0^Jp zI>lqdhw{0KutX3~!IxcSy;%U6q&U<2ApM6bqP6T zVL^-97dUBelCBoHG}8>Ql^N%->@?79CA@*{ukaM4C5R0TOeL5eMp-z6#cv>*Bu|U@ICGoSEt2Sos~jouy)dY_4D8|zt2V2wwbcny+4HXK83=8}f*Xds4+bFzUxlV##65~aD)6B;$xnMo!+ zNB;9z4m zw@s2*28rt6xhZCt9>rPoL1GCnfOpSG?8bNvsJ*?nz37pHC&#oL6&Os6vt$~^sA&v@ zmB42g#jS~nfvMxet>H#A?c*n7c?|V}Dz;m&Jv*N(<*K=2vE6oEjwGA_^OmdKENvVg z*lUQc-rm)ZKl+14qp?sQ!4CQcBW4A$KkX*7*d6H6yND5gnGW8^H z7z~9}HjS7Sq)53vE4O25AA3>@CfU$agGDBJ&N72|l!Q=)OrV%z#Y|dD(MbcUsgjQ= zhI>jt)Pofz>UM{~2kuzoijR|K^Mf`WHDXHxRqh0x zIRLd5sobWhBrh_ZEMjC>HpER$E;#(fXinAOo}Jw*^SK;0!J!hOr0O0H9^#Q=WXUiM zWCLy-hPBc0ftlmA*6_4no5WECTR@lyoaMSDREhDb#ZqUkbs zG!~_Dj^eG%s+ueaA^MY9g~+6C1(lu6(a|2A*=0@VSh0h9Nfi5x==rjw^@J`cHtVDQ zL}ZdCJsSCtLbOV$rHdXJ)oGBqZ1SGK)Gw2}qGvbB{)>?!}Y^Xju(Ht5J{koY? zF^h%2F^+Qcc{k_f%K3b``&*!>6dYj zsIiO)OJmXe@zg|ec=*`h;NiP}{mx?p6MlnLN}Uj2#lA!zJ>_9pm-&h`7$oj4I<3cs z>_AEqlYziT#I}Rkmc@!D7paM*Zf+XfBu@%65vnLsa);)U%#k_DU@??VHf0X!N%*A1 zX)*GA&Q9wnK*7ySN>VObsG@=mN-WTf3-x|t$d;mN0?yMI39nPXxI+Sh=GX49fB>5{Ax(4HF}Ak!!37`!{fQ z$HQtGjU1a4(@{r$LWUh!o+Cf!L}s&rDSApP3LXtI#HO(uLq$e&vdL|$+Euc>%qPu7 zZADBP(Kdp`K&w%dG$Wv`Bx+5mvB{$|!=ufisU&S$P8)WraEIGDr(}7#ikGkE%8s2& zgbfexq>%+oU2JcMfcn^;{VB^QT(nmUKltbG&n_&S8e3iA;gu$=<#oIm$MLS6J2zjm zv7@{Dz`;Gms%JY+*b0-hg^Uw9n2}-slTR&L4#$=P9?KLX1+1;O=!ln+NoQ7%CvQ%q z11pAn#$-9m^l;J`L#GrwyfDPDG0eg3O8V~UNiB9^CLZo*(Sip+n+Y?-b3+=n!zscO zHWNak&%1TP6&@dro0*X!rlOft3q?0(1PLh~%%RdeT3wLms7pTe77goUKF>DYS3(SB zN_3pX`5}~(GN`nlkba>g8D$)D#u_*t6u4*_h@&|!HaB2YC@D_FFbZ>4RG#svoz=$4 z9!AcCSoWe}Z_=N@f<5qIl-8%mgeN*WdR?PLGJg_j3NlK#O{x+ZM64yFG=lId_UoZlnv9r`P3T=hi-4m?4#!dBrrT~fI&ehFxLm0Kk@=8iAQwTlXQwnm zhXrZOzigIL^Z~(0j5B(WrU@&_#0iAq;M5_cS5C-GZZYf(Fl-b8ML!6x7!L*WAk>mp z-N;5^kl+|uT9AY}&y+tshNd`mvN^S~n8nB}piyp^WLp&MW=_c+>KsshOy)F{YSEO8 z$gIXF#0&6*5gE-Q|BHwyMr8Jd3Byh73W2Nwm{j)`Wg4oNlOFfcZS zLh^_f6#*&0V4qi}8;{03L`)b2p)#jSQ_X0o1H?i0_L<38O3E#9MoCz?hpaHM&{2ZQ zRT=ToD6(Nv?cdDI>q)AL=8EuVkBT!xG~WbPOjQjwsjU%$%)voSN8V)%l96P zqi9ZSb$PMXxt@fbyuXgHmR+cI@`rtU`&`G~c=a_$`}f(lUG{pzAc?{T=0_;kX(|@N zAAC$|s3l4%Ad)7N9OWNiHzv8%ZgDq+#Lbcw9F#%vWkVR4g(0J{98T5Y(HFxrN3vC)D`RjrBf z@qK+e@4oxj8#B>VZLG6vh2lZ8(ZEhp?23$%G*%4#5K~|l)H=q26&wIW)Ao=~@g<$y zS=@<{#SBOZV-!P43fP5cqThu90S?MPpy4PTFuJCJ>MrRoovj$jtCL-FOb3M~Hk8sp za%Ou$)ptQ+HKf0c>&RycFw~YAa+w+4_|!>&6>&qT6ZY{yB3N1?A8F()nN`=x*f~KR zPQxZ4DoWo@cs`SuFg}f>|3dgCbD3w^fdI}l=4ebOz;qb377BQ9X}0k0iH8Rlypi1o zr3|fD%0{y`>EsLTUF`xGTnc*aDx={vfy8)5#Vk!!6vt!3V?&2_gwxaEcnu@X91a@7 zUjoR#g9!C%fc z&sOHk8bq(;j&@zcx+Fub410F(Y;Uh@*tq4;{{B+Ft=!($Y}OJ##v?iGfcMi_7;ypf z9-Q4va8M+Tvmz95jWBY8IVLwnE>1Bo^MI(RD6cp+ap8Z$bYzMJc=EP@fJKn10XB%I zL_d^Rk68+g`19Se%@7P^uJ%1R3guLKK@y$mh~H z4CUzHW$W0@M(W=)lftk#9$H_ZIyWCzWmAWm*7N*U)Bh4ntS}-f`cCP4M zGcmM(==h<~P^DtW$k5=<9k0(h7Cd!2LT?RCSeHhqHT$pY$jI^GV*}USaQ)=ucof$w zZS85|M350Obl;&qQnF&l+KeJ+R6*XU)R`%iX)A%w>ZveuD839^TAGE=g$DEz@)lLN`SCz7Lg!RPo)t!ljqfz0gSC7tHlfuG>7HBEEShqe z!v+QJW2XXDzNify?PqYNnnENhq?2h4-qXsoZv-k;nHbZdn^91Z_2s2k6(@41C$|P#kCOxa8y|R)jTn1;hQVEVU zVLzLSWtd2KlOsQBjSo#8-~M{koV1G-lf$EV5EL;8tQ^C(+w=Kqxx0`n796u|3d=Ga zh$0nlLIhgOb*%2)G&R)Uf2>d0I8zulf|D&*r+ram&Y=|Mh8^$ZK3B~Quq!L(or>RCrVu(&{B6mBCi z;0O#vUN({t`cT02iItU;Op33F6jXXbe>tK7!H9Y_AyNvc%H+^kkEGHPjzE)@PKwU2 zD32#4&O+1diy*@rMQxwhn2Na|WuG|It*oXQd&rDNazeUGgxDgFhXUA$en^E@BUIbYsC;JrWg)m>NL8>?2;uDz4l;(R{&0wwzB#(4B_|*dUMaISu@@6s9Ac;mMpwX0(=a~To zIcL1=jz6O!cHwisNca~Zc$5#!+5iv-zvCl9g=48t@{NA4sLriH@WfC-WK`YQ6FE>z zP*{v^GpJR$5MDIFN@@8m#w;g7TAGA{LWvp}Aw7;qh=aG)B|D`03u@eGLLns`X1LLI z7${a))3ml~gw2wEoB=!DD~KAaQhT1TRAI>OBHRi+BDprYV66ZJUx6F+EO08XGx_NZ!zm@G3kvG*uQ zF2k}h50>G=3I2qqQy_H~XJ`ASDngWVn1_bOe@NzpKvoKC{iZ@KSZ(P^LmC0M9vEcg z_!$U^t=>EHiT9lhtM*i?;P5Ma5;Mh7E5fA%0;V;8V2O<$gICfyFmcP zEUi~hFtle)B165UZgeJ{=DJ1_k5f{BW2)H!{Z;IINbFG2G1hYRDqEA^&CYD6`D~1;U3gcOg;IPP(BhjHdDul5qv3#-p zG|od)MI*oX=i_XtI;khR}8q5)xm ze<_6wu}K}QVo0~j?YDj54EerUDV1C)Dds+*&Uv*Sy2O)&{u=TSae2Aib$ZQuCBNLT zA}AJ8YrP}Zzn_aMeOE{?RPpFvtAz0SMRc-lhAo2%uK@)59;e%*=rV)R4fdR6pB`9l z5sJcpvDsPdCa!or_V^JXnL#jqOy?*Y7YlCMI1YIz%q{}GFAr5F=;r9 zijO`3WfIl0J;?d@1WKPvsuVpmX=Io`P7NZ&ozu-kOdz6?C>&G-MUfP_&mgYH<bDMSK0R4QnLkUF?F*yXY~vLhAw&hRK(qrCLa5pmup3k z&E=%ZaQzp+p%0mgj?fHi)t5}^YcWV|LfMQDwPZ@7J8LGnOLb;~#+EF{wWOjlaf@}M#V7R9~6k_T~peM=h|GIkp7k+cHx-kTr( zxrI225#%cNg;WDOnDQ7p2e-LO96H*Kv1zAePMTR0lS;lscJ@CM3t@w^V^Jj?0c>db z0s<}o_owq3mfhCUPzIQaIfW_xE6O05+`2q|&7G4U19uxNKW+<>m=gmJujblZ@qrx= z6SF2CFESRLvwD7uuh-u9U4u|oOyFGNf4nDx63#Axjr8zW#p;V`gx2E94PM7pi1^EH zl_xwMAO}s&7*#fW)!gu!O*H;5{($cz+th_BNvP}8cRv??XtMA%RPG9_t^6D|`>q7b zPhv0NuU@-=xv>}ggFa0nm zlPgAEH5?1t@?=H5$5%5)Q^Frd+`$ww!itLHTS`fCTGq@lizUxD$x`LtU+8RC0OHXh zs7YInIm3Ag@v0!r|He5|*Kx}G=VS;^LIVh*_QNenpqU6*#>ATT{vrv?yX-xm)bcYG zl-gqv4iU&UnpoS&rXR~3RspxJGER(3&2SmNwK;uv_i7bcT?8NaEOwT=2|O+A+$3ny zC~_88uR3k|7=q45V@~5HAd~0kz%Z|&Uiq0X*_Q+Yr(1ZPEK&Z%IC%-cp>?wduqYOx zj#DF&a*EBX#;MmTy%DUFp#w;jJT5#~7}n_>oQMJn5ZvKj;HX^DR85Vi!Ll&4A-U36 zqOCAe&E`s`&=e_|6F7-H5~Xhh#*8}zhpDhUDobVOi zj!q7P4M<$GgZ09ZXoM4YHKk(|nRB5oRwFTzu!G($6exMU`4gp>aeHjeg6xy8ma>Ib zjdQ_Wm|D$$e#6US&Wd2N7_@vtDMgh=Rft3&Tz|1XgQwb#W=%y=udUnRXwFcPY_t_G z-iJ$23*uAJLTRBWDK{&c(`huH50Ab|&h{{N@mzD(gp_uFOmYQ1baywQ=$`K4%WJij znaL?CUVHnz$#ZV^6!7wF8Co&H@3Nn>);^Ht_kKBLQ-UrF=p!0`ZB zjo$Z2nw+ob4qy0E8w|BdqJ*o06GjIiEMyG(kgW5S?ut?4&&2Qi&_5CWXs_}s3;u~z z!SF0WkMsk@X`CohM32$+L&`+yEBc9_D#XyC%q+}o^~x0}god_&Fe$zS6YNU0*Z`v< z4u76N(p1&``|rnjc7Zj4{H)sXwaTRptg^-d)U-_P&_H{U9^Ad&pD+VOIEqEZ(a5%b z>g)-by8hxqjB@C6LPPu-XS8lEzjTq-EF2hb@Zbwm=h--n?LUgj+ruxJK2L_@KO@u6 z|3+5pt=?Apy;4nTq=ChVN@;cpK6z@orynQEIRIDJ*KPy`)X9B0iO)C;qYXib5;zt@ z!J&KJ1+U-hS;Zb|B^LKrj3^qq(c^H&CGeT~E=28N(EAWukb*vEY!TW=%%IW*=gBb- zW<*tIpraOrc7h#IP{Ko%7vs&A&`RzlCpG#;*nm=u!E8hX89W7}eQJRV+rRIHTnea1 z1yM`?;+AyF=wC-JG?HwL)79Ha8JU{Qx*J%*t=q}Tf2*ufD*L)9LQSRpr2#I0!glxA6N7uD^wNLbtAtE)pZ#l#sPbbxO%Tu>k zb(#-Y-Kf;|;yorl9X{qp)S_6Q$k=8mk@(1}HIKjXP=Njjn8L%yzg%xWuk8M8iVdrk zFsW0i6ne#k68a)zoZJTc@D(5P4`c?T7%J~Wgk-Fcl@^xZ?3L-@U)VhTa&3|TCWLsf zT2-moPk7FrA$e`+G8J=pLa7sC19<+&MN>Mxznqc&YzT*1d@(MmNQ1JYe9H^s;Gr)|zR`_UJRa?a;q zy)ubuO?o5!t-*;P5r!UcfL(1+>oj>*j!d`};(L-6w1t&xlh~`*rhBD zW)oTk%%HdoCUZi+F(2~i+_jgu}GS)YBnTC0gJbhp8Lu3ga{sMWbDs7VYD1sS;XjX-O*4dVM~# zz{P=Q;I7Iw0B*JAfYzl(P z&1twWMjHZW2`lj%%92eBdsSyeYWXjQ`W7aUC5wj728~0`SHo5Zx>zHx9gb93hz*?5 zdMeX<){M{yd7rKKS3)l}QpgG~P4Gi%^f?VrwX`d%>RKfk#loXyZvT?Xof%Yl?laiq zU0-_vN2xMZisP(uEB}t2Y=1r)n%6Iu3MBHNF9a4cb1tOa+u#JZ|GHRle^k%Rw24MW zb{A*ln@6^$l}4}|q#+M>OoLhJ)KZSi@J`Xrct(MnB_IZ>q>AXcTZT4Tla8>h27<(o z;f*{q5^jDYVIUs-Y#h0f=KM~F6FbCQ_JB(r6T+-4mUhL#p0gLq{7b>;M2ykDfGOOr z+8w+3FH;QBCNI~!r{?sLcNJZz1)7E=bk3-RN*QUrh$*kps=~=K)sVz}VTVQXkH7;4 z`q11y+Bt$V!aA)n7?wS94zRjdHqOTR3Lz!dQ+h#zl4FH+VS9OJKD>S_iFpIbwQnDd7i2(8j0%yEjZqae-=+iUr@pg@tK;5@3)-5fX$79AUghYqV)?y{)b6lJLaY zM25r|$<#b2-3YC@O|yEn&Fs7?*|*MTxIDXzNB1%g!vILGvKQh2D@xFDxFwg@}fk^XWvZBAt$KI3sGsA(sd-r(&rv ztt^Hk`$$B@V;q7lrs!@R%5c5$`vhm%%MGy`5fvk&0=pn#$aL_Vd8 zc!Y+FX;`6;ndzC@9D`0}?3yf-pt^IBt**QRC-k>p1-=UgI)mb)D;9` zPUyqIh_P63P=j#^b8=O1f7|-X&{B62P=O!)X9EbPQEzV~GxZ$=O~df(ecZhwg`N2g zef3;tNNHdD>7q^XD1_U7?X%k~HFm%6XJ7GdXjTE6@VqD6Ci_3WWqTZras$|@a2EiL zY=MU!TdhQ-dK^?J$?P7JpRM-SSKeD~pKG>n$d^9|SJn@Ilv1H;^rpIKS&G8^amp{9 zbpPWYM>C_(JqYbmVUrtI>_QMZfl_LA2k9g_K5#^twb$Eib`-Wh!$qZ#&IK)1^+(H0 zlGB4FF~_MZ*4@-{tfU2LnG3E_T6uQm5$3abF5O=WabVsv_l zxHMUhzpd1BMX2uVLysJJyf?n|xGa-A00Kt2K_wc|c!fRK2LTPnwP;qb&du<9x|X5^ z_q+>(L4$bh!qzNwD#_Dd$Bmwzu%hqQd1dbNOPr0^GJ-zu*)cJSn6jHu67HJ}%Uw4Y zChN`JJa5ST8F`CP=H=sFyk{`yaEOgcr$*Q3>rI;!q5|CP231(N_4%H1h^Z_3xW&F{ zGr6Q1jij`{Sg|DYjffX35-)bOOq{TAN=fb)w%2vb zE~u#^k66wG40b=?AG4hq^Rw5pzKfclTk;l>o+z zs(Dy0Hr`A*lwW7Rw{B@?{k#+NFk1!WrsqujS4q_B_FD}iiD|yqe$R=FJofoA+l{)H z+7OW0&!mVzZbRBX#uRwFb6!UD8WcnNAJ!H1nwvsY8aaY@|B$e zLGxJFmsos=CbT}(7wg)}{AE|ZkvRXFp_YWqaAAsmrzNC@b;rj-9>kU)4H70q6_aL9{0_lI1?uGu zSVqU@e=o4V!6^Y1msnB)IIpsBS8Izu;bm7)0HcA;duwg%bk`k^`oRwApX4``JfDB< zS^2D;i?9}q*MBh#57nS7TR214qRa69$2vChml;n6A~6d2Dix1!LRQ3KnPrU9O`ekm zqivm6le@q<5)CuhtoBd%oQ#F*_)(>#+ok*MAoiv)FA*!3_u|-={bzPHM1FSJcojI| zlr)4EqEqh&1u0zPwH$q3-8}_#5)BYdR7tlz`dEro`J3-S6HT~G9=^tWmu7LYPaB~n zJRI#&A>oM7%QaR50|E31*H;#pBF1NIvQC3VhjqgQn8NgsEC`pyanumM1mx<_a3kx4 zOGc-1_T9w`UV6QK`{h!J=nI4}Q*WtYYb#3x-EM3YOlcDHM zHatG$%!weVQ6d~U1<)x61gX%{YMT}_i-m4Ih=Epi3Hune86D!I!kL?P)i;3An08Yf zKQoI4wWqMM0Hall{5H!#JHOpjeXl1qSsOC|7e)12lGlyDeVw-cMKQ3>rimw8{K>4T z(ghLpRdbJ(fUAZntbg6!?><&EKuG3=LpIn70}@A7O0y_;fPi_(@esozYqr||+gvCj znv$l5RAydu&5ZE3J6@z*Y$9SOGUrBV=cHXc0`}T{9Nn@|Et}7+cwSIFIH~;NOKZu7{BU9B-&;&cI{<#Y@ zrq8(g;iLg?7#!$oXWxq{Cv1UjJ*j|JTwH9p{dpH<-?jwo7>!NSbU}!PW)M^l>%|?L z8K9w|XPv8MQ5wexagQ7TCHfZ8{TYno~P zLq|!N@PRI$V9C+h{}yBW_9zNE^l@Axx>)69<;kjA8ThE>mQ$?g9d@stlqf0#7H@AUbsr)4v!N68*5u2&DBF=W@h|Cfq<|8onKahWtrX zkd?7wE#7sI=RnHA{G<*R=^aPz?82G+aQugP;Eq}WkLmaF%HY^zVv2)9y1S4Z&F4vpS zr`oS7mir_+)vJ;c*wR0_e$|Mo6zkBev6&j^!Se9akyEA>FstFMm}i+=Lkm&VimVPuyIo%&yoMO+A&h%bM| zG{-6$W&z~61qMu*tb$Nu)(u0^7e^Jw$2-FGk_}!4tCv3uo9Y;psByp6P{S`nQt@h3jE40+b$v{dOCOohZI1Zn!j8Lc(lzYF8~lME4+JanTw2`U znMYV>lGpkBf9Ce)+xwjRoe`fUcg-4HMyoAYFa8)*b-yb5NmuNz0?mRQMNmXJmevRA zCz51kMisAvB2A=m1g0F60U8>F+^iP-{bwfXWgl}-W@?WI)xDkaP*+=TcjE+=9Mih_ z8{CX70o2)&hh`W@GEehI+M*=UCLvsZo&Sg5v7+qZ-iwv6fSEmNfH#b{O7E{jm zm8lYAHDto2TH*wf4s&us$a6gejl5!7s*2jQ3{$p77{P zT~**w{vl#t3Th{QfV8uB#LG7*zeBnZU!4+|xZlkxR8n(8wI7m*5%xaw^5W$gVnUIm zoVG@7HxTrFj^b%rQMD^l6&3e3WuTpjff`j>{OE%|r%Hu|j8ZP{^8Ouqq(8u>tw;PN zMFN2?leh7(&Awf+`Z~w?U`fB5kNyzkPEy@WmF77^@k}&py_*LIqzFQ8Cvq4(&J7n6 zLHWD}O)oM*EAjY92&O}fGxGd#%>JA*m;{V^tO85grWvIP5iW6!SdLY&1PQxjveA(N08&LW+3ySB#q zP6h;TO2RJyOA&7~Bm813@|$WG9aljq^WQ3@d+E5iBJ;-?Ho`h*IISYJN|z6C(G;~} zi(cyXy1FkjRhe%{*C<)*;eFQN_$~!B)qHjDlg+T>)kc5>2`-Gl!vpLpXPusw>ht~r zv|l16-rd%w0kl6Uv3Jq3?C&z!LNv{-{~0 z-_9&=M(d!3H&{bb7NCaFzU9BBB-n*3*YJ+#K+Wlq5$L$#bkSkk!0l1Iph}$(E*_t;uH8mu1Y``4iJbg1;!B8#M5^XjCGf8*Rs?kPa+9F zjZ22n@fC~BIP?tRv}`3|1G!(vnT0u#K}(pD)t8GRvM!m<#nliBkT{^MIo!78nu-2_ z-ri&%^INDDU$*OU4L{5CZa0(HK#(1ALH`2Ggc(znY>=FzVq*S9%U8`C+BOPu@`?@W zo+Jq2X|Uln>B7d4^mS?j)LW>fq_aNbLiQ0_L)6I`2Mp0mAw^JfrhLzehTMGIM~U&f z5KXSz*lyd9j_<2G7&dyvLog;NR3*G6XiYbcftI!o(KFg1E{r0;1mj(V8^adRSw zujDFLBxZAEP>wpB8PsvCM)iqI4;5PNQ;tw5J86jNcZCl<(S(vnKwS-*1nDlF6TtN= zuo>KXei^%%c2Wa7wT7{WW*6M`?_px{P}KDA^5s@*dH$N?;!rs<(bagX`m(=Lc~VJI zFTqZs*ekQmF57oIyD-&h=wT%~k=t(&?n5X>D3ldj_2$mov6|MR0?xIFq7~M~Dm;a>}R8NJVTf=rrj1P;&`=S?JRV7WI_+aB7 zuAuZ?6~dKFoBUA9%OY`3_|`k0@^5`Uf(7zjwK)Z=3_ zlBnyKeAMXy!L5q-31G&x>e6x?bGMVtKG}v?OsRi`qmb-8-+=3hL^(IyO-y*;bcAcw zpo>ELDIqmrZ3bzjj7jJcXvEwHK8?R2(Z zlH59M_Jb!UQ*nb8P>O6LUMB`dc8w_Jrx5isH}zR=OS_`U{GeCMX|d?W2-NY!sT-(B zGHe=);{L94Z#A|xt6Zr0pXoQ7i@QCo^mO^Wy{6DRP6ag7J{B=_yWhSf`+l@q@#ZW7qZD8xW}P_Mx#p8Wl}2jm<~uj`1xla&kbr5OWw71^uig zBE=cKRW9~~nlGV{U^z33fZ@2^_x=*p*twD<<+`rBJ%LU{8EeF{&^ne%CMg+$L_G4u zb)nCSd- zdc1#F63~oC&T!Rw&ROMo^JyPNAea@lHxaA=!ER)wht$AsU*fvc)0Je{Zngdh7S=wZ zHMDl#>rrDa8x=}m!ervf!Ao*5RoM;;gZwMi!K$6Y>2 z6`CpRwlFcNaVfaAD^aCtdf{zu@qS7=n<@QW7BD{ z-Dq;m&}_%r!tdCT#B{XhVs8Abv|yR0Cl#8yCs)k2E1iWAU#pNsS%upEXWe0Q;=pB# zW+N3m8UgR+YB!Pk$MR<+g79Vu4OmD`-OPGu2nksZsL#=DgChH zLwk-R7ME+nw;DggY_r-&OoVTYS0r^=bc zMO!58!x$AE1cZ-if88r~n4UTgj)`=61YBHPvLuM0;-ClF)dX$bsFQqO3XL~M8-qlt zky0=sq-#h)^Jup9ycpS;6`g3f%pgt79CxiWs0Z#|gPcLL`2c^kx77mw}W!=~ZMyraor$>dx8 zNc{Pzmz&#=7@on*&T~I@&s0Qvs^3j%_$!_bZK8jQo=A$MHANOzgs(74E=>S3avf5GKnsxU1pXD0P!%4%}QH={TZnRhoPZWIr3?L&TlTC%T z1|N5{07NRO!~ZdBdr(yKq+Fy+g*I3|Vf$*cmHepbSTa7zNG6QKKiUXdMJy?`UXJS8 zA$Me)T}6W0BI7n!I^bS!kyR_Q4QNMpqizs(#)OOpN{Yg{?Cy1&0U8Z~$yj+@* zfidfSG>PTDT=@Urk^W~oB%l4jkwZn!Ur`Y!@i2{fnv01mi{?CQns}vm=kis2{U~y2C+fY%L;kIi3!#Ay z=0oPd%Pp(6x(y8xzZ$Nf890_v>M}_qx^QopMzsR+znN$v2V9cPURGjgi_cXtd26EE zzCVjNSnX%e5a)VWxoGDhEdDWrd%C+0n;wb<~X$mz%mPQbsbibQK-*hY3eJHA54~rwQ@zNb`Kps`R0;ymW70ttZ$F_Jx)!YU5E&a1Ft zV&B8VWNf&K2P-fwM2zA*s^DIuUqzOTCa_vKU*2}V@97cl-_g&c>m#}OD59BRlcT&{ zSdn7u@BD*Oge@YF@=7ZgpfS#-M@N-%UJMRgMW`oj>{_Y}@ZXZJeVS`)(h?bKZNTv? z7sM0~dsXT5#KqR*DX7;%p`ZAF^$Z*5o;)(V;|l|(;Rv98R~JCZjJo7l7wYVMrzU$pkwTbstYvZ=Ks9) zw~|d=pAtV$i~h__cwgjudYXbC=1s_bH)!hZ>5|`+x!p!y;32>Evz8o*ep#u@R@dVy z6Hb__N^9Br@XZzta z5s6yXYa61y?o(()_MPVQS^B)$Z>NgKi|Nb$iT|bm9^1O|ZUDoRY7$?LOpoORhOeVLz?Auk$2kyol|gxZlk_ zsPm{CVq@IAd<-`1ZADG`d{16{b1;g5oZ5kT|Kqs+5|jI|eF6_kDk^pz^hP#0bJN_X z$6@FsFiaS_^OQaI!uc1+;Uy!m8Ch9cf+2clW=6{z#%IbY*I_rjy)Duk%I{gW?MEAs zZOM1nAS=2C>jNVR4f_f{{Y=rSmH)EtLrP(vjY(gDNfAA1>*-Z>&M;aQ8Vokz=YLH8 zuT3x-I=jX zpW*cF&Bxwd$2=4ZGczrwIp9?xx*z8cr07U_&fI><ug;K!USQ|2c`*FNEO%l#B@b@%7%)D-x9Qe)DiM>GV9 z|NW-l;^FtP)nxPLuk~O=e1+pv1NYsae94%z>Jz7c-L@)UY(~DH$KGHeovhAVtl@zH zF+V@h{j?xx^V;{Rf)kDJbXf57R@bg|@V0c-tTSQex#N7<3!RTet}zH z=SBD4@MF=?=O%!dFW-WgfPl~GU_|>zOE6`{INbL05a(6b+f{x0b^Wx!Te9CvvW1wg z&2m+cEhy`$<5(^mo_YtYM4I~4y2C68dYRt#zMlmD?HGRG$~EZo+Ax9rdaLuzMa$j_ zR?{R5cHA)|0=SX9g*z3;fD61lnoOU5z3RI5+l4oLKGW>>OnbpY**Jw1h8M>zb~gs?@e!Jr%_=Z#xV|lHf@LzF{XpY$G+>ksmfD>L zy-$N46hRLzzXSj^^;<9hwOlvZt{>^a=z08#@!(;e^3b`D`|oqY`;gA?<-GgzTsEzS zQD0KeN5&m?KOa0UduDHd<7`=?gx#|8skmZPJi2jTB~2;tS$No)cttZy>~nVD-Xrn6#WV=tD^tJ>`*)7b5$u;6RS z3%s7TysrPvK3EHuPq&BAZR577x$|;K*PefJKj^;sNL*#%^Yc@+zl5`ctRMr$-1oVk zc*#&lUQ3g4>l4^K-3qCa4sJca?R)LD&3k?65A(bJ^AkMO3*`d9+8Bm7^)IZ9Y9hh% z&*15?$d!i&urs~=7t{0IVmT}trLOq5xVc+kI>X)F^n4ojmzu@WYY$*k_hY5K&r|z$ z=ZNP{^i4;xw)Dab%`WDbP>s(6#ZS}N_{R3DHk+-FCX``j+LwNFU23)fLYQUW*ZFJ# zX~qyFLLQGx+vZJ<>(0+xVvu8O8HdstL-WR6A(IcRUDJ&1)OOnRm2C*SD9)ps-;*0k z5Q9s-qW2y;3g(&pDO7;bIxzA5j!9$j_I8*!o0C8boU0Xad)YV^XrA#M^7=TFZ3TV4 zVOyvF&h(q+f66fb1H6s#>rkSe==yl-27P$w;$msPSna)6a`$&k;-WNuEZKi7?Zv># z!P$SFEtVg50&_!%UiSq*P2?%kYLXb%^$7ZOy6rYq6$SaP)lvLD-nv0=7xHfpUz_4@cYQuqXBQuKUi)10CbwsQrZJ5TBjN6KK5g+{tM?fD0gL^Ly3fIY zbCkDeojEmW*Zlzu5=s0<^g2GJ`TY}ERIQ9 zCp8ygR9Re4-?m$wk2{j94LV=bx8IMnotHfH?^TR)<3Qk%&+B&mXWtmS?(PkIZ+3d; zr6;pI&q|#Q`@!IY)dt6PJ}XK50Ulwuq6XKlKT&ka7cn^)ZS1AP>ud+PmWXTrqNnG=ym#*>YZoe4Bv z&AMUi0=ojlWrge^K28tN+jh57%p4fZ1m8sUEQ7B`V##D5wf%tg*`44Gr68$wWY_l( zkp{tv$%EL2dMD-<9Y+)&NEx&1UuDypHLbmVoc@#)C1GOK-x=gde^glccGZq-Fet*wwa;$Yaosc56@_O( zV07C2Q+pS@Y2PzuOvaNKBIJMqcOzu7-|t|Y`WxpsKKuP(P>1#giM)*XWkm9-^*C!D!{j&posHq!n*HaI z{TZ^(ez-I&yYHw5%D&!%**|oL#`8SM4Z%t_;tHEg=bR4v&JK2f`bQ_{=MYUi`5R^J z?Qidu-@fwaR5JOT$`*_2qKGptEc=o!d;e;=YCAvb^o|9x{hJ=f->AQ_Ny>FXE3w)- z>g(^lt1s)bKj>$ciUmJTxmf~>jTIt>#P#k|jdSn)bt;RxGqC>?$sRO7yYT@h7&^gw zkKk|LUbEf_jtzKaVIS3ZW#5!4`kaXpzs`sZLp5(Wjb9AvZLnw0s?smmvlq9D?R%pp z`NAh*5`o`<`=Z|K>FV_KRFcT!;GurdgX!DVZ!tiuc?m^K6SyktHi*gF$Y3h1KEOdh` z(k(f?Xk0d!H{=7;0E@6>Ltl@ram{Ljk54eNd}TUfWA8{>OgkPld>=HN@Zwgw3_unr z`Jdf2g*MH1KOv&|v6}s{`ucdzbYRTG!*kU69)xY6)np@pnfZn=pZn zKX-{4F${VeU+IcrW%n~`LMwidYuA9bU#8p`yDp80|9OJ-4v+d{532Y&x6X6@oAXV# z?T;0cm|jFID%6%=xjq8+iLZQ>FM9tWe|=~k=~y6(;j8nWf~sfiV0JyJ>qQJ|+D8si%hkiuP4zMp4VE-7!(xAquGh`j4YvCss z0|D(p&;XWWVD{%j@%B^K69bzGj2ri3VpcJDGV~bTXd7+Un=0Gez0Q{^Bc`Q*kBjoNfXljSv%|3y)<&Kv*$n3|HO^Mx#^SoncG0V9jR zjX!e2_~9!34?aGG^-p>r6-w_=6u!l}hZ!=veM-ID(m$XQ1#{VV5zc69OG`bLnc~3z zKQaDazCH6lg!_NL{EtBg2ZMtNM8qg(aO1CKFvmyze?R*lX8r%A*8fKfU?cw*K2i69 eAj98Z{;R0yABZ34XZ{cTNQ*0oRf+uk^Zx+YrT. +################################################################################ + +PKG_NAME="pcscd" +PKG_VERSION="1.0" +PKG_REV="100" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://libreelec.tv" +PKG_URL="" +PKG_DEPENDS_TARGET="toolchain pcsc-lite libusb ccid" +PKG_SECTION="service" +PKG_SHORTDESC="Middleware to access a smart card using SCard API (PC/SC)" +PKG_LONGDESC="Middleware to access a smart card using SCard API (PC/SC)" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_NAME="PC/SC Smart Card Daemon" +PKG_ADDON_TYPE="xbmc.service" + +make_target() { + : +} + +makeinstall_target() { + : +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/ + cp -Pa $(get_build_dir pcsc-lite)/.install_pkg/usr/sbin/pcscd $ADDON_BUILD/$PKG_ADDON_ID/bin/pcscd.bin + + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/drivers/serial + cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/.libs/libccidtwin.so $ADDON_BUILD/$PKG_ADDON_ID/drivers/serial + + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/drivers/ifd-ccid.bundle/Contents/Linux/ + cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/.libs/libccid.so $ADDON_BUILD/$PKG_ADDON_ID/drivers/ifd-ccid.bundle/Contents/Linux/ + cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/Info.plist $ADDON_BUILD/$PKG_ADDON_ID/drivers/ifd-ccid.bundle/Contents + + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config + cp -Pa $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config/ +} diff --git a/packages/addons/service/pcscd/source/bin/pcscd.start b/packages/addons/service/pcscd/source/bin/pcscd.start new file mode 100755 index 0000000000..4eb58f0ab5 --- /dev/null +++ b/packages/addons/service/pcscd/source/bin/pcscd.start @@ -0,0 +1,34 @@ +#!/bin/sh + +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2017-present Team LibreELEC +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +. /etc/profile + +oe_setup_addon service.pcscd + +mkdir -p $ADDON_HOME/config + +chmod a+x $ADDON_DIR/bin/* + +if [ ! -f "$ADDON_HOME/config/reader.conf" ]; then + cp $ADDON_DIR/config/reader.conf $ADDON_HOME/config/reader.conf +fi + +exec pcscd.bin --foreground -c $ADDON_HOME/config/reader.conf diff --git a/packages/addons/service/pcscd/source/default.py b/packages/addons/service/pcscd/source/default.py new file mode 100644 index 0000000000..c2749857f9 --- /dev/null +++ b/packages/addons/service/pcscd/source/default.py @@ -0,0 +1,35 @@ +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2017-present Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +import subprocess +import xbmc +import xbmcaddon + + +class Monitor(xbmc.Monitor): + + def __init__(self, *args, **kwargs): + xbmc.Monitor.__init__(self) + self.id = xbmcaddon.Addon().getAddonInfo('id') + + def onSettingsChanged(self): + subprocess.call(['systemctl', 'restart', self.id]) + + +if __name__ == "__main__": + Monitor().waitForAbort() diff --git a/packages/addons/service/pcscd/source/system.d/service.pcscd.service b/packages/addons/service/pcscd/source/system.d/service.pcscd.service new file mode 100644 index 0000000000..1434d18b61 --- /dev/null +++ b/packages/addons/service/pcscd/source/system.d/service.pcscd.service @@ -0,0 +1,13 @@ +[Unit] +Description=PCSC lite +After=graphical.target + +[Service] +ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.pcscd/bin/pcscd.start" +TimeoutStopSec=1 +Restart=always +RestartSec=2 +StartLimitInterval=0 + +[Install] +WantedBy=kodi.target