L iC/RddlmZmZmZmZmZddlmZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZddlZddlmZddlmZddlZej:eZdZ ejBed ed gZ"ed ed gZ#ejBe#Z$ejBd Z%d Z&djOe&jQZ&ejBe&Z)ejBededgZ*Gdde+Z,Gdde+Z-Gdde.Z/Gdde Z0dZ1ddZ2y))bytechrbyteord bytesjointobytestostr)eexec) PSOperatorsps_StandardEncodingps_array ps_booleanps_dict ps_integer ps_literalps_markps_name ps_operator ps_procedure ps_procmarkps_real ps_stringN)Callable) whitespaces ()<>[]{}%[s]*s [^][(){}<>/%s%[^ ]*sf \( ( ( [^()]* \ [()] ) | ( [^()]* \( [^()]* \) ) )* [^()]* \) s<[s 0-9A-Fa-f]*>c eZdZy) PSTokenErrorN__name__ __module__ __qualname__rZ/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/misc/psLib.pyrr7rrc eZdZy)PSErrorNrr"rr#r&r&;r$rr&ceZdZd dZd dZdZeeeje je je jfdZ ejfdZdZdZy) PSTokenizercrt|}||_t||_d|_d|_||_y)NrF)rbuflenposclosedencoding)selfr*r.s r#__init__zPSTokenizer.__init__@s2cls8   rc|jr td||dkr |j}n#t|j|z|j}|j |j|}||_|S)zRead at most 'n' bytes from the buffer, or less if the read hits EOF before obtaining 'n' bytes. If 'n' is negative or omitted, read all data until EOF is reached. zI/O operation on closed filer)r- ValueErrorr+minr,r*)r/nnewposrs r#readzPSTokenizer.readIsc ;;;< < 9AXXFAtxx0F HHTXX 'rc4|js d|_|`|`yy)NT)r-r*r,r/s r#closezPSTokenizer.closeXs{{DK$(rc|j|j|jk\ry|j}|j}t t ||} | |vr| dvrd} | } n| dk(r"d} |||j \} } ||| } n| dk(r4d} |||}|td|z|j \} } ||| } n| d k(r4d } |||}|td |z|j \} } ||| } nUtd |z| d k(rd} |||dz}n d} |||}|td |z|j \} } ||| } ||| z|_t| |j} | | fS)N)NNs{}[] do_special% do_comment( do_stringzbad string at character %d< do_hexstringzbad hexstring at character %dzbad token at character %d/ do_literalr r.) skipwhiter,r+r*rrspanrrr.)r/r+ ps_special stringmatchhexstringmatch commentmatchendmatchr,r*char tokentypetoken_nextposms r# getnexttokenzPSTokenizer.getnexttoken]s  88txx hhhhws3x() : w( ( )#s388: 7C(' S)9&'Cc'IJJVVX 7C(* "3,9&'F'LMMVVX 7C("#>#DEEt|( S#'* S#&y"#>#DEEJAwG$EU#edmm4%rcn||j|jj\}}||_yN)r*r,rH)r/ whitematchrQrRs r#rGzPSTokenizer.skipwhites*$((388: 7rc|jdz|_|j|jd|_tj|jd\|_}t |j|_d|_y)Nr iq)r,r*dirtybufrdecryptr+)r/Rs r# starteexeczPSTokenizer.starteexecsW88a<, mmDMM59 !txx=rcDt|dsy|j|_|`y)NrZ)hasattrrZr*r9s r# stopeexeczPSTokenizer.stopeexecstZ( == MrN)rascii))rr r!r0r7r:r+rIstringREmatch hexstringRE commentRE endofthingRErT skipwhiteRErGr]r`r"rr#r(r(?sY! # NN"((__##5 n$/#4#4rr(ceZdZddZdZdZefdZdZdZ dZ e e e eefdZd Zd Zd Zd Zd ZdZdZdZdZy) PSInterpreterci}i}||_||g|_g|_d|_t |_|j y)Nr)r. dictstackstack proclevelrprocmarkfillsystemdict)r/r. systemdictuserdicts r#r0zPSInterpreter.__init__sB   $h/ #   rc6|jd}tx|d<x|d<|_td|j|d<t d|d<t d|d<t t|d<ti|d <|j||jy) Nr[mark]r truefalseStandardEncoding FontDirectory) rlrrur do_makearrayr r r r suckoperators __class__)r/rqs r#rpzPSInterpreter.fillsystemdicts^^A& ;B9D 3D*V,ty%c4+<+<= 3'] 6(m 7)12E)F %&&-bk ?# :t~~6rct|D]<}t||}t|ts |dddk(s)|dd}t ||||<>|j D]}|j ||y)Nps_)dirgetattr isinstancerr __bases__r|)r/rqklassnameattr baseclasss r#r|zPSInterpreter.suckoperatorssyJ ;D4&D$)d2Ah%.?ABx#.tT#: 4  ;  6I   z9 5 6rc zt||jx}|_|j}|j}|j } |\}}|sn'|r|||} | |} n||} | || 4|j d|_y#|jtjd|jj|jjdz |jj|jj|jj|jjdzxYw)Nz/ps error: - - - - - - - %s >>> %s - - - - - - -2) r(r. tokenizerrTdo_token handle_objectr:logdebugr*r,) r/datarrrTrrrOrPhandlerobjects r# interpretzPSInterpreter.interprets%0t}}%EE DN -- ==**  #/> 5%dI6G$U^F%e_F%!&) OO !DN ~~) $ NN&&t~~'9'9B'>ASASTNN&&t~~'9'9DNN) * $sYB14B1$B-A?3B-;B1?BB-B1B B-(B1,B--B1cyrVr"r/rPs r#r>zPSInterpreter.do_comments rct|ddS)Nr )rrs r#rDzPSInterpreter.do_literal!s%)$$rct|ddS)Nr rb)rrs r#r@zPSInterpreter.do_string$sq%%rc 2dj|ddj}t|dzr|dz}g}tdt|dD],}|j t t |||dzd.dj|}t|S)NrEr rb0r)joinsplitr+rappendchrrr)r/rPhexStrcleanstrrs r#rBzPSInterpreter.do_hexstring'sq**,- v;?c\Fq#f+q) =A OOCF1q1u$5r :; < =778$""rcv|dk(r |jdz|_|jS|dk(rdg} |j}||jk(rn|j|2|jdz |_|j t |S|dk(r |j S|dk(r tdStd)N{r }rtrvzhuh?) rnropoprreverserrurr)r/rPr topobjects r#r<zPSInterpreter.do_special1s C<!^^a/DN== c\D HHJ  - I&  "^^a/DN LLN% % c\99  c\3< v& &rc:|jj|yrV)rmrrs r#rzPSInterpreter.pushFs &!rc|j}|s td|d}|r2|j|vr$tdt|d|j|d=|S)Nzstack underflowrbztypecheck, expected z, found )rmr&rrepr)r/typesrmrs r#rzPSInterpreter.popIs] +, ,r {{%':>u+v{{S "I rcg} |j}||jk(rn|j|2|j|j t |yrV)rrurrrr )r/arrayrs r#r{zPSInterpreter.do_makearrayVsP IDII% LL #    (5/"rc |`|`y)zRemove circular references.N)rmrlr9s r#r:zPSInterpreter.close`s J NrNra)rr r!r0rpr|rrrrrrrrrrrr>rDr@rBr<rrr{r:r"rr#rjrjsn76'.B  2 #> %&#'*" #rrjct|j}|tk(r4i}|jjD]\}}t |||<|S|t k(rsdgt |jz}tt |jD]}t |j|||<|jdk(r t|}|S|j}|S)Nr) rrdictitems unpack_itemlistr+rtuple)rtpnewitemkeyrrs r#rrfs djj B Tz****, .JC&u-GCL . N t&3tzz?*s4::' 4A$TZZ]3GAJ 4 99 'GnG N** Nrctjd|}|r"|jd}|j}nd}t |}|j d|j ||j ddj}||vr||}nPt|j}t|dkDr|jd|j||d}|jt|S)Ns /FontName\s+/([^ \t\n\r]+)\s+defr rFsC/Helvetica 4 dict dup /Encoding StandardEncoding put definefont poprrz Helvetica)researchgroupdecoderjrrlrrkeysr+removesortr:r)rr.rSfontName interpreterfontdirrawfont fontNamess r#suckfontrws 6=A771:??$2KN$##A&7==G7(#( y>A    [ ))A,' w rr)3fontTools.misc.textToolsrrrrrfontTools.miscr psOperatorsr r r r rrrrrrrrrrrcollections.abcrstringrlogging getLoggerrrrIcompilerh endofthingPatrgrf stringPatrrrcre Exceptionrr&rr(rjrrr"rr#rs PP   $g!  bjjD*e#<=> ?J>? rzz-( BJJ| $    HHY__& ' 2::i bjjE:#GHI  9  i d&dN}K}@" r