³ò ø$•Jc@sPddklZddkZddkZddkZdad„Zd„ZdS(iÿÿÿÿ(t_Nc Cs™hdd<dd<dd<}d}g}g}xY|D]Q}d|joBtptidƒantid|ƒ}|id dƒ}n|iƒ}|pq:n|id ƒoR|d iƒ}y||}Wq:tj o|i t d ƒ|ƒq:Xq:n||}xf|i ƒD]X\}}|i|ƒo |}Pq"|i|d ƒo||t |ƒd}Pq"q"W|i |ƒq:W||fS(sÁparse lines (iterable) of .hgignore text, returning a tuple of (patterns, parse errors). These patterns should be given to compile() to be validated and converted into a match function.srelre:tretregexpsrelglob:tglobt#s((^|[^\\])(\\\\)*)#.*s\1s\#ssyntax:isignoring invalid syntax '%s't:i( t _commentreRtcompiletsubtreplacetrstript startswithtstriptKeyErrortappendRt iteritemstlen( tlinestsyntaxestsyntaxtpatternstwarningstlinetstpattrels((s#/sys/lib/python/mercurial/ignore.pyt ignorepatss@!     c Cs¤h}x­|D]¥}yUg||s   )