[Fingerforce-commits] r128 - in /packages/fprint/pam_fprint: ./ tarballs/ trunk/ trunk/.git/ trunk/.git/branches/ trunk/.git/hooks/ trunk/.git/info/ trunk/.git/logs/ trunk/.git/logs/refs/ trunk/.git/logs/refs/heads/ trunk/.git/logs/refs/remotes/ trunk/.git/logs/refs/remotes/origin/ trunk/.git/objects/ trunk/.git/objects/info/ trunk/.git/objects/pack/ trunk/.git/refs/ trunk/.git/refs/heads/ trunk/.git/refs/remotes/ trunk/.git/refs/remotes/origin/ trunk/.git/refs/tags/ trunk/debian/ trunk/src/

dererk-guest at users.alioth.debian.org dererk-guest at users.alioth.debian.org
Thu Jan 8 21:54:22 UTC 2009


Author: dererk-guest
Date: Thu Jan  8 21:54:21 2009
New Revision: 128

URL: http://svn.debian.org/wsvn/fingerforce/?sc=1&rev=128
Log:
Git checkout with lot of fixes including:
- Use fp_identify_finger instead of verify!!
- bugfix of bad req auth over SSH links
- enrollment implementation
- 0.2 and 0.1 releases included
- little modifications for repacking

Added:
    packages/fprint/pam_fprint/pam-fprint_20080330+1git.tar.gz   (with props)
    packages/fprint/pam_fprint/tarballs/
    packages/fprint/pam_fprint/tarballs/pam-fprint_20080330+1git.tar.gz
    packages/fprint/pam_fprint/trunk/.git/
    packages/fprint/pam_fprint/trunk/.git/HEAD
    packages/fprint/pam_fprint/trunk/.git/branches/
    packages/fprint/pam_fprint/trunk/.git/config
    packages/fprint/pam_fprint/trunk/.git/description
    packages/fprint/pam_fprint/trunk/.git/hooks/
    packages/fprint/pam_fprint/trunk/.git/hooks/applypatch-msg
    packages/fprint/pam_fprint/trunk/.git/hooks/commit-msg
    packages/fprint/pam_fprint/trunk/.git/hooks/post-commit
    packages/fprint/pam_fprint/trunk/.git/hooks/post-receive
    packages/fprint/pam_fprint/trunk/.git/hooks/post-update
    packages/fprint/pam_fprint/trunk/.git/hooks/pre-applypatch
    packages/fprint/pam_fprint/trunk/.git/hooks/pre-commit
    packages/fprint/pam_fprint/trunk/.git/hooks/pre-rebase
    packages/fprint/pam_fprint/trunk/.git/hooks/prepare-commit-msg
    packages/fprint/pam_fprint/trunk/.git/hooks/update
    packages/fprint/pam_fprint/trunk/.git/index   (with props)
    packages/fprint/pam_fprint/trunk/.git/info/
    packages/fprint/pam_fprint/trunk/.git/info/exclude
    packages/fprint/pam_fprint/trunk/.git/logs/
    packages/fprint/pam_fprint/trunk/.git/logs/HEAD
    packages/fprint/pam_fprint/trunk/.git/logs/refs/
    packages/fprint/pam_fprint/trunk/.git/logs/refs/heads/
    packages/fprint/pam_fprint/trunk/.git/logs/refs/heads/master
    packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/
    packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/
    packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/HEAD
    packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/master
    packages/fprint/pam_fprint/trunk/.git/objects/
    packages/fprint/pam_fprint/trunk/.git/objects/info/
    packages/fprint/pam_fprint/trunk/.git/objects/pack/
    packages/fprint/pam_fprint/trunk/.git/objects/pack/pack-edd652755a69ac3426b05ad2ab5963a462f8fd07.idx   (with props)
    packages/fprint/pam_fprint/trunk/.git/objects/pack/pack-edd652755a69ac3426b05ad2ab5963a462f8fd07.pack   (with props)
    packages/fprint/pam_fprint/trunk/.git/refs/
    packages/fprint/pam_fprint/trunk/.git/refs/heads/
    packages/fprint/pam_fprint/trunk/.git/refs/heads/master
    packages/fprint/pam_fprint/trunk/.git/refs/remotes/
    packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/
    packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/HEAD
    packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/master
    packages/fprint/pam_fprint/trunk/.git/refs/tags/
    packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.1
    packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.2
    packages/fprint/pam_fprint/trunk/.gitignore
    packages/fprint/pam_fprint/trunk/autogen.sh   (with props)
Removed:
    packages/fprint/pam_fprint/trunk/debian/watch
Modified:
    packages/fprint/pam_fprint/trunk/debian/changelog
    packages/fprint/pam_fprint/trunk/debian/control
    packages/fprint/pam_fprint/trunk/debian/rules
    packages/fprint/pam_fprint/trunk/src/pam_fprint.c

Added: packages/fprint/pam_fprint/pam-fprint_20080330+1git.tar.gz
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/pam-fprint_20080330%2B1git.tar.gz?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/pam-fprint_20080330+1git.tar.gz (added)
+++ packages/fprint/pam_fprint/pam-fprint_20080330+1git.tar.gz Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+link tarballs/pam-fprint_20080330+1git.tar.gz

Propchange: packages/fprint/pam_fprint/pam-fprint_20080330+1git.tar.gz
------------------------------------------------------------------------------
    svn:special = *

Added: packages/fprint/pam_fprint/tarballs/pam-fprint_20080330+1git.tar.gz
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/tarballs/pam-fprint_20080330%2B1git.tar.gz?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/tarballs/pam-fprint_20080330+1git.tar.gz (added)
+++ packages/fprint/pam_fprint/tarballs/pam-fprint_20080330+1git.tar.gz Thu Jan  8 21:54:21 2009
@@ -1,0 +1,50 @@
+‹ qfI ì<kwÚH²ùŠ~E‡$ÂáiÇÉ];ö.Á8æ/àÌäx}td©M„¤•„
Ï®ÿûVõCj	0$gî½±ÎLêêêêªêêªêjªµ'þÔáy³»‹ovëê_ù<i4;WoêÛ»'õF}w»þ„ì><iOžÌ£Ø	ybӐ†ŸVíkÿ?úTkQh=°|¹ü;õ7òÿ
—`ÎŒq:^\µ¾ý(àׯ^­ãMãõëœüw^oï>!õoOÊâóƒË¿¶¥‘-’ʏœ5OÉÌ·ç.%c?$cǛАµs
O©;–;¾GâièÏ'Sâ:W¼3¢jùÁmèL¦1Ñ[%²
+Ÿ
™žC]ršŸ(ykGöß'€Å÷«~89Ä>øÿhêD$ýIhÎ|
‡”’ÈÇ7fH÷É­?'–鑐ÚN‡ÎÕ<¦Ä’<»TÁÎøñÀ»¹Âê(‰i8‹ˆ?f_Þ÷ÎÉ{êÑÐtÉÙüÊu,Òu,êE”˜04¾‰¦Ô&Wö8F†‚rìb6ó}B
hÉ5
#äĶ
C ,?D$º#å!ñìWro‰kÆi×êªù§Ó´‰ã1äS?€)M'LòÆq]rEÉ<¢ã¹[F L~éŒNúç#Òì}$¿4ƒfoôq€ã©­ôšrTÎ,p
ÀM/¾úÃi{Ð:.ÍwngôfAŽ;£^{8$Çýi‚rFÖy·9 g烳þ°]%dH‘,Šîáñ˜‰	øhÓØtÜ(™ùGmä¹6™š×DlQçˆ3‰Ê´‰ø\ß› *œ' §œÜ'Θx~\&7¡û÷
+¶L:žUeÌÜm ”é}rùÃàDZ3üÇ®ï‡eòΏbìqÚ$õíF£^M«A·MœXMÓþâx–;·Aã£ØvüêôPy5÷@¼vö]tÕâÛ€FÙ×ÁM
ô›à;奰Þì¥MaÑR\ÈÆðÔhžNÔÞÔš+n™Íçëœ
¨
„•MpGÔ³
ÇûÆ,šè8
uæR#&[ðmZ&֌洖´kË÷"è‡s+f¶dF£ÈœP2»r@ ¦P
Fß‚]9`´Ú¿ŽŒNï¸_­ð
þ
owû÷àÄQ }ΐïkž`xq
´Z€HyÒ(ðQa¶ð´ádÃ}á'Mhl€ªÌt>S¤´Õï}(rí;6ÙÚ*‘çUB
c¢‡ä)ŸÓð¼Õ‚ÕR‚
4ž‡
 gO‹üç?þT‘¸,ÿDd£Þ(Ãô`šð)-³3@KM#ˆC÷nQb4T`íÁ ?0N‡ïöu“ãtq‘ðýæ¬So>#ãÀàoÄÆ«ˆ‹Ã{&ðõâRÈè¢Û>
£“óÓwøªèÒqn>»*–“æNï¨ýkÚìÀöøYi>í

uÛiû̱Au€A§÷>mFã£4Â>1R{»N
ËÞƒÎû•:î(äq€”> È
+9„J"Ihä )‘¼Y¡’¤dÞ	•lKR–¢ˆ×‡DE”*)ž÷~îõé÷­à"â
/3‚ª
BfæÚ@õ ÕP۰鵋–·Dz
+jGÖ5¶ 
¢r²Dd#÷ζ¶x×2YÚ×ÀÎe’Ó²-©€LэLª—ÉoüØ”ýUã±?‹­l8
0ôλ]€˜`ã5X#;„=4
»œ~4`CB,Îïh¯ø
À
Ìa !ƒ?õ‰éº4¼ÅåXÿ©Ôß#¦mƒq
~˜D—ZÌO
ݸp3uÀŽéœò1Ê
óòåe‰-$¶ä‘hþµ èWæd€£L_ç²à˜Ð¬@9#¥#§MTÒª+]¸T 
ÿà›;A#>#1hì2ÜÚ?ödز½Rtbº¨rþåKÙýŽÿñe’•ˆa`ö˜k¿9ë D„û|ò-

ìu)»úÈŒ/I£$tÒ›ëÑêà
Šé2Õ>©â‹dHÝÏ“‘vÍÑ€á‰$W0@]Lûëµð뤼‘„a!s„é2Æ¡?SUšý[XÂú‹ß.K\QqDñTJœkG
+—²›·\
Ôüľ¡R^sØÅ™ñvuqüƵPjŸ`o²ì³
íÃ\18
ß.u€#ÅìØÂu–eÑXæmåÌül€7NQµvSæÇ÷³·nbþü›ûÜuY‹ÎéSD­£!(åppD’øâÓEýAµ‚ís«ÆÝ¥Bu墱ý?—h1BoÄxÑ<üÔ_ðP„ø|p"Pä16uôúˆXDèS–IqˆÑ¹àØÜgQ11ñ8±Ä
!JOR!K±:øùØd‡€²]h±”µT¶·%r{Î%t†•ºàJn<™gQ~>Èöà]1'!Ùd@GE.Äûfr¬¤ov™¼Åù3¦òåvß

+ù C¡_.Lt§1ØĐÎ8ï5?4;]Ir‘¹5²9É–	‚8>3>´ãF¯oœ6G­“½%Ø0êØ_ì²^8óKÀíÑàã^2‘œ$¸¼mÇö^Ää_sLÜøá§*9s)â‰a2'¦ãU‹|Ɖq[6Œ1ê÷áI0ºgÀ'€ÄľÙìnðU£µÚ½Q{`
Ć
¬
QLÅ‚eÍ’R©vcNzE `6I±Š_HÈ }ÚÿÐÞ”Îük*iÀ(O/(YNnDl©‰%®TJhß–èkq¬žanlB›D uðà&Î5Aæà^m^Øs0%ºd¿Ivˆ%Þ³âʯt­
+sý%^¹ØðÖºÒåô#FÔHûŠ
ÅÀÂ{N¬§q5š%mMИ{
‰mЉ,
*¾J1_<Ú gT•ˆ¡dü;·=
+'#ƒ¹q|¨ýucå]ÚeQ›Àßç<æz.ýIOâþª	”‘$Þ_CïÒÖb©Tχ ×cOYÒ9«f^¹TÍçG|yg&ØfLcöÔ¼†ÅÁ Áe°1?*ÖÝ:Þ€P“	˜âÔãQ´Þ3‡ûgÏUAFeªnÂH‰'XŽuF{S¿%ïõÂYH¹
«/糐÷õù‹D¦
˜ƒç|TVÖmQÔD[=Ù¥sÕ
+20Ù`®K§
+3ÍO4;O.+­åúÕ
hÅÌCfY–ðWØŽzÌ>¢]Œf†rlD—úæ;vÍIÄ?šáÄ*g
Þ-xw½§~§Çq§Ûe£³ŒíWóñÅîeÎužG4D×MmMýµ
ÅNfÝØHþU’Ž
ÙÆÁI8ZH7*_1÷ÈhMÌ$#ü)§œ<ŽÑ‰ë
‘CéÚÕ¶Ø>	kØõ'Ž!XuR%hâÈpxRb™
uOÒŽó´?—¼(óØvmntµæ,-¥qp(u‰:5Ád\B
€˜bϝ÷¬
7`àÃ’È÷˜äÊÁH>LMëžìÌð|19ŒÄ“1æRð„¢%ˆyÆ°Ó˜z×zñ¤Ú'X[&ì^ÆM4.±¡1ë]úÓd=)h6X;@¥Rû/›e^òÊA¡3
ûŸ
jØ?ûÔûñ‘ORÿÓèAŠ?ž¬«ÿ¨¿ªï4òõí׏õßã©mmmi„WŒÑ¯À³s3d–¿íÇøºŠGnÊ÷¯¯ÐøFߢ>c³ò²8ó/¬ÍÀÂ@òGJ3þXerpl^˜sþÃe€ƒfð¸Baá&EÐy¡,ƒìþ•Œ(°‡’3×´@ŠC–«ÙÙ©/”c4°
ã
`965Ðñå«ê"Ì psE™²	ˆ3Ywžv<=ÙÙÈö¿–ÓgÉ¿Ìá_rÚ
XxˆK{Á½0rÇOÈs;ï4qsÙ™z¤e<pÇé׶ŒI ßá%ž‡‰CstltÙÊ},kêŒàúe™¼¨½(•J”Ÿ	qHŒð;fPè¯‚Ü oHQÙ—C²#9ž´aÐ&S<Çj=L»^¼D^Âg9­ÃËzÅr2ji?AE?;±Þ/î8
ÐÆI9< Û%ò7Niã’ì%ˆx79JÒáà é
¶±ç2ÃÄÅUÂfT

·˜Q½VCòöYtÈV›¤
_TÙ¤Rщ¶ÒR~ß‹~9æ,¾TdL€Û_¬(•ç
ÿLK¥|<pŸÁ‚ÌÁ–0´H%Œ2å¢cã
,õ¬SÌ<+R¾b##Æ­Ù@ú׿œ80`9ÆmN
!©#â,!/›f¶D2š["ØPØê«çJ=[Ò°­çþt
3îÛþ·4
ÿ̨Ü=ºè?ÆÃýÿSˆœ™›gÎ
`Œ5þýÍ«í¼ÿ¿óêÑÿÿ.ç;·gƒþûAótȍÆ‚Ú•ãå^‹q0M¡ïº¼§~9L5òE»í„5×¹ªIJÓT‘oûç0kÙîV¨uÜm¾G˜Êø¬Ó"?éÇgƒNo$Þ—rÐÝ£<ψÚíÍ£#hýIG³Úí¼ƒm#Aɾ2"‘
Yòxœ´-ÃSq¥‡˜™(çÙÒÉŠ¶ìœ|:B†ºEÀ„A¬¹_þùû	1ßPÇÖÜÿؐ[ÿ»x%äqý‡'ÿCȏ´Ùߤd##žR¥Ñ܍ё‚PøÓŠkÌÈqoÉÏS?œÿ>u¬Oä­é™a!åß'5’ù³Ã¯¼3‚ÝÞ™xsàeY>„hì9ÍþÒÏ&‹ì|½ä‡½]ò£^.W°V]¹ÿÊ„Æ L¹ÜH²ªjÊ5“•µìF¦D=_¡ÞÅ"ñ‘,Ϩ³ÖÖ^¹”)Eàê”Õ€/€%
àh€AP
D)g@]V®‚å×Ì8¥TçëÖyûÝÕë
n‘ò\
;ËÓ¾PÉÎÁòÔßí/«7WŠG”zPñ
戲
+^ð¸¾Ì›•ãù
®FÕ¾îYàœÅxá\Âòyù’Ÿ¯)¨Yq
VKæ˯ՒHqö\Q7[d²ðÛrMgÆ-æ’xŒ}±ÖaUÙ%WRöD
Í]zÕƒ¿¹[SÊÏwO}I±i¾–T¹Þq**JK²L÷²ôf6ŽlòìFšu€ý«œø.ÜxíÀ
,;cÅEØ‚a—Œyš3bЏ'Ž2‹Y\f(ËêäžJçX2¡‘¬TMªO#—Ò€ååRIýÓ&ôNxþHŽ ÿ¹ÔbAƒ3›ðbÈçY¦¤çÖ²œU-‹”CrOF}1+.‹ÙDÃL£,bFѯ*[l÷ýn×hõOϺíQ{oÉh’¯OùÌ–Ï	,ÇÍNwNoœ”
]óèëoBÌ©ïé	â
á9ôgÍápz&3Vë@í*ùhÞ®§4-¢”¸ŽÔ’Iˈ˜±¤pr3ä¹ÒIEÁCmT2¹á8‹E“¹)¥“IY]:)ªsµ‹_DÐbñ¤$ˆVe2Å“*)lÔ):`ù²ÉE
+ÔÂIVí±¨Ó¥ä
\vÉÉ’µ\â1§õÌYô|žý›$ ?BËéäœ °AEGÑ/K³Å+Î_ˆ<€Iª01s[ƽ‰}õèçØà>ób‰£øs@”MžU”n\ˆ¹tý²ŠLü—U©î•¼5‰ª/ÈÇÂÇât¼WÜÏ]ÀäÍ}W	š\ü7t¡n ¦¯Î-h™¼˜¾¸+ó&ÎæÊXøÈ73–0ü{Ò¹~ÇoÑ%†_á/¯	‚Ï’¢s¡tÊÙy”3¤²½:±íÒ
++h{¤³õRÛ"gÈAVËË/žÖÔu”
/‰A˜ñW|HÐBeZ¨TGðòȉ×¼åž?GŒ—áŒ9õ¸ºÄ•è6†nþñ»ŒiÒù;¶±†j¢ãÊàL×±y;lÔCì%0‰_•:ÕàEá1›ê
*Ž•‚¶þŠ<prÛ»#À®ê$§i|Z‹¶—w£k1ցÀE0ì2¨uMo
}ѽÊ
ÑÏ¢=ðª¯CT†Ve—é³”
ù_ÁÌÌ *C“óÓUœå¬Íðön‘³•Æ
êñ‘ïQ®%BU«B—h›ŽÍ¹3èsXµ0”kŽ+c©_]œ`ú+Ò¾b‰3‰æTr}V÷š2w
ç
X
ÛAD&:šhì0ÆÈJŽÙL Š;°,µ€Û·´ã
K‚×îÏ#÷¶J:c–ˆ¹1=–[ô€lNñÌÜRÂöß2ñ17rã »¦NÌ‘´âÐ}ÙËì
ÚK½t‘úò,="Ä.èÑïJM¡\ˆ)kYÝsÖÒß_Öž¬–S‘–pKxÜD’‚‰$úóX’
²dl—M-®_1tÏ—Ca*
	°ºjÐ/©÷^EÉJBR
 jAÔ*R¤úö”ÊH*~a|Á‚
ê¢2§&˜í¼„Ç©-ãÄDIœWB+j¦T^c²TÇOy,ɉ
!Ø/q÷XbS	SgóåÝŒª}-¡goi¡64ó¦»ùêÓ?;
ýøüIOµÖkÿ2|Ø1֝ÿ¾z•ÿý¯ÆööÎãùÏ÷xÒÂO׉b4–üšì `´"<
 &8ß!e‘g•
ûüì“K°G±²,:¸ šè„EG”´Ø—®?©j
éT°&ï¯{äº^Ý–è0ÎÄÛµb抆×x	0ŠXpÃÎtÄ
¼]=*aÿ¦m›ÍâG,Ý“Õ7úÂTI¡e—ÑÒPiéð=ŸŸÖXIËÿcóX­
ÚÍ£ÓöCŽ±fý7^Õóõߍ7¯
×ÿ÷xÒ“_í y4íÄŸÑ€ÅËÓ8öjµ›››*Vì\›èzT
ÕnœONí,Å£T'àQ£©þ¢ Ä `Læ°ÀS§úE”ù‘Aõ–º6† ƒNÌ
-R¾ÐÕ^•+vÌoIE·QLg`vÞÑ1
	ÊÃ]¼¤ÐØ|™Ì@øaŸ@¼‚ë
PjÙŒŸ8j`1
YœhŠq
s€,s@[
+ÝKU­™„U–ÉÐ/
º
z];6F ˆÚöف;šhŸe
«Ú`îÉ“HˆY’£Ï9ã	N‰šàÔMÑçMÜ]ۏA}ñÞ¿ÌW]’LÍä<œ%§&F  	‡zð?ö‘åäü¸˜k£%
;¬&Â3߈†Ek¸­püw&Xðº~ÀŸ‚Ù¦ÐC°«0ŒÄ=iOÛPOy';iZÛûÍ¿}ªAˆ~)ÁŸ½ ÿä§Zƒ({ìLæ!­šsýg}ý_c'_ÿ‡%Aöÿ;<Í–ÑéuFúEj.Ëä|´Ë’Ö<exűÚü¹­t«ß;î¼7†ƒÖQg _ä=z!ÔÙ =hÿC¿Ø®îÖQ‹•	­â–ÑgÀ­“vëgãü6b\ú•@žôéð=ÿ%BýÍΔš6þ@ÓÌŸÑ›\–øp
g·ó¯0–ÓJw˜›¬Õ;(²Z½â% ^ÄÛSh‚Sšàeh‡ç´ÚOÓÎ~~/Æ:íwÛCQ~á|²Á•®™2¾ü[Y²§ðï4õY {I.Ôz]>×þùèì|ôu–¬Z3ç±±M¿±j%Ϻßÿn¼Îÿþ7üûXÿ÷]ž¿<­]9^-šj¦
?ábn
SD¤¡¡fàî{Å®YWLR±”e!x‚AdæbøŸ†•f²~ÚúÑ·ÛÿuOõkÿñY›ÿÙÎç¶ww×ÿwyäÖnôÏF~oÈ žúÝ	¶µ£ÎpÔ궛=¶
A[’ÔWþü
x øv$M«žô{÷RŽg
hÉ›=­0cQ©À¿ü)†ŸôØ莿‡P«b#DdäPA&öÿÛÞµ6·‘
×Ϲ•1¥JÉYÚG"Éë*ˆ‚Vˆ)RæCZ~Z
€!9
ô 	ùõésºûΝ¨u’²SIˆ²¹1sŸ}ûyºïZlƤg6|»\~z¾õ×õÝsöþa1¹^ÝÝ­WÙún¶Ì§ýz¹®&°o
+Xb¨ˆ
㟛Xa}¡„þøߟþ_ö÷t?ýǨ_qzö·tÿÖùÿÝw[þß~|Ðÿÿ.Ÿãøÿ÷§ÿxtr~18>þöñíóÿôéwO¶îÿùáû‡óÿwùŒ2ÿÙLã%£Äy‡¢	»?!´óuž<{ö}?àÏùóYy<¿ãÏ'üù”?¿çÏzÃüø©!´Ê’0egºœÐÕi‰2ßÊ·@aÇ¢ëŬœ—Ä¡­y8—Lÿè%‰0ôIj¢OV®à=Îër’¥”¸ÈWù˪,®gÒËWÞ
+ƒœKkuö11‹^°>•þ¤›TZݳܔŸB±r6íq4ö”%ä“O¹(/(Ö¯ël¶ü"úK@ÖË¡f½ÓŽÿUÖãY-åäcrâG
øì麊BZïÔwÅþwÍfIúe’8ºþ»gó­'Uy·ÊòÕª˜ß­.¿Y±3YVU1YeŸó™ü›}Î+À}ÌI/¿+¨‰—áX Ù±FÂ
+Ý襮¾Ì|Ī^uXÝ.ëÂ[Å^V
fÝšÙ‹‘KÑìd¥$ÊÝ'4xt“å³:¶ à•g}ìßê"ÕD"‰
‹uÇ
xÛJi0-¤a ÕC•¶‰Hk™lýúH$X×{ôô‡˜€¶^xBÖõzkZ¦'ÐááÏ“uU)PVwÁè%ÜSï@té½t躖b¬WÐŒ÷5»‹ÚÙ†»3-Æë›<œìòîýhÅr¹çßF–Ï”–öW›»rB,˜
8|$Ùˆb/`Œê0
þÇÃC~uˆ÷j=Œm¨íÙÈSG{a
+bhR™}W‚äŠZ	OèWZ_ßaÑlH|ʲ#i+k˜
+:ˆñ&3$
^
+{W-åÛym1'm”YbÖÒe8L¥[E¯yÆTVi±®×9ÏïâF	U· ¥ÃÄ
äs¢ ¡Qœô´M‰’n'Ÿ²/·#+Ú“ü:W@è$ àSc[GÛòÓòé”p:°ÇHl‘+Ô|;¸ゐã²oÊ@
€°Áø´ÁkÖ5ë’€H±8F”«€†ìn‰XS›"œ:븝hjJD€£ ?Å
Ct‡Õï2”bZ®”Q_Ji_Ã{ŒÅ%*BH¥q˜È7BºÆBy7R÷Ñ=a{}­‹Ä=îtU^‡x‘–)Ø€¡*Ȇq„Ó¾t½riîK“²„Â’!=	BâÒü¦MG
‡–‰=Çb<éK'Ó=ßî†ÿ%¬ ¡¿=áÅ´mÆ<‚͝UIØža2@“&<:Y5¡W¾}¶^,:¼$›ë
0‚¹BReM?šZéãäZV›!ùØmB8é3Æ5”|-(íÖxG–‚gßʈ8Š§ýìBf“}„ØÝ»çòÉïúÙ靃Y{\}Kå»àÎm½>4–¶4ÁÁ-tÀݦ¿OÑÈ~‚L]ÂNt6E/$ª ’?iÓ-ý‡ÿÐ'Ijö2GÒX6yÄ
+‹
ÿÒX›ô’Û¾Æ
	4#‡<
[¨+!‡~Cp±T9Ðô¨ÍhÓ\“ãâ9›fûòŠKº
û@Ävò$f-û9ÛÅkT°mm¸fXÂq¬Œ0·ç_´>žµŽÄ[äªhÞ3àN+ˆõ©ÉD›”1¾æÀXè‘ôÈ !
Ê•	ä”K M¨XùpDÀ%˜Œ†Åã–^VSeç	³H–s’Ïmcô?ê®J
+G&Þu¯•–ë
*+µÖsP¬žV0ß¿¬Kðo“Wž[‚‰'
+8™
½OÊ@ò·½¥
ª‚CÔ€»Ÿ ½ÍÇ"Êúd-vbà
=Ó;˜µø?O»«jŠHŠÅç²Z.æ-MQùŒS?äY‹êÁhŸm¥	
eU
¤ê0Æ¡ÖšI"j²ÑÔy̽P¡Ê?'C’é½Ê@R,¼ôÀsã‚霏Ž~š<{–i ï§Ã›ŒÈÃÙݲ.¿òù>Øí•JÌ{Ìóç½
Iî¶éÌ–/ߊ-Qõ`P‰²ô6xãnØ"‰«oLíYö}A-¹{*3£‡5Ô ·î{ÜÍò‰Ë›6÷‡zž'#µ•-«€²U‘
)¿™ª=ÒkÁy·¯¬]
J¤^hxØò„F4wGB¥ôk1Y¯tÓqd—ü«p{ªšÛ$ÎΚ?jTlåº/ÄEí\#¤œÕ(§Ü§$2ãOŽKOiü5Q9T‹ÃfÊ=zu~­œã¾~©µÎ9àSÄÄÛˆv²™åàÚR
É΂‰+“¶ºhm%+Ém±èlLDVhéæ|?_(GLې©·Ü'ȨÙmƒG=¾×²öKÝáàÑDg5ðññº®
3 Šx(–ÖŠ(‘h͏ô)û^ž,VU¨Ríç
ø@™^Œ‹ëò«ñ}ž¢¤5ªzE‹¡’X5UGL%mâ§wgÃ×£_öÚÌÏ»­0µU±«s³ÀÓ%>Œæ~sZß#‡Ê-tµu\àäwFˆsÔ&è2™R¯E94æõAIQÅ
ëtmÆK®Ê^K7Rh!i¯Ru(Á›%ªS½BS,^ܬgyeݘᶀMTª
]6Ò
<Æ$bsbgù¦Ù&:Áåå¬Ê“e
+BÙ«W£³=3I¹7J“H$Û-'S K¥ràM‘¹S`ÊñÌÍå¤OÖ$zDœqA¾€Å´›ƒÓƒ?¦kº-~TÔg(râ'}#d^ãHeÅ4¨­á·ªòHíb¬¯ù›qv½
±!÷¬Cî!%wvÕ¥'XtÍ—ÚüOç—¯íL¸Ÿ½6Ë`›a˜öc³
ý´¡ïj±2×àLj`x=
\\ž‰Yì[¼Z†5«t±ÇqÈ’’uË9âõ”[fÁŒìè~Ú5¬èá»ÁÑ?7ð
íïÐ8šJ7‹õa^ëB}ØÕ×_DŠ,¦¢‘Sí;P}94–¿–É™Û `4±GZòQ%ëáz ÓXûÍ¢üw×Î^“Æm¥ù´ÅÎxzm‹~

+èíÔÞp®Ü°s®T«R_Â5Dmt±·ê
ToèŠuŸŽLðë¡uRë†éÅ?G¶³u°•²yÛ
+Ý€B`ú«>:CßPÆhêW©b\¨"
íÛÎâ@½N<EíÙ¦ßÅ”Çi|Õ
ºëx£ð]XOBszÄÚêS>a椸Ô
è	o®×óŽß š|Õ+cúŸøJà¯-ASoooô#MÈ
Ò=³ëiòàw×9ײ\ùÜÕ¿¬Xa›
̪§F at i¦‰pb8Óº¸zO¨^þÉX™­qA-pɬ ìFÍ£ 
× !ˆŒúX¯ßï¡@Þ¢¶,°èú¢º$nM’!GÜm€£w—‡(­08¹:<¿:¿¾
A²þ‹Ã¡ÅH4y
Vµš×ÞÆéyöÇáÙÉðøðôœr8vËé[¯Ç{Åº¬kBÐMàHÃTº¯Ëb6¥$­÷Jœ?dV¬q0õ¬ÀDês²ÓÜëI“¯»--ÿ(

¿r_ ÖnœÒ«årfFZ%Ã>œ¸e£"È%~x1¡f¼í1SˆvÜ"tÝHõk‚ÀƒHéÚõ]wuӏqUʯØd'Ž³§ë&z
Ûjkg
-K÷~±gœùéœR6
!ÍéQ|.Û/ûEßú”ù*
¡=À´Éœ]Ø<¶v(¢«
Më:CÝæT¾_©Þ¼-&Eùn¯
+÷–'
+̶u¤~xÞT¿-µÐÔ(ÓŠ‡tbx`Ï<ï3$}6&ºŠ¼££=ðø”eôG]ÏUué¦ƒœ-—fž}Tâ1Çú¸Õ¿ò¡â+’â”îƒ?-úþýÏÊ¡:­¥	kFVä°éÑ
Pé.g†»k]Š¸Â ë¥Vg ¤
üÏé_Gi×òc†¦%¶^Ûn
æTüVSÐñ’rƒÝÛ· ´"¦Š“M§§†:F Ü%Ë/B©•–7jºøÅìn”^Ö°ñh`<H=¯w“MÖµˆ>Ñ7¦	“#÷
•˜DÉèSߏζœ×5yU?„}ÚG³XÁ0a’V4¦qõÌ—ÿñýàì'Ž“„îómgPc>%÷f2	š¶Ê3Ïp<ä«=µ_˜”9j8èþz1ƒT¤W  Û¾*§Ó&Ƴµwì]¢–Éj½Ó©Aì.öÉí¢ü˺h\y¸SÏŒSò›áññžl(7

-<^#Üv)ZäÌ6ì†á{1@§Y[	“?£á¼BÐ>ÊʤƒŸ¸*㼾͚ßZk¸óáÐ:ð£Åg;T÷(_íÇ
ÖĸEÚ€¡”j9c„®d

+YϏf¥É/·{:!–¥ÁÙYÁ4q褹–I¡)F¶¤1‹
+¡½÷­öЄ•ãò{l+:‘;tkþ~@·³$ħ=;\(ƒò¸Þs³Žµ"lÖ‰ÆRð24"d‡Vz©ò¤XH;ˆ³‚ËÛŒÕëš<žŸ/Ö)±è‡n9DuuÐléÐbÌëÃY™Ÿ¿?̬Müe]+¼{XËþúkæÕ’@SåbÊR•Çæñƒf3.ðçy>%PÆ
{š!W0ìJÍ,ßcÅYb$ÊUwÖû0ÁXªN›‰SIW¿8¯áâ@'¢XZ(úα‹‚û#~eâjÍäM
^³¼4ØÑÛ{Bsã»-#¤ß>T‹™L
+È'uñC÷î)s)§Â|âu9±è

 á
HÇþ?£úßúé?>:}w5:ùùoØÇ·ñß÷äi·þÿ“~øáÿ÷÷ø轧,<<ž
Ž³w—/GG™üxr>´‹QåóÞ‹Q÷²[ËáòìÙ‘Ø],à¿>#þïÉoaûØæ¦rZ™·:eCØËPÞÀ’V+ƒu ²3SŒtŸ<;–þçønRU%,­óì‘uõC¾a.‡²vm[”Öi?Xa4‘ÃE>q‚P¬¥ÚøŠñÅ„j2«º¼Yèÿ 0`ÐÆ)E³›8øˆ FøRÑU^¯Ôƒ¾]°:xÁê4ŒM$^Ž"Ü
—‹üFWø.ø˜Å²¶+5k‡{Äé8“6×WÄÔ0
Ìf¸¯–6ŠshŒëcêBû毆T(¨’”tèë"[±sÁÀâBŸe¥q
JÒ 
+9Woÿ<
+œûÑ¢éä¬Tjµûb›·ñž™Á^äÓþA’Ád7*Ö—Þ
õ
|
t9|€?åÕüüÝóiYú
¾ÂˆÄŠ
.¯w>ÙRrÑJPç*;•æw¬Þ¢½tOµ|A¸u=.¡Žäìè‘ÙÒNeÐ
ž'¿‚Ê)¨ŒpЋ]yö–Ÿb)0!W¡LÜå*y•~¥Ô5ÊëM”Ť0@`†²(¾èx}Ý_˜ÑhÍÑUåí*†N’ōú®/ 	\©G‡l®æ®¸»‹k)ª¬Ô$qˆËbŒË©XEdOôÁ.xÔ­m	Iןô+n¶Ó¯Ч*¨»½È‘®g¹Ÿ-xâp½q9E»ˆE#l+ÂÎ
MW’^M[þ	ݲdcˆlgsê&õ%ï9L1Ü rÁ«_âº(’ºôÚª
1)¥):
ekQ² UƒáñÝ9ÃÉÇÖ‹¤–W' ÷bÚŒ£¾Uïå܉<8$Ò}›e|kp†‹]Tb(/²§«â®~ží?9 \RYÙ^u„öŸ
Èú][´½%™ÔÈPg¾œ7ˆ*m£ÙCÍÞÜ\Ñꏣ
ˆ>ÞKPdŸ{µO%FSו¼;¦¸à
KaÆÈE›B¤Ñ·BÙébÙ\¡¶ˆ	(lú1™²a¾Tœ.lôÂ{×04ó,A;øRãuJA;•'8ÔÍn2v¸l	PÛðEé” d"¸„¥o1‡A!bÖLw³E>¼­`òÞ1ób\(ˆ£“”=aH«[ºIÁ¨YÍW&5ÛèìM8Þákº?±êŒ;±„Ïç¬RÃY$w™@2òªl.z«¼'B–ŸË©zŒ—c2í$ê3=bé
6'<m戋ÍÈE‰%æH
ÇQ+\Gˆ‡+›˜
T¨É|mBzüÆQ‡R´±“Öž©Ä_³˜Ló\NŬï:Ø
ö?ž\Ê'/Rê°»
ƒ
+)zŽ'P©Í¼¯êõé‡¿©!~<<{{ž
N^Áõj¤™´¸ÓÄŒ«^†LÚ³ÑËK|Åßž¾½


ðþw}½¤e‡ªdäÈÅÔ†z
ræ~0u @hÙØ•Ò«âלíÜ.g.M4Í
£Éu0açõ62°Ýê
¥£<z§ã{$Ús!×ÔYâð)’9`ôÏ
q*c¿Ì={ka^ˆœó8]ò
Ão€ÈªË³
|3áYþåypp'lŽ“§ÏvàÐiËàæX$4÷ñ¨
±´"Î)ÉÔÎr£l†ËœóçŽ
™œÍµfðì-(ŒàšmýtHåÝÂo~¯ó—ìkE¤ag²GiyÁÊídÅÔ_½ÅDv<’ƒ2@%U4Ò½ç¢5I*“P<
Y©ÃÈá
²Ø\ÃÒÈ
 S®¥u'•
Üò:Ø»µôÆ”]Ó)7¿¥¬Äpš½e}‰$–RÓA°·”d£åŠ1Û"´à=ï§8'ÙtáXܸýœŒk¼ÉvŒø >x
†Y·9Ûª5b§r'N.õ¾áô¯+üW¬®«Y3{uX˜×-åjs©Ž¹Hõ¼×),Æ°œ,Í]9Y³ø²žÅ;ååŒø•U˜udúThNšq
›„ÞÁRaÐ.ù_0“G`Ú]Ð×j—Xd\µ8¡Z~˜|>®‹Å„1]Ì-6ÍÌ"*‘}˜(í¥k]ýÔô’˪“§û
+Œå.©¥Cåµñ©Þnj" ”®õ0»¹–[–!Ä‹ãÂÛwv™ÎÕ£Dÿ‚Ðýê–¹+ÍžÔàc2ýŽ-ꬪÝã
Ó8[PÎ&O¬)ç:Ü{YqÏd©Òiªh’µ·¡1ø]7¥Ûäž„|,çv]ª«x^J$ÑÈq占à4â\g4켨Ʋ¶\عBɍ䚫¹
ÎN[ë=¸Š:r )ó•ðô)Ksoƒ´‰ˆÍ&ë<”ž,3m
§Ö/ÂÙáåDŒÅÜ(ü­VQ‡yuX m¬]^™Ú½¼îY°°Ñ”jfÜ —œ·s=CDi’i5­”ôº­	¸è×éO\uKï‚^C
3dmåÓs÷TÅB~
¾À"6±	u)A£ü’Õ»Šiä¼íZHÏïC÷5ÃÊÒÇTM‘nAÃÐ"9òúÔnvÈu ,ZwaÜZ
°–²O9^¶“ãålÀþp¿íƒl4Ø/=×À"}Ø)Ðqć½k
O¯(\%©>Šd¶ü£Ö11j‰SxÍy‘ÈÏeñ¥ÃÙJ£áí¿"p#M=‡€m‰ìr¡Üçè{ cš­dáãH	ºøê%X´–¼§L¬Å|6ÛV¦Ívvëˆæî~>;W§}r&M"½²Ïæx(0ŠIŸò=ŽuaŽ.PnñpS†î=š=Ê%HȨ—ˆ¤nÒ¤ÊTï`DÕñÛè 6}o.kü¹¨SüU¼	’©L€­àYœj´2™çRD[
>R‡!Ñߑם®át^¯â¡CtLóˆÍâ‚K¹:‹QÓ„õ_›-
]¡²ê¤1¹ÐÒ6Ü(´·œ
ö
+¨¸q‡¨§J€+Ã5pÉET$¶¶²n\É\SZ¨;QqŸ:­ª¸É«)±Phn—¸„‹„2=s]÷’0FJÿû*2L['
+#(F‰ÿŠj½
+©ëH
Së®BDa°êç^d²K·ŠD‹]Ѽ	Å×¢Ró×
g)Xa×b'Ô²uno†›SõNU€i	b~^¦sƒUòf=ƒóÀªìj(tu-2H’߯‰
àßyöy9[3QL¬^!Qyz3?Õ}.4Ž ¢dtÊ6IÓ°RvJ¹ï¾­ªw§Ð
=LH¦®þ<=`ÊŸæ!¹¼ÉB¢F¶Cþ†s?qO8†§µ¨û”(a
œ´²4úÓ`Â2Å‹Þùj»oñbùø”§
+j ¢óÂ
ƒTª1BzvæýÔ¦wÌÞ¯	ª¬iO‡l›§ø®¼*  Ž¡ÆI¡£ÚØYÂ^Ôȶg–ÇóD•»—ÙµB˪)ôÿ›ÎkSä5YA‰aÓ3
Ü4¨Å2IŽc@Š‘E¸ÜB€ô+*×µmáRzíYÙh¬=[è®x–^YÛÞœÖ>Pñ˜ùköàþõ×™üö`ru%—g¥6«ÚT0sƒTöwâP÷L:
+½gùLƲP~fjŒ
mÕ=pM÷!J¿ÍÁ)™ÙÓqw¸BïÇñ¥ºÖo^Î7*¨y¤:˜å².•UÀ8_]:ŒuõEuÑ”ÿļ¿n˜ŠzÄV–)%v¦nÇ<JNêóÔ¶-3¤œ¯™Èd8hõÈÅ£¯½ö®]z<fk\òw+ÓK÷®Y-(k±®i™äu½œ”î“#ƒðcÙµ³ìyåÃ
+c5$[pù•¦"'åqZpÙfF)Ⱥ] –Rv¼pe¶·5Ÿô¸0Ä©aþ8Dó4ÍÆ]=Q©M_Û/c^µ,kÄ,üMÀ>
4'ažÿÙ¬—j§û
Èü“q1SÕ¤?°Å6¥hÚ°ðdGÅR’U5L¨—)Ю‚©í¹ÐÒ°ŽÉêþÝÕ’Ö¡b%' Ñó“‘БɘóÚÈ vœ[(Z‘ëpS›VëoeP×
5c”¶¨ÏÕm*£lL¾XSϯÃ.µ²Å%íºòåúæ6áí¥EÌÕÉ9¿+f³T’4Òq%‹¨‹>¸Î *RGºkM2ž5w¹ß£K¥TPoñ• BP&ꝝ'ª
+¢™/Ú{Òbµ«íîïï
üq%¥AÆŠÚyΊ„Á*¯;†â9ô†
+ݾŽ]}V\³s{™‹iZâŒñ7G.”U¿‰ãÑá6Á¼/öˆ=ˆ@—ü÷ؐ핹iI
7ïRkS!Œ
¬.á”ôà4IÇàd¶qúPŠIâˆaÞÀÄW·m;”k.=TEؽ1ð­ênìC±7°xó¦ü‚t·å˜åÏÆH^ý£÷f(nÏÇëh SIü£¿¢¥`wœ÷ûæ`¼×É~ Î
Ï‘TªÑþssê¶öX+!L
£ÃŒþ3=
q
~è,bÇÄ1¨Ã}£0=^”o©ú¿1ãU
+jè
 #þšÉ¼:çX”ÅÉöͲÚY²®
à÷qÉé&/Z!œ]Üu
±§R$ƒy.¯×ãU-À‰Ù`S}/‹Æ¦1Wc ¤kYŠ[†¸ú¡}’¡¢Z’X¶òsâµÉôZH)aÇœGÇ"ûÜ©‚î9¢12 ! VûŸ×ÓúòTII¬S9ÑD!q
+èÚöÓãð×dûmÖ
+‚p7åfo×ë¢>è
„
+©s
I }/Ó5Þب˜y"sÙ;n8õËéÑò–Æ–tÑ9#=
·éY†¸€óýFÑxÿ»MåM©lùô—¦×@í ¬@9_Ïä˜,Ò †ÈÓ+®Ò°M‚Ö‹•\’×Lôom¢û²0w=ûo#“rß݈ž‰÷H*F4«–16‡„$‡;Ѽa~ªö.	ÃYÆ ›
Xû>Û¨Û>þKÌHj2Ë
£† àŸ™–róå
/q#ðÊ
Q©œãccæØG® ´¢;ˆ›üá«—}¶
Ròëm1ƒ&­Æ0t=”µ<½l"Ö)È&e5YÏkrmåpã|Ö°ð"m>A¢uJz<ÅJÂ
äª(JB!íÔQËåv·®ÈÁvøÜdgÖ&Ÿù/=õ	ú¤n`pô©nÌ{FwõÌW§ŽÜG¥Ñ @o¶>ù¢Ý¹§ט]2Bò’“¾©¬Å•Á0»µÅµ%Ë»5ıTÄÛÕuNýwtÉOXNâ-÷±X¢@P„äæ	¡"'¹ŽuMq¤fdc@÷m
©˜§v-Ш6	шÆÏ—ux׫îý|æLúÒs¢®ïb¸— ªÇÓåB7`ZLˆ(¸ÎµB.^€2HñÞrıúøfdƒTøIÄK4I¨ŒøvYR'¼èœš”L	‰Ã@Ѽû8}1#q,ËP|ÖÀDóŽ´R©Z¯¶Ø3ˆí{p­ë§xl¨×Ç*ë>ðƒCi±œg½o²„úÇ›&²•ÚéÊ£udK®HÓ«ncÛ GϧSõ;€J¤Qãñ»[FÐ[SL@/"×4gu_ãTz
+ÍÌWíW[é êÎaí²|.¦@hBYǺ¶Š©æ†êqÎUº&¼7È	f¢z2D9çB•î`´ðãx9ÝBPyyÖ'æ^(:VÊѸ
›Ñ[Ýr€š-믶÷÷@ÒU°‹ñ_™Þ9æ–¶¡IãcV˜,ÁÜqÞ]Yi6š¹™êBïå«é4AzF¨IîLcY¼ÕEA©a!DB ©\{âbéeHsn¡ìñZ&Í*löÄb=UƒuÛØ3c!=ÚÏnÊ*@IÚG`Þ jÅÚ›zG‘í$´q ¶j‰y„0æfVŽhuåÜÀô@a9lͽ	hÄbSÛKÐ	’m"†eéz¾¿Ût÷hvåd(téwÍeí†AMNu
-ü	±pÊSjmñ»Ö	î(Õ±œBG¬hˇ`zVSŠ–´©†Q
+ÄxdÊæ~cå;ÝÝw^_0
UxJ(£<ˆNÆ:"ž-MBŒëþÅò7
ä§ÍX ¿Yæ3žnž½ê³“ª,mWî&N -+i>­¼mi9_F›½¶â¬rWxYcE3‡5‡ÓRNN³ƒ³³ÁÉÅ÷ÿI?{9<\ž³‹7Ã7º
Þf£sGžÊ^Ÿ
‡ÙéëìèÍàìçaϝ
ñDÚ0²IòÔ)ÿ=üåbxr‘½ž½
]\Hk/¯²Á»wÒøàåñ0;
|Õ
þr4|w‘}x3<	§hþÃHÆs~1À£“ìÃÙèbtò3÷lôó›‹ìÍéñ«áѺ¥w¾˜½œ]Œ†çAÆñ~ôª=©Gƒsö£ìÃèâÍéåE
<&78¹Êþ8:yÕˆ#64üåÝÙð\æ¤íÑ[ñP¾


_¾"ø¥´prz!ë$3“q^œriüYo]#퇷Ã3Y¿“‹ÁËÑñHºrøõèâDº ¾x #?º<
È$.Ïޝžá¿ÁJ#²àg£ó?fƒó`û§ËAlHVWÚx;89âFu6ÓÍ®N/!5dÞǯð@ð°PÃìÕðõðèbô^¶Wž”nÎ/ßm½Ï/¸@ÇÇÙÉðHÆ;8»Ê·gïGGX‡p6|7Éò#}v†VNO”·<ícó„J†ïA—'ǘíÙðO—2Ÿ
”€6?µa1“}FÒ9v¨»ù=¾"_4›%dtš½
\)0ûÊÈC†‘Ûmª¢h¨sðòkðRÆ3â°d XlÑ«ÁÛÁÏÃó^ˆDÀ®
LÞËÎß
FøE¾Ò“½>ÖU‘Sô§Kì¢üÁɲ˜èжg´vâ4"}wÏå~Ów‡þ@ǧç 6éäbqÄòß—C<}6<‘õâq

]žÉÑÂxCFs~)‡mtÂM	˜/Oóèì•Ÿ'®söz0:Fu´Iϧ²„h’´7ĉìü GÈF¯¥«£7¶{YëÔ^eod+^å±Á«÷#p
í'ÈY8ÙšœZ¶ŽdlZÛàDŸßàö¼Q˜Ô€Ö¨zX/(ÿåW`¸'¢ì˜”«AÁ&­H°Ö÷n2¢rK8²ŒCé™°¼Ñ+V!VnZ×Qþ¨igwR
Qââ³ÕÓPœ»ÖÀ\
¶,Pv´dtçœÆ`±»=#Î]²«Un!§F5Š`^×
Õ
Á«¬N©L
#ŽoÏýaâûb*‹±°²•'‹jŠbEAø\l,f%Ê»WÁhÀÆ„ðh­«Yáå\¨Øy´Ÿ:ü£¨<Òú¾j²X½b‘µL'ºÖ ³!×e‘ù{¬'ßwÄ@² {µ–ӦǸ/$‘Ÿ+˜(_y•ºþØV;£ú÷@"üAz`úTzþ ý^Xá·ýZûý"f7¶vYµß&9L”«ÝpÏ]™Æ
2»n鍭w¿¢Ô$Rh.¹wrÜÃØÊ~%}°­?÷w/@Š53쨞•­³+]VkBá"bиprÿ"f`X¨î݃éEMtå´,î_!¦­€[ˆ	F÷rÛå.ðÆUS¦¨
KK±œßÚ?ƒG$aÌf-_ÀžZÿ–
+Ì÷»‰ý½ÿ^RV
+™N[@‘e¼Òœø͵„ÊÌboŠðYR X ¼CŸ-ÌF£Ús
é©%± 
p£C›HyŽ
ÊÊ3·Ð®¸ÛÔ0U?/DÍþ¬ú½ùÏz3#eí½õ:î°4ÒÁËóÓcQ@Ž¯Råù	Ã+§kI|&°~Ùë7g£ËD‰PÌxwËηx[°tªèBr«ìEÚÝd/
ˆ]Xq»¹ƒ­ÇPWüöñiu6ÛkmYòm+Á¤eJÞ›‚vzÍèŠDšþ¼’¯X¾¼ÌD+Í5SÓjÌ»†féLê¬'a¾”&'2‚OômÌ‹ÅZ¬˜×‡‡`ç´§ëu©Áݘöo‰$6Yâó‘ÌG
+a+Ë
Jxyò{D$ÛÛó¢:È얍PÊŸi¸c¡ vÄ›‘K×øçš,œGM²Š+!åuX [¾Ö¤Í7VÏ¥¸›‰ä Šï°`/Éûj¹YN7(v¦
‚q¼‰
)D¨ ÔãÃÖ¹4ô1¡ó=ÄÈ”ãXkVoX
×
D¿štöo,ü&Ÿ|*´jãïMÂB¨×ÙÅFŽÚrñ‡^öD¶ªœ±"	4ý¢‡¢
uéi^ï
‚̹{
5nÐOº¿tp„$6Ö
ˆ‘¶*åE¨6®–S^Ë6úi‚CÄ™¤¹¬\`1©#ñ›Ò
çz
¡)Áw?’2
/ŽõÌîé²Kãî(xv¼ØöoþOW´yø<|
>Ÿ‡ÏÃçáóðyø<|
>Ÿ‡ÏÃçáóðyø<|
>Ÿ‡>ÿÐýÓ> ð  

Added: packages/fprint/pam_fprint/trunk/.git/HEAD
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/HEAD?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/HEAD (added)
+++ packages/fprint/pam_fprint/trunk/.git/HEAD Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+ref: refs/heads/master

Added: packages/fprint/pam_fprint/trunk/.git/config
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/config?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/config (added)
+++ packages/fprint/pam_fprint/trunk/.git/config Thu Jan  8 21:54:21 2009
@@ -1,0 +1,11 @@
+[core]
+	repositoryformatversion = 0
+	filemode = true
+	bare = false
+	logallrefupdates = true
+[remote "origin"]
+	url = git://projects.reactivated.net/~dsd/pam_fprint.git
+	fetch = +refs/heads/*:refs/remotes/origin/*
+[branch "master"]
+	remote = origin
+	merge = refs/heads/master

Added: packages/fprint/pam_fprint/trunk/.git/description
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/description?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/description (added)
+++ packages/fprint/pam_fprint/trunk/.git/description Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+Unnamed repository; edit this file to name it for gitweb.

Added: packages/fprint/pam_fprint/trunk/.git/hooks/applypatch-msg
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/applypatch-msg?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/applypatch-msg (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/applypatch-msg Thu Jan  8 21:54:21 2009
@@ -1,0 +1,15 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message taken by
+# applypatch from an e-mail message.
+#
+# The hook should exit with non-zero status after issuing an
+# appropriate message if it wants to stop the commit.  The hook is
+# allowed to edit the commit message file.
+#
+# To enable this hook, make this file executable.
+
+. git-sh-setup
+test -x "$GIT_DIR/hooks/commit-msg" &&
+	exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
+:

Added: packages/fprint/pam_fprint/trunk/.git/hooks/commit-msg
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/commit-msg?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/commit-msg (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/commit-msg Thu Jan  8 21:54:21 2009
@@ -1,0 +1,24 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message.
+# Called by git-commit with one argument, the name of the file
+# that has the commit message.  The hook should exit with non-zero
+# status after issuing an appropriate message if it wants to stop the
+# commit.  The hook is allowed to edit the commit message file.
+#
+# To enable this hook, make this file executable.
+
+# Uncomment the below to add a Signed-off-by line to the message.
+# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
+# hook is more suited to it.
+#
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
+
+# This example catches duplicate Signed-off-by lines.
+
+test "" = "$(grep '^Signed-off-by: ' "$1" |
+	 sort | uniq -c | sed -e '/^[ 	]*1[ 	]/d')" || {
+	echo >&2 Duplicate Signed-off-by lines.
+	exit 1
+}

Added: packages/fprint/pam_fprint/trunk/.git/hooks/post-commit
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/post-commit?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/post-commit (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/post-commit Thu Jan  8 21:54:21 2009
@@ -1,0 +1,8 @@
+#!/bin/sh
+#
+# An example hook script that is called after a successful
+# commit is made.
+#
+# To enable this hook, make this file executable.
+
+: Nothing

Added: packages/fprint/pam_fprint/trunk/.git/hooks/post-receive
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/post-receive?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/post-receive (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/post-receive Thu Jan  8 21:54:21 2009
@@ -1,0 +1,16 @@
+#!/bin/sh
+#
+# An example hook script for the post-receive event
+#
+# This script is run after receive-pack has accepted a pack and the
+# repository has been updated.  It is passed arguments in through stdin
+# in the form
+#  <oldrev> <newrev> <refname>
+# For example:
+#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
+#
+# see contrib/hooks/ for an sample, or uncomment the next line (on debian)
+#
+
+
+#. /usr/share/doc/git-core/contrib/hooks/post-receive-email

Added: packages/fprint/pam_fprint/trunk/.git/hooks/post-update
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/post-update?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/post-update (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/post-update Thu Jan  8 21:54:21 2009
@@ -1,0 +1,8 @@
+#!/bin/sh
+#
+# An example hook script to prepare a packed repository for use over
+# dumb transports.
+#
+# To enable this hook, make this file executable by "chmod +x post-update".
+
+exec git-update-server-info

Added: packages/fprint/pam_fprint/trunk/.git/hooks/pre-applypatch
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/pre-applypatch?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/pre-applypatch (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/pre-applypatch Thu Jan  8 21:54:21 2009
@@ -1,0 +1,14 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed
+# by applypatch from an e-mail message.
+#
+# The hook should exit with non-zero status after issuing an
+# appropriate message if it wants to stop the commit.
+#
+# To enable this hook, make this file executable.
+
+. git-sh-setup
+test -x "$GIT_DIR/hooks/pre-commit" &&
+	exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}
+:

Added: packages/fprint/pam_fprint/trunk/.git/hooks/pre-commit
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/pre-commit?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/pre-commit (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/pre-commit Thu Jan  8 21:54:21 2009
@@ -1,0 +1,70 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed.
+# Called by git-commit with no arguments.  The hook should
+# exit with non-zero status after issuing an appropriate message if
+# it wants to stop the commit.
+#
+# To enable this hook, make this file executable.
+
+# This is slightly modified from Andrew Morton's Perfect Patch.
+# Lines you introduce should not have trailing whitespace.
+# Also check for an indentation that has SP before a TAB.
+
+if git-rev-parse --verify HEAD 2>/dev/null
+then
+	git-diff-index -p -M --cached HEAD --
+else
+	# NEEDSWORK: we should produce a diff with an empty tree here
+	# if we want to do the same verification for the initial import.
+	:
+fi |
+perl -e '
+    my $found_bad = 0;
+    my $filename;
+    my $reported_filename = "";
+    my $lineno;
+    sub bad_line {
+	my ($why, $line) = @_;
+	if (!$found_bad) {
+	    print STDERR "*\n";
+	    print STDERR "* You have some suspicious patch lines:\n";
+	    print STDERR "*\n";
+	    $found_bad = 1;
+	}
+	if ($reported_filename ne $filename) {
+	    print STDERR "* In $filename\n";
+	    $reported_filename = $filename;
+	}
+	print STDERR "* $why (line $lineno)\n";
+	print STDERR "$filename:$lineno:$line\n";
+    }
+    while (<>) {
+	if (m|^diff --git a/(.*) b/\1$|) {
+	    $filename = $1;
+	    next;
+	}
+	if (/^@@ -\S+ \+(\d+)/) {
+	    $lineno = $1 - 1;
+	    next;
+	}
+	if (/^ /) {
+	    $lineno++;
+	    next;
+	}
+	if (s/^\+//) {
+	    $lineno++;
+	    chomp;
+	    if (/\s$/) {
+		bad_line("trailing whitespace", $_);
+	    }
+	    if (/^\s* \t/) {
+		bad_line("indent SP followed by a TAB", $_);
+	    }
+	    if (/^([<>])\1{6} |^={7}$/) {
+		bad_line("unresolved merge conflict", $_);
+	    }
+	}
+    }
+    exit($found_bad);
+'

Added: packages/fprint/pam_fprint/trunk/.git/hooks/pre-rebase
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/pre-rebase?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/pre-rebase (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/pre-rebase Thu Jan  8 21:54:21 2009
@@ -1,0 +1,150 @@
+#!/bin/sh
+#
+# Copyright (c) 2006 Junio C Hamano
+#
+
+publish=next
+basebranch="$1"
+if test "$#" = 2
+then
+	topic="refs/heads/$2"
+else
+	topic=`git symbolic-ref HEAD`
+fi
+
+case "$basebranch,$topic" in
+master,refs/heads/??/*)
+	;;
+*)
+	exit 0 ;# we do not interrupt others.
+	;;
+esac
+
+# Now we are dealing with a topic branch being rebased
+# on top of master.  Is it OK to rebase it?
+
+# Is topic fully merged to master?
+not_in_master=`git-rev-list --pretty=oneline ^master "$topic"`
+if test -z "$not_in_master"
+then
+	echo >&2 "$topic is fully merged to master; better remove it."
+	exit 1 ;# we could allow it, but there is no point.
+fi
+
+# Is topic ever merged to next?  If so you should not be rebasing it.
+only_next_1=`git-rev-list ^master "^$topic" ${publish} | sort`
+only_next_2=`git-rev-list ^master           ${publish} | sort`
+if test "$only_next_1" = "$only_next_2"
+then
+	not_in_topic=`git-rev-list "^$topic" master`
+	if test -z "$not_in_topic"
+	then
+		echo >&2 "$topic is already up-to-date with master"
+		exit 1 ;# we could allow it, but there is no point.
+	else
+		exit 0
+	fi
+else
+	not_in_next=`git-rev-list --pretty=oneline ^${publish} "$topic"`
+	perl -e '
+		my $topic = $ARGV[0];
+		my $msg = "* $topic has commits already merged to public branch:\n";
+		my (%not_in_next) = map {
+			/^([0-9a-f]+) /;
+			($1 => 1);
+		} split(/\n/, $ARGV[1]);
+		for my $elem (map {
+				/^([0-9a-f]+) (.*)$/;
+				[$1 => $2];
+			} split(/\n/, $ARGV[2])) {
+			if (!exists $not_in_next{$elem->[0]}) {
+				if ($msg) {
+					print STDERR $msg;
+					undef $msg;
+				}
+				print STDERR " $elem->[1]\n";
+			}
+		}
+	' "$topic" "$not_in_next" "$not_in_master"
+	exit 1
+fi
+
+exit 0
+
+################################################################
+
+This sample hook safeguards topic branches that have been
+published from being rewound.
+
+The workflow assumed here is:
+
+ * Once a topic branch forks from "master", "master" is never
+   merged into it again (either directly or indirectly).
+
+ * Once a topic branch is fully cooked and merged into "master",
+   it is deleted.  If you need to build on top of it to correct
+   earlier mistakes, a new topic branch is created by forking at
+   the tip of the "master".  This is not strictly necessary, but
+   it makes it easier to keep your history simple.
+
+ * Whenever you need to test or publish your changes to topic
+   branches, merge them into "next" branch.
+
+The script, being an example, hardcodes the publish branch name
+to be "next", but it is trivial to make it configurable via
+$GIT_DIR/config mechanism.
+
+With this workflow, you would want to know:
+
+(1) ... if a topic branch has ever been merged to "next".  Young
+    topic branches can have stupid mistakes you would rather
+    clean up before publishing, and things that have not been
+    merged into other branches can be easily rebased without
+    affecting other people.  But once it is published, you would
+    not want to rewind it.
+
+(2) ... if a topic branch has been fully merged to "master".
+    Then you can delete it.  More importantly, you should not
+    build on top of it -- other people may already want to
+    change things related to the topic as patches against your
+    "master", so if you need further changes, it is better to
+    fork the topic (perhaps with the same name) afresh from the
+    tip of "master".
+
+Let's look at this example:
+
+		   o---o---o---o---o---o---o---o---o---o "next"
+		  /       /           /           /
+		 /   a---a---b A     /           /
+		/   /               /           /
+	       /   /   c---c---c---c B         /
+	      /   /   /             \         /
+	     /   /   /   b---b C     \       /
+	    /   /   /   /             \     /
+    ---o---o---o---o---o---o---o---o---o---o---o "master"
+
+
+A, B and C are topic branches.
+
+ * A has one fix since it was merged up to "next".
+
+ * B has finished.  It has been fully merged up to "master" and "next",
+   and is ready to be deleted.
+
+ * C has not merged to "next" at all.
+
+We would want to allow C to be rebased, refuse A, and encourage
+B to be deleted.
+
+To compute (1):
+
+	git-rev-list ^master ^topic next
+	git-rev-list ^master        next
+
+	if these match, topic has not merged in next at all.
+
+To compute (2):
+
+	git-rev-list master..topic
+
+	if this is empty, it is fully merged to "master".

Added: packages/fprint/pam_fprint/trunk/.git/hooks/prepare-commit-msg
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/prepare-commit-msg?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/prepare-commit-msg (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/prepare-commit-msg Thu Jan  8 21:54:21 2009
@@ -1,0 +1,36 @@
+#!/bin/sh
+#
+# An example hook script to prepare the commit log message.
+# Called by git-commit with the name of the file that has the
+# commit message, followed by the description of the commit
+# message's source.  The hook's purpose is to edit the commit
+# message file.  If the hook fails with a non-zero status,
+# the commit is aborted.
+#
+# To enable this hook, make this file executable.
+
+# This hook includes three examples.  The first comments out the
+# "Conflicts:" part of a merge commit.
+#
+# The second includes the output of "git diff --name-status -r"
+# into the message, just before the "git status" output.  It is
+# commented because it doesn't cope with --amend or with squashed
+# commits.
+#
+# The third example adds a Signed-off-by line to the message, that can
+# still be edited.  This is rarely a good idea.
+
+case "$2,$3" in
+  merge,)
+    perl -i -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
+
+# ,|template,)
+#   perl -i -pe '
+#      print "\n" . `git diff --cached --name-status -r`
+#	 if /^#/ && $first++ == 0' "$1" ;;
+
+  *) ;;
+esac
+
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"

Added: packages/fprint/pam_fprint/trunk/.git/hooks/update
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/hooks/update?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/hooks/update (added)
+++ packages/fprint/pam_fprint/trunk/.git/hooks/update Thu Jan  8 21:54:21 2009
@@ -1,0 +1,107 @@
+#!/bin/sh
+#
+# An example hook script to blocks unannotated tags from entering.
+# Called by git-receive-pack with arguments: refname sha1-old sha1-new
+#
+# To enable this hook, make this file executable by "chmod +x update".
+#
+# Config
+# ------
+# hooks.allowunannotated
+#   This boolean sets whether unannotated tags will be allowed into the
+#   repository.  By default they won't be.
+# hooks.allowdeletetag
+#   This boolean sets whether deleting tags will be allowed in the
+#   repository.  By default they won't be.
+# hooks.allowdeletebranch
+#   This boolean sets whether deleting branches will be allowed in the
+#   repository.  By default they won't be.
+#
+
+# --- Command line
+refname="$1"
+oldrev="$2"
+newrev="$3"
+
+# --- Safety check
+if [ -z "$GIT_DIR" ]; then
+	echo "Don't run this script from the command line." >&2
+	echo " (if you want, you could supply GIT_DIR then run" >&2
+	echo "  $0 <ref> <oldrev> <newrev>)" >&2
+	exit 1
+fi
+
+if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
+	echo "Usage: $0 <ref> <oldrev> <newrev>" >&2
+	exit 1
+fi
+
+# --- Config
+allowunannotated=$(git config --bool hooks.allowunannotated)
+allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
+allowdeletetag=$(git config --bool hooks.allowdeletetag)
+
+# check for no description
+projectdesc=$(sed -e '1q' "$GIT_DIR/description")
+if [ -z "$projectdesc" -o "$projectdesc" = "Unnamed repository; edit this file to name it for gitweb." ]; then
+	echo "*** Project description file hasn't been set" >&2
+	exit 1
+fi
+
+# --- Check types
+# if $newrev is 0000...0000, it's a commit to delete a ref.
+if [ "$newrev" = "0000000000000000000000000000000000000000" ]; then
+	newrev_type=delete
+else
+	newrev_type=$(git-cat-file -t $newrev)
+fi
+
+case "$refname","$newrev_type" in
+	refs/tags/*,commit)
+		# un-annotated tag
+		short_refname=${refname##refs/tags/}
+		if [ "$allowunannotated" != "true" ]; then
+			echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
+			echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
+			exit 1
+		fi
+		;;
+	refs/tags/*,delete)
+		# delete tag
+		if [ "$allowdeletetag" != "true" ]; then
+			echo "*** Deleting a tag is not allowed in this repository" >&2
+			exit 1
+		fi
+		;;
+	refs/tags/*,tag)
+		# annotated tag
+		;;
+	refs/heads/*,commit)
+		# branch
+		;;
+	refs/heads/*,delete)
+		# delete branch
+		if [ "$allowdeletebranch" != "true" ]; then
+			echo "*** Deleting a branch is not allowed in this repository" >&2
+			exit 1
+		fi
+		;;
+	refs/remotes/*,commit)
+		# tracking branch
+		;;
+	refs/remotes/*,delete)
+		# delete tracking branch
+		if [ "$allowdeletebranch" != "true" ]; then
+			echo "*** Deleting a tracking branch is not allowed in this repository" >&2
+			exit 1
+		fi
+		;;
+	*)
+		# Anything else (is there anything else?)
+		echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
+		exit 1
+		;;
+esac
+
+# --- Finished
+exit 0

Added: packages/fprint/pam_fprint/trunk/.git/index
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/index?rev=128&op=file
==============================================================================
Binary file - no diff available.

Propchange: packages/fprint/pam_fprint/trunk/.git/index
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: packages/fprint/pam_fprint/trunk/.git/info/exclude
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/info/exclude?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/info/exclude (added)
+++ packages/fprint/pam_fprint/trunk/.git/info/exclude Thu Jan  8 21:54:21 2009
@@ -1,0 +1,6 @@
+# git-ls-files --others --exclude-from=.git/info/exclude
+# Lines that start with '#' are comments.
+# For a project mostly in C, the following would be a good set of
+# exclude patterns (uncomment them if you want to use them):
+# *.[oa]
+# *~

Added: packages/fprint/pam_fprint/trunk/.git/logs/HEAD
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/logs/HEAD?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/logs/HEAD (added)
+++ packages/fprint/pam_fprint/trunk/.git/logs/HEAD Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+0000000000000000000000000000000000000000 5452ea09c17ac5f00eb0d8b513cee3854a6dec47 dererk <dererk at acheron.dererk.com.ar> 1231450422 -0200	clone: from git://projects.reactivated.net/~dsd/pam_fprint.git

Added: packages/fprint/pam_fprint/trunk/.git/logs/refs/heads/master
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/logs/refs/heads/master?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/logs/refs/heads/master (added)
+++ packages/fprint/pam_fprint/trunk/.git/logs/refs/heads/master Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+0000000000000000000000000000000000000000 5452ea09c17ac5f00eb0d8b513cee3854a6dec47 dererk <dererk at acheron.dererk.com.ar> 1231450422 -0200	clone: from git://projects.reactivated.net/~dsd/pam_fprint.git

Added: packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/HEAD
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/HEAD?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/HEAD (added)
+++ packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/HEAD Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+0000000000000000000000000000000000000000 5452ea09c17ac5f00eb0d8b513cee3854a6dec47 dererk <dererk at acheron.dererk.com.ar> 1231450422 -0200	clone: from git://projects.reactivated.net/~dsd/pam_fprint.git

Added: packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/master
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/master?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/master (added)
+++ packages/fprint/pam_fprint/trunk/.git/logs/refs/remotes/origin/master Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+0000000000000000000000000000000000000000 5452ea09c17ac5f00eb0d8b513cee3854a6dec47 dererk <dererk at acheron.dererk.com.ar> 1231450422 -0200	clone: from git://projects.reactivated.net/~dsd/pam_fprint.git

Added: packages/fprint/pam_fprint/trunk/.git/objects/pack/pack-edd652755a69ac3426b05ad2ab5963a462f8fd07.idx
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/objects/pack/pack-edd652755a69ac3426b05ad2ab5963a462f8fd07.idx?rev=128&op=file
==============================================================================
Binary file - no diff available.

Propchange: packages/fprint/pam_fprint/trunk/.git/objects/pack/pack-edd652755a69ac3426b05ad2ab5963a462f8fd07.idx
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: packages/fprint/pam_fprint/trunk/.git/objects/pack/pack-edd652755a69ac3426b05ad2ab5963a462f8fd07.pack
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/objects/pack/pack-edd652755a69ac3426b05ad2ab5963a462f8fd07.pack?rev=128&op=file
==============================================================================
Binary file - no diff available.

Propchange: packages/fprint/pam_fprint/trunk/.git/objects/pack/pack-edd652755a69ac3426b05ad2ab5963a462f8fd07.pack
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: packages/fprint/pam_fprint/trunk/.git/refs/heads/master
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/refs/heads/master?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/refs/heads/master (added)
+++ packages/fprint/pam_fprint/trunk/.git/refs/heads/master Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+5452ea09c17ac5f00eb0d8b513cee3854a6dec47

Added: packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/HEAD
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/HEAD?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/HEAD (added)
+++ packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/HEAD Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+ref: refs/remotes/origin/master

Added: packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/master
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/master?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/master (added)
+++ packages/fprint/pam_fprint/trunk/.git/refs/remotes/origin/master Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+5452ea09c17ac5f00eb0d8b513cee3854a6dec47

Added: packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.1
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.1?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.1 (added)
+++ packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.1 Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+c014d3376bfee56f1c5feb83c7deb3f193a01847

Added: packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.2
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.2?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.2 (added)
+++ packages/fprint/pam_fprint/trunk/.git/refs/tags/v0.2 Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+d8349b68216108fb970414c8984a4e99b095a750

Added: packages/fprint/pam_fprint/trunk/.gitignore
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/.gitignore?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/.gitignore (added)
+++ packages/fprint/pam_fprint/trunk/.gitignore Thu Jan  8 21:54:21 2009
@@ -1,0 +1,1 @@
+ChangeLog

Added: packages/fprint/pam_fprint/trunk/autogen.sh
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/autogen.sh?rev=128&op=file
==============================================================================
--- packages/fprint/pam_fprint/trunk/autogen.sh (added)
+++ packages/fprint/pam_fprint/trunk/autogen.sh Thu Jan  8 21:54:21 2009
@@ -1,0 +1,5 @@
+#!/bin/sh
+aclocal || exit 1
+autoconf || exit 1
+automake -a -c || exit 1
+./configure --enable-maintainer-mode $*

Propchange: packages/fprint/pam_fprint/trunk/autogen.sh
------------------------------------------------------------------------------
    svn:executable = *

Modified: packages/fprint/pam_fprint/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/debian/changelog?rev=128&op=diff
==============================================================================
--- packages/fprint/pam_fprint/trunk/debian/changelog (original)
+++ packages/fprint/pam_fprint/trunk/debian/changelog Thu Jan  8 21:54:21 2009
@@ -1,3 +1,13 @@
+pam-fprint (20080330+1git) experimental; urgency=low
+
+  * New Upstream release.
+  * Port to new implementation of libfprint over asynchronus libusb.
+  * Avoids a remote box asking you to scan your fingerprint when you login
+    over SSH.
+  * Upstream git checkout fixing little issues.
+
+ -- Ulises Vitulli <uvitulli at fi.uba.ar>  Thu, 08 Jan 2009 19:00:46 -0200
+
 pam-fprint (0.2-3) experimental; urgency=low
 
   * Send a void message with PAM_SUCCESS to avoid appearing a box in gdm

Modified: packages/fprint/pam_fprint/trunk/debian/control
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/debian/control?rev=128&op=diff
==============================================================================
--- packages/fprint/pam_fprint/trunk/debian/control (original)
+++ packages/fprint/pam_fprint/trunk/debian/control Thu Jan  8 21:54:21 2009
@@ -5,13 +5,21 @@
 Uploaders: Emfox Zhou <emfox at debian.org>, Miguel Gea Milvaques <xerakko at debian.org>, Ulises Vitulli <uvitulli at fi.uba.ar>
 Build-Depends: debhelper (>= 5), autotools-dev, libpam-dev, libfprint-dev, pkg-config
 Homepage: http://www.reactivated.net/fprint/wiki/Pam_fprint
-Standards-Version: 3.7.3
+Standards-Version: 3.8.0
 
 Package: libpam-fprint
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: PAM module allowing authentication via fprint
- The fprint project aims to support for consumer fingerprint reader devices.
+ pam_fprint is a PAM module which uses libfprint's fingerprint verification
+ functionality to implement a fingerprint-based authentication scheme.
+ .
+ This means that you may be able to authenticate against every service, tool, 
+ application or whatever that uses PAM as an authentication mechanism; for 
+ example ssh, gdm/kdm/xdm, most screen savers, login, su, sudo, etc.
+ .
+ The Fprint Project aims to bring support for a wide range of fingerprint 
+ reader devices under userspace over libusb.
  .
  Previously, Linux support for such devices has been scattered amongst different
  projects (many incomplete) and inconsistent in that application developers
@@ -19,5 +27,4 @@
  We're trying to change that by providing a central system to support all the
  fingerprint readers we can get our hands on.
  .
- pam_fprint is a PAM module which uses libfprint's fingerprint verification
- functionality to implement a fingerprint-based login system.
+ This is a new implementation of Fprint Project over a new asynchronous libusb.

Modified: packages/fprint/pam_fprint/trunk/debian/rules
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/debian/rules?rev=128&op=diff
==============================================================================
--- packages/fprint/pam_fprint/trunk/debian/rules (original)
+++ packages/fprint/pam_fprint/trunk/debian/rules Thu Jan  8 21:54:21 2009
@@ -65,7 +65,8 @@
 binary-arch: build install
 	dh_testdir
 	dh_testroot
-	dh_installchangelogs ChangeLog
+#	dh_installchangelogs ChangeLog
+	dh_installchangelogs
 	dh_installdocs
 	dh_installexamples
 #	dh_installpam

Modified: packages/fprint/pam_fprint/trunk/src/pam_fprint.c
URL: http://svn.debian.org/wsvn/fingerforce/packages/fprint/pam_fprint/trunk/src/pam_fprint.c?rev=128&op=diff
==============================================================================
--- packages/fprint/pam_fprint/trunk/src/pam_fprint.c (original)
+++ packages/fprint/pam_fprint/trunk/src/pam_fprint.c Thu Jan  8 21:54:21 2009
@@ -70,6 +70,7 @@
 	return pc->conv(1, &msgp, &resp, pc->appdata_ptr);
 }
 
+
 static const char *fingerstr(enum fp_finger finger)
 {
 	const char *names[] = {
@@ -89,41 +90,91 @@
 	return names[finger];
 }
 
-static int find_dev_and_print(struct fp_dscv_dev **ddevs,
-	struct fp_dscv_print **prints, struct fp_dscv_dev **_ddev,
-	struct fp_dscv_print **_print)
-{
-	int i = 0;
+
+static struct fp_print_data **find_dev_and_prints(struct fp_dscv_dev **ddevs,
+	struct fp_dscv_print **prints, struct fp_dscv_dev **_ddev, enum fp_finger **fingers)
+{
+	int i = 0, j = 0, err;
 	struct fp_dscv_print *print;
-	struct fp_dscv_dev *ddev;
-
+	struct fp_dscv_dev *ddev = NULL;
+	uint16_t driver_id, driver_id_cur;
+	size_t prints_count = 0;
+	struct fp_print_data **gallery;
+
+	/* TODO: add device selection */
 	while (print = prints[i++]) {
-		ddev = fp_dscv_dev_for_dscv_print(ddevs, print);
-		if (ddev) {
+		if (!ddev) {
+			ddev = fp_dscv_dev_for_dscv_print(ddevs, print);
+			driver_id = fp_dscv_print_get_driver_id(print);
 			*_ddev = ddev;
-			*_print = print;
-			return 0;
-		}
-	}
-	return 1;
-}
-
-static int do_verify(pam_handle_t *pamh, struct fp_dev *dev,
-	struct fp_print_data *data, enum fp_finger finger)
+		}
+		if (ddev)
+		{
+		    driver_id_cur = fp_dscv_print_get_driver_id(print);
+		    if (driver_id_cur == driver_id) {
+			    prints_count++;
+		    }
+		}
+	}
+	
+	if (prints_count == 0) {
+	    return NULL;
+	}
+	
+	gallery = malloc(sizeof(*gallery) * (prints_count + 1));
+	if (gallery == NULL) {
+	    return NULL;
+	}
+	gallery[prints_count] = NULL;
+	*fingers = malloc(sizeof(*fingers) * (prints_count));
+	if (*fingers == NULL) {
+	    free(gallery);
+	    return NULL;
+	}
+	
+	i = 0, j = 0;
+	while (print = prints[i++]) {
+		driver_id_cur = fp_dscv_print_get_driver_id(print);
+		if (driver_id_cur == driver_id) {
+			err = fp_print_data_from_dscv_print(print, & (gallery[j]));
+			if (err != 0) {
+			    gallery[j] = NULL;
+			    break;
+			}
+			(*fingers)[j] = fp_dscv_print_get_finger(print);
+			j++;
+		}
+	}
+	
+	return gallery;
+}
+
+static int do_identify(pam_handle_t *pamh, struct fp_dev *dev,
+	struct fp_print_data **gallery, enum fp_finger *fingers)
 {
 	int max_tries = 5;
+	size_t offset;
 	const char *driver_name = fp_driver_get_full_name(fp_dev_get_driver(dev));
-	const char *fstr = fingerstr(finger);
-
+	const char *fstr = fingerstr(fingers[0]);
+	
 	do {
 		int r;
 		char msg[128];
 
-		snprintf(msg, sizeof(msg), "Scan %s finger on %s", fstr, driver_name);
-		msg[sizeof(msg) - 1] = 0;
-		send_info_msg(pamh, msg);
-
-		r = fp_verify_finger(dev, data);
+		
+		if (fp_dev_supports_identification(dev)) {
+		    snprintf(msg, sizeof(msg), "Scan finger on %s", driver_name);
+		    msg[sizeof(msg) - 1] = 0;
+		    send_info_msg(pamh, msg);
+		    r = fp_identify_finger(dev, gallery, &offset);
+		    
+		}
+		else {
+		    snprintf(msg, sizeof(msg), "Scan %s finger on %s", fstr, driver_name);
+		    msg[sizeof(msg) - 1] = 0;
+		    send_info_msg(pamh, msg);
+		    r = fp_verify_finger(dev, gallery[0]);
+		}
 		if (r < 0) {
 			snprintf(msg, sizeof(msg), "Fingerprint verification error %d", r);
 			msg[sizeof(msg) - 1] = 0;
@@ -164,8 +215,8 @@
 	struct fp_dscv_dev *ddev;
 	struct fp_dscv_print *print;
 	struct fp_dev *dev;
-	struct fp_print_data *data;
-	enum fp_finger finger;
+	struct fp_print_data **gallery, **gallery_iter;
+	enum fp_finger *fingers;
 
 	r = fp_init();
 	if (r < 0)
@@ -180,9 +231,9 @@
 		fp_dscv_devs_free(ddevs);
 		return PAM_AUTHINFO_UNAVAIL;
 	}
-
-	r = find_dev_and_print(ddevs, prints, &ddev, &print);
-	if (r) {
+	
+	gallery = find_dev_and_prints(ddevs, prints, &ddev, &fingers);
+	if (!gallery) {
 		fp_dscv_prints_free(prints);
 		fp_dscv_devs_free(ddevs);
 		send_info_msg(pamh, "Could not locate any suitable fingerprints "
@@ -192,22 +243,28 @@
 
 	dev = fp_dev_open(ddev);
 	fp_dscv_devs_free(ddevs);
+	fp_dscv_prints_free(prints);
 	if (!dev) {
-		fp_dscv_prints_free(prints);
-		return PAM_AUTHINFO_UNAVAIL;
-	}
-
-	finger = fp_dscv_print_get_finger(print);
-
-	r = fp_print_data_from_dscv_print(print, &data);
-	fp_dscv_prints_free(prints);
-	if (r) {
-		fp_dev_close(dev);
-		return PAM_AUTHINFO_UNAVAIL;
-	}
-
-	r = do_verify(pamh, dev, data, finger);
-	fp_print_data_free(data);
+		gallery_iter = gallery;
+		while (*gallery_iter) {
+		    fp_print_data_free(*gallery_iter);
+		    gallery_iter++;
+		}
+		free(gallery);
+		free(fingers);	
+		return PAM_AUTHINFO_UNAVAIL;
+	}
+
+	r = do_identify(pamh, dev, gallery, fingers);
+	
+	gallery_iter = gallery;
+	while (*gallery_iter)
+	{
+	    fp_print_data_free(*gallery_iter);
+	    gallery_iter++;
+	}
+	free(gallery);
+	free(fingers);
 	fp_dev_close(dev);
 	return r;
 }
@@ -254,14 +311,12 @@
 PAM_EXTERN int pam_sm_setcred(pam_handle_t *pamh, int flags, int argc,
 	const char **argv)
 {
-	send_info_msg(pamh,"");
 	return PAM_SUCCESS;
 }
 
 PAM_EXTERN int pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc,
 	const char **argv)
 {
-	send_info_msg(pamh,"");
 	return PAM_SUCCESS;
 }
 




More information about the Fingerforce-commits mailing list