Qc@sddlZddlZddlZdZdZdZejdkrRed7ZndZidd6d d 6d d 6d d 6d d6dd 6dd6dd6ZdZ e dkridd6dd6dd6dd6dd6dd6Z d dd!Z d"Zd#Zd$Zd%d&d'd(Ze\ZZZZee\ZZee\ZZee\ZZed) eed)ZeeZejdkree7Zneekrd*ejd+GHd,ejd+GHnerd-ejd+GHneekr#d.ejd+GHd/ejd+GHner>d0ejd+GHneekrqd1ejd+GHd2ejd+GHneekrd3ejd+GHd4ejd+GHneeed5d6GHeeed5d7GHeeed5d8GHd9GHeeed5d:GHd;GeeGHndS(<iNu"'(<\[{༺༼᚛⁅⁽₍〈❨❪❬❮❰❲❴⟅⟦⟨⟪⟬⟮⦃⦅⦇⦉⦋⦍⦏⦑⦓⦕⦗⧘⧚⧼⸢⸤⸦⸨〈《「『【〔〖〘〚〝〝﴾︗︵︷︹︻︽︿﹁﹃﹇﹙﹛﹝([{⦅「«‘“‹⸂⸄⸉⸌⸜⸠‚„»’”›⸃⸅⸊⸍⸝⸡‛‟u"')>\]}༻༽᚜⁆⁾₎〉❩❫❭❯❱❳❵⟆⟧⟩⟫⟭⟯⦄⦆⦈⦊⦌⦎⦐⦒⦔⦖⦘⧙⧛⧽⸣⸥⸧⸩〉》」』】〕〗〙〛〞〟﴿︘︶︸︺︼︾﹀﹂﹄﹈﹚﹜﹞)]}⦆」»’”›⸃⸅⸊⸍⸝⸡‛‟«‘“‹⸂⸄⸉⸌⸜⸠‚„u&\-/:֊¡·¿;·՚-՟։־׀׃׆׳״؉؊،؍؛؞؟٪-٭۔܀-܍߷-߹࠰-࠾।॥॰෴๏๚๛༄-༒྅࿐-࿔၊-၏჻፡-፨᐀᙭᙮᛫-᛭᜵᜶។-៖៘-៚᠀-᠊᥄᥅᧞᧟᨞᨟᪠-᪦᪨-᪭᭚-᭠᰻-᰿᱾᱿᳓‐-‗†-‧‰-‸※-‾⁁-⁃⁇-⁑⁓⁕-⁞⳹-⳼⳾⳿⸀⸁⸆-⸈⸋⸎-⸛⸞⸟⸪-⸮⸰⸱、-〃〜〰〽゠・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꯫︐-︖︙︰-︲﹅﹆﹉-﹌﹐-﹒﹔-﹘﹟-﹡﹣﹨﹪﹫!-#%-'*,-/:;?@\。、・iuL𐄀𐄁𐎟𐏐𐡗𐤟𐤿𐩐-𐩘𐩿𐬹-𐬿𑂻𑂼𑂾-𑃁𒑰-𒑳u\\.,;!?u»u‚u‘u’u‘’u„u“u“”u”u›cCsNytj|}Wntk r'tSX|t|kpM|tj|dkS(Nt(topenerstindext ValueErrortFalsetcloserst quote_pairstget(tc1tc2ti((sJ/usr/local/lib/python2.7/site-packages/docutils/utils/punctuation_chars.pyt match_charses  t__main__tDashtPdtOpentPstClosetPes Initial quotetPis Final quotetPftOthertPoics|dkr8tfdttjdD}ni}xYD]Q}gt||dD]-}tjt||kr_t|^q_||siN(tNonetmaxtxrangetsyst maxunicodeRRR(Rtcp_mintcp_maxt charliststcatR((RsJ/usr/local/lib/python2.7/site-packages/docutils/utils/punctuation_chars.pytunicode_charlistss , 5cCs\d}tt|}|djd|djd|dcddg7<|djd|djd|dcddg7<|dj|d jd d d g}xdD]}|j||qWd g}xdD]}|j||qWdg}xdD]}|j||q Wdg}g||||fD]}dj|^qCS(sDocutils punctuation category sample strings. Return list of sample strings for the categories "Open", "Close", "Delimiters" and "Closing-Delimiters" used in the `inline markup recognition rules`_. iRu‚u„Ru‛u‟RRu〟u〝u"'(<\[{u"')>\]}u\-/:RRs\\.,;!?u(RsPiR(RRsPi(RR(R&tunicode_punctuation_categoriestremovetinsertRtextendtjoin(R"t ucharlistsRR%Rt delimiterstclosing_delimiterstchars((sJ/usr/local/lib/python2.7/site-packages/docutils/utils/punctuation_chars.pytpunctuation_sampless*  !        cCsxd}g|D]}t||kr |^q }g|D]}t||kr8|^q8}dj|dj|fS(s1Return (s1,s2) with characters above 0xFFFF in s2iR(tordR+(tstmaxunicode_narrowtchtl1tl2((sJ/usr/local/lib/python2.7/site-packages/docutils/utils/punctuation_chars.pytseparate_wide_charss++cCs g}g|D]}t|^q }|jxr|D]j}y@|ddd|krk|dj|n|j|gWq6tk r|j|gq6Xq6Wg}xf|D]^}g|D]}t|^q}t|dkr|dd|df}n|j|qWdj|S(sReturn s with shortcut notation for runs of consecutive characters Sort string and replace 'cdef' by 'c-f' and similar. iiiiu-R(R1tsorttappendt IndexErrorRtlenR*R+(R2tlR4tnR6R ((sJ/usr/local/lib/python2.7/site-packages/docutils/utils/punctuation_chars.pytmark_intervalss"    t(t)iAcCst|}ddt|d}|g}xV|D]N}|d7}|dkru||krut|}||}n|j|q4W|j|dj|S(s.Line-wrap a unicode string literal definition.s' t su'is\R(R;R9R+(R2t startstringt endstringtwraptct contstringR<R4((sJ/usr/local/lib/python2.7/site-packages/docutils/utils/punctuation_chars.pyt wrap_strings       is- openers = ur"""%s"""tutf8s+ openers = ur"""%s"""s+ openers-wide = ur"""%s"""s- closers = ur"""%s"""s+ closers = ur"""%s"""s+ closers-wide = ur"""%s"""s- delimiters = ur"%s"s+ delimiters = ur"%s"s- closing_delimiters = ur"%s"s+ closing_delimiters = ur"%s"RBs openers = (s closers = (sdelimiters = (s-if sys.maxunicode >= 0x10FFFF: # "wide" builds delimiters += (sclosing_delimiters =(R treRRRR-R!R.RR t__name__R'RR&R0R7R>RGtoREtdtcdto_widetc_widetd_widetencodetrepr(((sJ/usr/local/lib/python2.7/site-packages/docutils/utils/punctuation_chars.pytsx         E