+
    Œvj�ô  ã                   ór  € R t Rt^ RIHtHtHt ^ RIHt ^ RIH	t	H
t
HtHtHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHtHtHtHtHt ^ R	IHtHt ^ R
IHt ^ RI H!t! ^ RI"t"^ RI#t#^ RI$t$ ^ RI%t% ! R R]PL                  4      t'](PS                  RR4      3R lt*R t+R t,R t-^t.^t/^t0^t1^t2^ t3^@t4^€t5R8t6R9t7R:t8R;t9R<t:/ t;R t<R t= ! R R4      t> ! R R4      t?]! RR4      t@ ! R R](4      tA ! R R ]>4      tB^tC^tD^tE^tF^ tG^@tHR=tIR>tJR?tK ! R! R"]B]P˜                  4      tM ! R# R$4      tN ! R% R&4      tO ! R' R(]P4      tQ. . 3R) ltR]! R*R+4      tS ! R, R*]S4      tS]S! R@^ ^ ^ ^ ^ 4      .tT]S! R-^ ^ ^ ^ ^ 4      tU ! R. R/]V4      tW]%'       g   RAR0 ltXM]Y! R1R1R1R27      R33R4 ltXRBR5 ltZR6 t[R7 t\]! ]\4       AR#    Rt% ELL; i)Cz$Id$a  TrueType font support

This defines classes to represent TrueType fonts.  They know how to calculate
their own width and how to write themselves into PDF files.  They support
subsetting and embedding and can represent all 16-bit Unicode characters.

Note on dynamic fonts
---------------------

Usually a Font in ReportLab corresponds to a fixed set of PDF objects (Font,
FontDescriptor, Encoding).  But with dynamic font subsetting a single TTFont
will result in a number of Font/FontDescriptor/Encoding object sets, and the
contents of those will depend on the actual characters used for printing.

To support dynamic font subsetting a concept of "dynamic font" was introduced.
Dynamic Fonts have a _dynamicFont attribute set to 1.

Dynamic fonts have the following additional functions::

    def splitString(self, text, doc):
        '''Splits text into a number of chunks, each of which belongs to a
        single subset.  Returns a list of tuples (subset, string).  Use
        subset numbers with getSubsetInternalName.  Doc is used to identify
        a document so that different documents may have different dynamically
        constructed subsets.'''

    def getSubsetInternalName(self, subset, doc):
        '''Returns the name of a PDF Font object corresponding to a given
        subset of this dynamic font.  Use this function instead of
        PDFDocument.getInternalFontName.'''

You must never call PDFDocument.getInternalFontName for dynamic fonts.

If you have a traditional static font, mapping to PDF text output operators
is simple::

   '%s 14 Tf (%s) Tj' % (getInternalFontName(psfontname), text)

If you have a dynamic font, use this instead::

   for subset, chunk in font.splitString(text, doc):
       '%s 14 Tf (%s) Tj' % (font.getSubsetInternalName(subset, doc), chunk)

(Tf is a font setting operator and Tj is a text ouput operator.  You should
also escape invalid characters in Tj argument, see TextObject._formatText.
Oh, and that 14 up there is font size.)

Canvas and TextObject have special support for dynamic fonts.
)ÚpackÚunpackÚerror©Úfnmatch)ÚbytestrÚ	isUnicodeÚchar2intÚisStrÚisBytes)ÚABag)Ú
pdfmetricsÚpdfdoc)Ú	rl_config)Úhex32Úadd32ÚcalcChecksumÚinstanceStringWidthTTFÚfp_str)Úregister_resetÚunShapedFontGlob)Ú
namedtuple)ÚBytesIONc                   ó   € ] tR t^GtRtRtR# )ÚTTFErrorzTrueType font exception© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú]/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/pdfbase/ttfonts.pyr   r   G   s   † ÙÛr#   r   s
   0123456789s
   ABCDEFGIJKc                 óF   € \        R V ,          R4      P                  V4      # )z%6.6dÚASCII)ÚbytesÚ	translate)ÚnÚtables   &&r$   ÚSUBSETNr+   K   s   € Ü�˜•˜7Ó#×-Ñ-¨eÓ4Ð4r#   c                ó2  € RRRRRV ,          RV ,          RRR	V ,          R
RR\        V4      ^,
          ,          RR\        V4      ,          .\        V4       UUu. uF  w  r#RW#3,          NK  	  upp,           . RO,           pRP                  V4      # u uppi )zqCreates a ToUnicode CMap for a given subset.  See Adobe
_PDF_Reference (ISBN 0-201-75839-3) for more information.z$/CIDInit /ProcSet findresource beginz12 dict beginÚ	begincmapz/CIDSystemInfoz<< /Registry (%s)z/Ordering (%s)z/Supplement 0z>> defz/CMapName /%s defz/CMapType 2 defz1 begincodespacerangez<00> <%02X>Úendcodespacerangez%d beginbfcharz<%02X> <%04X>Ú
)Ú	endbfcharÚendcmapz-CMapName currentdict /CMap defineresource popÚendr2   )ÚlenÚ	enumerateÚjoin)ÚfontnameÚsubsetÚiÚvÚcmaps   &&   r$   ÚmakeToUnicodeCMapr;   P   s¨   € ð 	/ØØØØ˜hÕ&Ø˜8Õ#ØØØ˜hÕ&ØØØœ˜V› q�Õ)ØØœ3˜v›;Õ&ð
ô 1:¸&Ô0AÔBÑ0A©¨ˆ_ ˜u×$Ð$Ñ0AÒBõCòF
õ
€Dð, �9‰9�T‹?Ðùó Cs   ÁBc                óL   € V RV V,           W\        V4      ,           R ,           # )ztSplices the given value into stream at the given offset and
returns the resulting stream (the original is unchanged)N)r3   ©ÚstreamÚoffsetÚvalues   &&&r$   ÚsplicerA   k   s)   € ð �'�6ˆ?˜UÕ" V´S¸³ZÕ,?Ð,@Ð%AÕAÐAr#   c                ó.   € \        W\        RV4      4      # )z‚Writes the given unsigned short value into stream at the given
offset and returns the resulting stream (the original is unchanged)ú>H)rA   r   r=   s   &&&r$   Ú_set_ushortrD   p   s   € ô �&¤$ t¨UÓ"3Ó4Ð4r#   c            	      ó   € \         P                  V R 4      pVf´   \        P                  P                  p\        P                  P
                  p. pVP                  pV  Fb  p\        P                  ! VRR7       FC  w  rgpV! V4      p	W‘9  d	   V! V	4       V F!  p	V! V! Wi4      4      p	W‘9  g   K  V! V	4       K#  	  KE  	  Kd  	  V\         V &   V# )NT)Úfollowlinks)Ú_cached_ttf_dirsÚgetÚosÚpathr5   ÚrealpathÚappendÚwalk)
ÚrootsÚRr5   rK   ÚaRÚrootÚrÚdÚfÚss
   *         r$   Ú	_ttf_dirsrV   ˆ   s¯   € Ü×Ñ˜U 4Ó(€AØ‚yÜ�w‰w�|‰|ˆÜ—7‘7×#Ñ#ˆØˆØ�X‰XˆÛˆDÜŸ7š7 4°D×9‘��aÙ˜Q“K�Ø”:™r !œuÛ�AÙ ¡ a£Ó+�AØ–z¡2 a¦5ó ó :ñ ð #$Ô˜ÑØ€Hr#   c                óf  € ^ RI HpHp  V! V R4      pW3#   \         d�    ^ RIpTP
                  P                  T 4      '       gX   \        \        P                  !   F<  pTP
                  P                  YP4      pT! T4      '       g   K.  T! TR4      pYc3u u # 	  \        RT ,          4      hi ; i)zPOpens a TTF file possibly after searching TTFSearchPath
returns (filename,file)
)Ú	rl_isfileÚopen_for_readÚrbNzCan't open file "%s")Úreportlab.lib.utilsrX   rY   ÚIOErrorrI   rJ   ÚisabsrV   r   ÚTTFSearchPathr5   r   )ÚfnrX   rY   rT   rI   ÚDÚtfns   &      r$   ÚTTFOpenFilerb   ™   sš   € ÷ =ð5Ù˜"˜TÓ"ˆØˆuˆøÜô 5ÛØ�w‰w�}‰}˜R× Ò Ü¤	× 7Ñ 7Ô8�Ø—g‘g—l‘l 1Ó(�Ù˜S—>”>Ù% c¨$Ó/�AØ˜6”Mñ	 9ô
 Ð.°Õ3Ó4Ð4ð5ús   Š –/B0ÁA B0ÂB0ÂB0c                   ó¶   a € ] tR t^«t o RtRtRtRtRR ltR t	R t
R tR tR tR	 tR
 tR tR tR tRR ltR tR tR tR tR tR tR tR tR tRtV tR# )ÚTTFontParserzBasic TTF file parserÚTTFc                ó  € W n         V P                  V4       V P                  4       pV'       d$   V P                  4        V P	                  V4       R# V P                   '       d   V P                  4        V P                  4        RV n        R# )zÉLoads and parses a TrueType font file.  file can be a filename or a
file object.  If validate is set to a false values, skips checksum
validation.  This can save time, especially if the font is large.
r#   N)ÚvalidateÚreadFileÚ
readHeaderÚreadTTCHeaderÚ
getSubfontÚchecksumFileÚreadTableDirectoryÚsubfontNameX)ÚselfÚfilerg   ÚsubfontIndexÚisCollections   &&&& r$   Ú__init__ÚTTFontParser.__init__±   sd   € ð
 !ŒØ�‰�dÔØ—‘Ó(ˆßØ×ÑÔ Ø�O‰O˜LÖ)à�}�}ˆ}˜d×/Ñ/Ô1Ø×#Ñ#Ô%Ø #ˆDÖr#   c                óÊ  € V P                  4       V n        R V n        V P                  RR V n        V P                  V P                  9  d4   \        RV P                  V P                  V P                  3,          4      hV P                  4       V n        . V n        V P                  P                  p\        V P                  4       F  pV! V P                  4       4       K  	  R# )ÚTTCNz1"%s" is not a %s file: can't read version 0x%8.8xéÿÿÿÿ)Ú
read_ulongÚ
ttcVersionÚfileKindÚttfVersionsÚttcVersionsr   ÚfilenameÚnumSubfontsÚsubfontOffsetsrL   Úrange)ro   Úar8   s   &  r$   rj   ÚTTFontParser.readTTCHeaderÁ   s·   € ØŸ/™/Ó+ˆŒØˆŒØ×+Ñ+¨C¨RÐ0ˆÔØ�?‰? $×"2Ñ"2Ô2ÜÐOÐRV×R_ÑR_Ð`d×`mÑ`mÐnr×n}Ñn}ÐQ~Õ~ÓÐØŸ?™?Ó,ˆÔØ ˆÔØ×Ñ×&Ñ&ˆÜ�t×'Ñ'Ö(ˆAÙˆd�o‰oÓÖ ó )r#   c                ó¾  € V P                   R 8w  d)   \        RV P                  V P                   3,          4      h V P                  V,          pT P                  T4       T P                  4        T P                  4        \        R\        T4      ,           4      T n        R#   \         d1    \        RT P                  YP
                  ^,
          3,          4      hi ; i)rv   z'"%s" is not a TTC file: use this methodz0TTC file "%s": bad subfontIndex %s not in [0,%d]Ú-N)rz   r   r}   r   Ú
IndexErrorr~   Úseekri   rm   r   Ústrrn   )ro   rq   Úposs   && r$   rk   ÚTTFontParser.getSubfontÍ   sÂ   € Ø�=‰=˜%ÔÜÐDÈÏÉÐVZ×VcÑVcÐGdÕdÓeÐeð	AØ×%Ñ% lÕ3ˆCð 	�	‰	�#ŒØ�‰ÔØ×ÑÔ!Ü# C¬¨LÓ(9Õ$9Ó:ˆÖøô ô 	AÜÐMÐQU×Q^ÑQ^Ð_k×l|Ñl|Ð}~Õl~ÐPÕó  Að  Að	Aús   »B! Â!;Cc                ó¢  €  V P                  4       V n        V P                  4       V n        V P                  4       V n        V P                  4       V n        / V n        . V n        \        V P                  4       F�  p/ pV P                  4       VR &   V P                  4       VR&   V P                  4       VR&   V P                  4       VR&   V P                  P                  V4       W P
                  VR ,          &   Kƒ  	  T P                  '       d   T P                  4        R# R#    \        RT P                  : RT P                  : R24      h; i)ÚtagÚchecksumr?   ÚlengthzCorrupt ú file "z" cannot read Table DirectoryN)Úread_ushortÚ	numTablesÚsearchRangeÚentrySelectorÚ
rangeShiftr*   Útablesr€   Úread_tagrx   rL   r   rz   r}   rg   ÚchecksumTables)ro   r)   Úrecords   &  r$   rm   ÚTTFontParser.readTableDirectoryÙ   s  € ð	pØ!×-Ñ-Ó/ˆDŒNØ#×/Ñ/Ó1ˆDÔØ!%×!1Ñ!1Ó!3ˆDÔØ"×.Ñ.Ó0ˆDŒOð ˆDŒJØˆDŒKÜ˜4Ÿ>™>Ö*�Ø�Ø $§¡£��u‘Ø%)§_¡_Ó%6��zÑ"Ø#'§?¡?Ó#4��xÑ Ø#'§?¡?Ó#4��xÑ Ø—‘×"Ñ" 6Ô*Ø,2—
‘
˜6 %�=Ó)ñ +ð �=�=ˆ=˜$×-Ñ-Ö/‰=øð	pÝÐQU×Q^ÔQ^Ð`d×`mÔ`mÐnÓoÐoús   ‚C<D$ Ä$*Ec                óV  €  V P                  4       ;V n        pTR8X  d(   \        T P                  : RT P                  : R24      hYP
                  9  d   \        RT,          4      hYP
                  R,          8H  #    \        RT P                  : RT P                  : R24      h; i)	z,read the sfnt header at the current positionÚ"z" is not a z file: can't read versioniOTTOrŽ   z(": postscript outlines are not supportedz/Not a recognized TrueType font: version=0x%8.8Xrw   )rx   Úversionr   r}   rz   r{   )ro   r›   s   & r$   ri   ÚTTFontParser.readHeaderï   s—   € ð	hØ%)§_¡_Ó%6Ð6ˆDŒL˜7ð �JÔÜÐRV×R_ÔR_Ð`d×`mÔ`mÐnÓoÐoà×*Ñ*Ô*ÜÐLÈwÕVÓWÐWØ×(Ñ(¨Õ,Ñ,Ð,øð	hÝÈ$Ï-Ì-ÐX\×XeÔXeÐfÓgÐgús   ‚A> Á>*B(c                ó  € \        V R 4      '       gs   \        VR4      '       d)   \        VRR4      V n        VP                  4       V n        M8\        V4      w  V n        pVP                  4       V n        VP                  4        ^ V n        R# )Ú	_ttf_dataÚreadÚnamez(ttf)N)ÚhasattrÚgetattrr}   rŸ   rž   rb   ÚcloseÚ_pos)ro   rT   s   &&r$   rh   ÚTTFontParser.readFileý   sf   € Ü�t˜K×(Ò(Ü�q˜× Ò Ü '¨¨&°Ó 9�”Ø!"§¡£�•ä#.¨q£>Ñ �”˜qØ!"§¡£�”Ø—‘”	ØˆŽ	r#   c                ó~  € V P                    F¬  pV P                  VR ,          VR,          4      p\        V4      pVR,          R8X  d#   \        RV^^ 4      ^ ,          p\	        W4) 4      pVR,          pWS8w  g   Ko  \        RV P                  : R\        V4      : RVR,          : R	\        V4      : R
2	4      h	  R# )r?   r�   r‹   Úheadz>lrŒ   z
TTF file "z": invalid checksum z table: z (expected Ú)N)r”   Ú	get_chunkr   r   r   r   r}   r   )ro   Útr*   rŒ   Ú
adjustmentÚ	xchecksums   &     r$   r–   ÚTTFontParser.checksumTables  sÄ   € à—”ˆAØ—N‘N 1 X¥;°°(µÓ<ˆEÜ# EÓ*ˆHØ��x˜6Ô!Ü# D¨%°°#¨,Ó7¸Õ:�
Ü  ¨;Ó7�Ø˜*�ˆIØÖ$ÝÐ_c×_lÔ_lÔmrÐs{Öm|Ð}~ð  @E÷  ~Fð  ~Fô  GLð  MVö  GWð   Xó  Yð  Yó r#   c           	     óê   € \        V P                  4      pR V8w  dW   \        RV P                  \	        V4      \        V P                  4      \        V P                  4      ^,          3,          4      hR# )ì   º/ac zGTTF file "%s": invalid checksum %s (expected 0xB1B0AFBA) len: %d &3: %dN)r   rž   r   r}   r   r3   )ro   rŒ   s   & r$   rl   ÚTTFontParser.checksumFile  sª   € ä §¡Ó/ˆØ�xÔÜÐdÐhl×huÑhuÔv{ð  }Eó  wFô  GJð  KO÷  KYñ  KYó  GZô  \_ð  `d÷  `nñ  `nó  \oð  pqõ  \qð  hsõ  só  tð  tñ  r#   c                óp   € V P                   V,          R,          pV P                   V,          R,          pW#3# )z1Returns the offset and size of a given TTF table.r?   r�   )r*   )ro   r‹   r?   r�   s   &&  r$   Úget_table_posÚTTFontParser.get_table_pos  s/   € à—‘˜C• Õ*ˆØ—‘˜C• Õ*ˆØÐÐr#   c                ó   € Wn         R# )z-Moves read pointer to a given offset in file.N©r¤   ©ro   rˆ   s   &&r$   r†   ÚTTFontParser.seek   s   € àŽ	r#   c                ó6   € V P                   V,           V n         R# )zSkip the given number of bytes.Nrµ   )ro   Údeltas   &&r$   ÚskipÚTTFontParser.skip$  s   € à—I‘I Õ%ˆŽ	r#   c                ób   € V P                  V4      ^ ,          V,           V n        V P                  # )zuMoves read pointer to the given offset within a given table and
returns absolute offset of that position in the file.)r²   r¤   )ro   r‹   Úoffset_in_tables   &&&r$   Ú
seek_tableÚTTFontParser.seek_table(  s*   € ð ×&Ñ& sÓ+¨AÕ.°Õ@ˆŒ	Ø�y‰yÐr#   c                óœ   € V ;P                   ^,          un         \        V P                  V P                   ^,
          V P                    R4      # )zRead a 4-character tagÚutf8)r¤   r‡   rž   ©ro   s   &r$   r•   ÚTTFontParser.read_tag.  s3   € à�	Š	�Q��	Ü�4—>‘> $§)¡)¨a¥-°·	±	Ð:¸6ÓBÐBr#   c                ó>   € \        V P                  WV,            4      # )z,Return a chunk of raw data at given position)r'   rž   )ro   rˆ   r�   s   &&&r$   r©   ÚTTFontParser.get_chunk3  s   € ä�T—^‘^ C¨F­
Ð3Ó4Ð4r#   c                óŽ   € V ;P                   ^,          un         \        V P                  V P                   ^,
          ,          4      # ©é   )r¤   Úintrž   rÂ   s   &r$   Ú
read_uint8ÚTTFontParser.read_uint87  s+   € Ø�	Š	�Q��	Ü�4—>‘> $§)¡)¨A¥+Õ.Ó/Ð/r#   c                óª   € V ;P                   ^,          un         \        RV P                  V P                   ^,
          V P                    4      ^ ,          # )zReads an unsigned shortrC   ©r¤   r   rž   rÂ   s   &r$   r�   ÚTTFontParser.read_ushort;  s8   € à�	Š	�Q��	Ü�d˜4Ÿ>™>¨$¯)©)°A­+°d·i±iÐ@ÓAÀ!ÕDÐDr#   c                óª   € V ;P                   ^,          un         \        RV P                  V P                   ^,
          V P                    4      ^ ,          # )zReads an unsigned longú>LrÍ   rÂ   s   &r$   rx   ÚTTFontParser.read_ulong@  s8   € à�	Š	�Q��	Ü�d˜4Ÿ>™>¨$¯)©)°a­-¸¿	¹	ÐBÓCÀAÕFÐFr#   c                óè   € V ;P                   ^,          un          \        RV P                  V P                   ^,
          V P                    4      ^ ,          #   \         d   p\	        T4      hRp?ii ; i)zReads a signed shortú>hN)r¤   r   rž   ÚstructErrorr   )ro   r   s   & r$   Ú
read_shortÚTTFontParser.read_shortE  sW   € à�	Š	�Q��	ð	"Ü˜$˜tŸ~™~¨d¯i©i¸­k¸$¿)¹)ÐDÓEÀaÕHÐHøÜô 	"Ü˜5“/Ð!ûð	"ús   ›:A ÁA1Á!A,Á,A1c                óN   € \        RV P                  W^,            4      ^ ,          # )z*Return an unsigned short at given positionrC   ©r   rž   r¶   s   &&r$   Ú
get_ushortÚTTFontParser.get_ushortM  ó!   € ä�d˜4Ÿ>™>¨#°!­eÐ4Ó5°aÕ8Ð8r#   c                óN   € \        RV P                  W^,            4      ^ ,          # )z)Return an unsigned long at given positionrÐ   rØ   r¶   s   &&r$   Ú	get_ulongÚTTFontParser.get_ulongQ  rÛ   r#   c                óR   € V P                  V4      w  r#V P                  W"V,            # )zReturn the given TTF table)r²   rž   )ro   r‹   rˆ   r�   s   &&  r$   Ú	get_tableÚTTFontParser.get_tableU  s'   € à×(Ñ(¨Ó-‰ˆØ�~‰~˜c f¥*Ð-Ð-r#   )r¤   rž   r’   rz   r}   r~   r�   r“   r‘   rn   r   r*   r”   ry   r{   rg   r›   N)é   ieurtifctt)râ   é   ©é    rå   )rå   )r   r   r   r    r!   r{   r|   rz   rs   rj   rk   rm   ri   rh   r–   rl   r²   r†   rº   r¾   r•   r©   rÊ   r�   rx   rÕ   rÙ   rÝ   rà   r"   Ú__classdictcell__©Ú__classdict__s   @r$   rd   rd   «   sŠ   ø‡ € ÙØ4€KØ)€KØ€Hô$ò 
!ò
;ò0ò,-ò	ò
Yòtò òò&ôòCò
5ò0òEò
Gò
"ò9ò9÷.ð .r#   rd   c                   ó6   a € ] tR tRt o RtR tR tR tRtV t	R# )ÚTTFontMakeriZ  zBasic TTF file generatorc                ó   € / V n         R# )zInitializes the generator.N©r”   rÂ   s   &r$   rs   ÚTTFontMaker.__init__]  s	   € àˆŽr#   c                óJ   € VR8X  d   \        V^R4      pW P                  V&   R# )zAdds a table to the TTF file.r§   s       N)rA   r”   )ro   r‹   Údatas   &&&r$   ÚaddÚTTFontMaker.adda  s#   € à�&Œ=Ü˜$  ;Ó/ˆDØ�‰�CÓr#   c                ób  aa€ \        4       pVP                  oV P                  p\        V4      p^p^ pV^,          V8:  d   V^,          pV^,           pK"  V^,          pV^,          V,
          pS! \	        RRW4WV4      4       ^V^,          ,           pVV3R lp\        \        VP                  4       4      4      p	V	 F_  w  op
SR8X  d   Tp\        V
4      pV! S4       S! \	        RWÇ\        V
4      4      4       \        V
4      ^,           R
,          pW},           pKa  	  V	 F*  w  op
V
R,          p
S! V
R\        V
4      R
,           4       K,  	  \        VP                  4       4      p\        RV) 4      pVP                  X^,           4       S! \	        R	V4      4       VP                  4       # )z<Finishes the generation and returns the TTF file as a stringz>lHHHHrâ   c                 ó(   <€ S! \        SR 4      4      # )Úlatin1)r'   )Úxr‹   Úwrites   &€€r$   Ú<lambda>Ú(TTFontMaker.makeStream.<locals>.<lambda>|  s   ø€ ™œe C¨Ó1Ô2r#   r§   z>LLLs      Nr¯   rÐ   éüÿÿÿ)r   rö   r”   r3   r   ÚlistÚsortedÚitemsr   Úgetvaluer   r†   )ro   Ústmr”   r�   r‘   r’   r“   r?   ÚwStrÚtables_itemsrï   Ú
head_startrŒ   ÚpaddedLengthr‹   rö   s   &             @@r$   Ú
makeStreamÚTTFontMaker.makeStreamg  s€  ù€ ä‹iˆØ—	‘	ˆà—‘ˆÜ˜“Kˆ	ØˆØˆØ˜A�o Ô*Ø%¨�/ˆKØ)¨AÕ-ŠMØ! BÕ&ˆØ •^ kÕ1ˆ
ñ 	Œd�8˜Z¨Ø!.ó<ô 	=ð �i "•nÕ$ˆÝ2ˆÜœF 6§<¡<£>Ó2Ó3ˆÛ%‰IˆC�Ø�fŒ}Ø#�
Ü# DÓ)ˆHÙ�ŒIÙ”$�v˜x´°T³Ó;Ô<Ü ›I a�K¨Õ+ˆLØÕ*ŠFñ &ó &‰IˆC�Ø�IÕˆDÙ�$�}œ˜D›	 "�Ð%Ö&ñ &ô   §¡£Ó/ˆÜ˜ h YÓ/ˆØ�‰�˜a•Ô ÙŒd�4˜Ó"Ô#à�|‰|‹~Ðr#   rì   N)
r   r   r   r    r!   rs   rð   r  r"   ræ   rç   s   @r$   rê   rê   Z  s   ø‡ € Ùòò ÷*ð *r#   rê   ÚCMapFmt2SubHeaderz*firstCode entryCount idDelta idRangeOffsetc                   ó.   a € ] tR tRt o RtRR ltRtV tR# )ÚTTFNameBytesi–  z"class used to return named stringsc                ó®   €  VP                  V4      p\        P                  YP                  R4      4      pY4n        T#    TP                  R 4      p LA; i)rô   rÁ   )Údecoder'   Ú__new__ÚencodeÚustr)ÚclsÚbÚencr  ro   s   &&&  r$   r
  ÚTTFNameBytes.__new__˜  sL   € ð	&Ø—8‘8˜C“=ˆDô �}‰}˜S§¡¨VÓ!4Ó5ˆØŒ	Øˆøð		&Ø—8‘8˜HÓ%ŠDús	   ‚? ¿A)r  N©rÁ   )r   r   r   r    r!   r
  r"   ræ   rç   s   @r$   r  r  –  s   ø‡ € Ù,÷ò r#   r  c                   óF   a € ] tR tRt o Rt^ t/ tRR ltR	R ltR t	Rt
V tR# )
Ú
TTFontFilei¡  zTTF file parser and generatorc                óâ  € \        V4      '       Ed5   ^ pV P                  P                  4       p \        P	                  WW5R7       V P                  4       ;qpn        V P                  V4       \        V4      '       d   W@P                  8X  g   W@P                  P                  8X  d   R# V'       g1   VP                  \        V P                  V P                  R7      4       V^,          pWW8¼  d   \        RV P                  : RV: 24      hV P                  P!                  4        V P                  P                  V4       EK  \        P	                  WW4R7       V P                  V4       R# )zûLoads and parses a TrueType font file.

file can be a filename or a file object.  If validate is set to a false
values, skips checksum validation.  This can save time, especially if
the font is large.  See TTFontFile.extractInfo for more information.
©rg   rq   N)rž   r}   zcannot find z	 subfont )r
   Ú__dict__Úcopyrd   rs   rx   r~   ÚextractInfor   r    r  ÚupdateÚdictrž   r}   Ú
ValueErrorÚclear)ro   rp   ÚcharInforg   rq   Úsfir  r~   s   &&&&&   r$   rs   ÚTTFontFile.__init__¦  s  € ô �×ÓØˆCØ—}‘}×)Ñ)Ó+ˆHØÜ×%Ñ% d¸8Ð%ÔUØ15·±Ó1BÐB�Ô.Ø× Ñ  Ô*Ü˜L×)Ò)¨l¿I¹IÔ.EØ#§Y¡Y§^¡^Ô3ÙßØ—O‘O¤D°4·>±>ÈDÏMÉMÔ$ZÔ[Ø�q•�ØÔ#Ý$ÀDÇMÄMÒS_Ð%`ÓaÐaØ—‘×#Ñ#Ô%Ø—‘×$Ñ$ X×.ä×!Ñ! $°xÐ!ÔZØ×Ñ˜XÖ&r#   c           
     ó¦-  aU€ V P                  R4      pV P                  4       pV^ 8w  d   \        RV,          4      hV P                  4       pW P                  4       ,           p^R^R^R^R^R/p\        VP	                  4       4      p\        V4      p\        V4       EFR  p	V P                  4       p
V P                  4       pV P                  4       pV P                  4       pV P                  4       pV P                  4       pW×9  d   Kl  RpV
^8X  dv   V^8X  do   VR8X  dh   V P                  p V P                  W_,           4       V^,          ^ 8w  d   \        R4      h\        V P                  W_,           V4      R4      pVV n        M7V
^8X  d1   V^ 8X  d*   V^ 8X  d#   \        V P                  W_,           V4      R4      pV'       g   EK,  Wm,          R8X  g   EK<  VWm&   V^,          pV^ 8X  g   EKS   M	  V^,          e   V^,          pM,V^,          e   V^,          pMV^,          e   V^,          pMRpV'       EgŽ   \        P                  '       Edl   V P                  pV'       dD   \        P                  P!                  \        P                  P#                  V4      4      ^ ,          pV'       g`   \%        R\&        P&                  ! 4       : R	V P(                  P*                  : R
24      pV P(                  ;P*                  ^,          un        M¸V P,                  P/                  VR4      pV'       g‰   X'       d   \%        RV,          4      pM^\%        R\&        P&                  ! 4       : R	V P(                  P*                  : R
24      pV P(                  ;P*                  ^,          un        VV P,                  V&   M\        R4      hVP)                  VP1                  RR4      4      pV F6  p\3        V4      ^~8”  g
   VR9   g   K  \        RV: R\5        V4      : 24      h	  VV n        V^,          ;'       g    TV n        V^,          ;'       g    RV n        V^,          ;'       g    TV n        V^,          ;'       g    TV n         V P                  R4       T P                  4       T P                  4       ppT^8w  d   \        RTT3,          4      hT P                  4       T P                  4       3T n         T PC                  ^4       T PE                  4       pTR8w  d   \        RT,          4      hT PC                  ^4       T P                  4       ;T n#        pTR8X  d   R pMRT,          oUTU3R lpTT n$        T PC                  ^4       T PK                  4       pT PK                  4       pT PK                  4       pT PK                  4       p\        \M        TTTTT.4      4      T n'        T PC                  ^4       T P                  4       pT P                  4       p Rp!RT PP                  9   EdG   T P                  R4       T P                  4       p"T PC                  ^4       T P                  4       p#T PC                  ^4       T P                  4       p$T$^8X  g   T$R,          '       d;   \        P                  P#                  T P                  4      \        PR                  9  p!T PC                  ^:4       T PK                  4       p%T PK                  4       p&T! T%4      T n*        T! T&4      T n+        T"^8”  d0   T PC                  ^4       T PK                  4       p'T! T'4      T n,        M?T PT                  T n,        M-Rp#T! T4      T n*        T! T4      T n+        T PT                  T n,        ^2\[        T#R ,          ^,          4      ,           T n.        T P                  R!4       T P                  4       T P                  4       ppTR89  d   \        R"TT3,          4      hT PK                  4       T P                  4       R#,          ,           T n/        T PK                  4       T n0        T PK                  4       T n1        T PE                  4       p(\d        T n3        T P^                  ^ 8w  d   T Pf                  \h        ,          T n3        T#R$8¼  d   T Pf                  \j        ,          T n3        T('       d   T Pf                  \l        ,          T n3        T P                  R%4       T P                  4       T P                  4       ppT^8w  d   \        R&TT3,          4      hT PC                  ^4       T P                  4       p)T)^ 8w  d   \        R'T),          4      hT P                  4       p*T*^ 8X  d   \        R(4      hT P                  R)4       T P                  4       T P                  4       ppT^8w  d   \        R*TT3,          4      hT P                  4       ;T n7        p+T!'       g,   T Pn                  ^ÿ8”  d   \        R+X$,          4      hRT n8        MR,T n8        T'       g   RT n9        RT n:        RT n;        R# T ^ 8w  d   \        R-T ,          4      hT P                  R.4      p,T P                  4       p-T P                  4       p.T.^ 8X  d   T-^ 8w  d   T-T.p-p.Rp/^ p0\        T.4       F…  p1T P                  4       p2T P                  4       p3T PE                  4       pT2^8X  d   ^p0Tp/K@  T2^8X  d   T3^ 8X  d   T0^8w  d   ^p0Tp/K[  T2^8X  d   T3^8X  d   ^p0Tp/Ko  T2^ 8X  g   Kx  T3^8w  g   K�  ^p0Tp/K‡  	  T/f   \        R/4      hT/T,,          p/T P                  T/4       T P                  4       p4/ ;T n9        p5/ ;T n<        p6T4R99   d3   T PC                  ^4       T PE                  4       pT PE                  4       p7M T P                  4       pT P                  4       p7T4^ 8X  d�   \        T^,
          4       U	u. uF  q�P{                  4       NK  	  p8p	\        \}        R0T Pn                  \        T84      4      4       F2  p9T8T9,          p:T:T5T9&   T6P                  T:. 4      P�                  T94       K4  	  EMÂT4^8X  Edõ   T/T,           p;\[        T P                  4       R1,          4      p<T PC                  ^4       \        T<4       U=u. uF  p=T P                  4       NK  	  p>p=T PC                  ^4       \        T<4       U=u. uF  p=T P                  4       NK  	  p?p=\        T<4       U=u. uF  p=T PK                  4       NK  	  p@p=T P                  pA\        T<4       U=u. uF  p=T P                  4       NK  	  pBp=\        T<4       Fì  p1\        T?T1,          T>T1,          ^,           4       FÄ  p9XBT1,          ^ 8X  d   T9X@T1,          ,           R2,          p:MuT9T?T1,          ,
          ^,          XBT1,          ,           pXA^T1,          ,           T,           pTT;8¼  d   ^ p:M/T Pƒ                  T4      p:T:^ 8w  d   T:X@T1,          ,           R2,          p:T:T5T9&   T6P                  T:. 4      P�                  T94       KÆ  	  Kî  	  EMÆT4^8X  ds   T P                  4       pCT P                  4       pD\        TCTCTD,           4       F9  p:T P                  4       p9T:T5T9&   T6P                  T:. 4      P�                  T94       K;  	  EMMT4^
8X  ds   T PE                  4       pCT PE                  4       pD\        TCTCTD,           4       F9  p:T P                  4       p9T:T5T9&   T6P                  T:. 4      P�                  T94       K;  	  EMÔT4^8X  d¥   T PE                  4       p<\        T<4       Fƒ  p1T PE                  4       pET PE                  4       pFT PE                  4       TE,
          pG\        TETF^,           4       F2  p9T9XG,           p:T:T5T9&   T6P                  T:. 4      P�                  T94       K4  	  K…  	  EM)T4^8X  d•   T PE                  4       p<\        T<4       Fs  p1T PE                  4       pET PE                  4       pFT PE                  4       pH\        TETF^,           4       F)  p9XHT5T9&   T6P                  TH. 4      P�                  T94       K+  	  Ku  	  EMŽT4^8X  Edu   \        R04       U	u. uF  q�P                  4       NK  	  p8p	\…        T84      pI. pJ\        TI^,           4       Fƒ  p	T P                  4       pKT P                  4       pLT P                  4       p@T P                  4       XIT	,
          ^,          ,
          ^,
          ^,	          pBXJP�                  \‡        TKTLT@TB4      4       K…  	  YàP                  T,T/,           ,
          ,
          ^,	          pL\        TL4       U	u. uF  q�PK                  4       NK  	  pMp	R:pN\        R04       EFF  p9T8T9,          ^ 8X  Ed.   XNR:8w  d   ^ p:MÜT9XJ^ ,          Pˆ                  8  gh   T9XJ^ ,          Pˆ                  TJ^ ,          PŠ                  ,           8¼  g8   XJ^ ,          PŒ                  T9TJ^ ,          Pˆ                  ,
          ,           XL8¼  d   ^ p:MZXMXJ^ ,          PŒ                  T9TJ^ ,          Pˆ                  ,
          ,           ,          p:T:^ 8w  d   T:XJ^ ,          PŽ                  ,          p:T:^ 8w  d>   T:T Pn                  8  d*   T:T5T9&   T6P                  T:. 4      P�                  T94       EK:  EK=  EK@  T8T9,          pO\        XJTO,          PŠ                  4       FÑ  pPXJXO,          PŒ                  TP,           XL8¼  d   ^ p:MBXMXJXO,          PŒ                  XP,           ,          p:T:^ 8w  d   T:XJXO,          PŽ                  ,          p:T:^ 8w  g   Kp  T:T Pn                  8  g   Kƒ  T9^,          XPXJXO,          Pˆ                  ,           ,          p0T:T5T0&   T6P                  T:. 4      P�                  T04       KÓ  	  XNR:8X  g   EKD  T9pNEKI  	  M\‘        R3T4,          4      hT P                  R44       RpQ/ ;T n;        pR. T nI        \        T*4       Ft  p:T P                  4       T P                  4       pSpQT P’                  P�                  TQTS34       T! TQ4      pQT:^ 8X  d   XQT n:        T:T69   g   K_  T6T:,           F  pTXQXRTT&   K
  	  Kv  	  \        T*T+4       FN  p:T P                  4       pST P’                  P�                  XQTS34       T:T69   g   K9  T6T:,           F  pTXQXRTT&   K
  	  KP  	  R5T PP                  9  d   \        R64      hT P                  R54       . T nJ        T^ 8X  dK   \        T+^,           4       F3  p1T P”                  P�                  T P                  4       ^,          4       K5  	  M\T^8X  dD   \        T+^,           4       F,  p1T P”                  P�                  T PE                  4       4       K.  	  M\        R7T,          4      h^ T59   d   T5^ ,          T5^ &   XR^ ,          TR^ &   R# ^ T59   d   T5^ ,          T5^ &   XR^ ,          TR^ &   R# R#   TT n        i ; i   \        RT P6                  ,          4      h; iu up	i u up=i u up=i u up=i u up=i u up	i u up	i );a  
Extract typographic information from the loaded font file.

The following attributes will be set::

    name         PostScript font name
    flags        Font flags
    ascent       Typographic ascender in 1/1000ths of a point
    descent      Typographic descender in 1/1000ths of a point
    capHeight    Cap height in 1/1000ths of a point (0 if not available)
    bbox         Glyph bounding box [l,t,r,b] in 1/1000ths of a point
    _bbox        Glyph bounding box [l,t,r,b] in unitsPerEm
    unitsPerEm   Glyph units per em
    italicAngle  Italic angle in degrees ccw
    stemV        stem weight in 1/1000ths of a point (approximate)

If charInfo is true, the following will also be set::

    defaultWidth   default glyph width in 1/1000ths of a point
    charWidths     dictionary of character widths for every supported UCS character
                   code

This will only work if the font has a Unicode cmap (platform 3,
encoding 1, format 4 or platform 0 any encoding format 4).  Setting
charInfo to false avoids this requirement

r    zUnknown name table format (%d)Ni	  z0PostScript name is UTF-16BE string of odd lengthÚ	utf_16_beÚ	mac_romanÚ_RL_Ú_Ú_TTFÚ z
_RL_%s_TTFz#Could not find PostScript font nameó    ó   -s    [](){}<>/%zpsName=z contains invalid character ÚRegularr§   z head table not found ttf name=%sz"Unknown head table version %d.%04xiõ<_zInvalid head table magic %04xéè  c                 ó   € V # ©Nr   )rõ   s   &r$   r÷   Ú(TTFontFile.extractInfo.<locals>.<lambda>>  s   € ™ar#   c                 ó   <€ V S,          # r,  r   )rõ   Ú	_1000mults   &€r$   r÷   r-  A  s	   ø€ ˜a 	žkr#   TúOS/2i   iô  g     @P@Úpostz"Unknown post table version %d.%04xg      ð@iX  Úhheaz"Unknown hhea table version %d.%04xz*Unknown horizontal metric data format (%d)z!Number of horizontal metrics is 0Úmaxpz"Unknown maxp table version %d.%04xz/Font does not allow subsetting/embedding (%04X)FzUnknown glyph data format (%d)r:   z'could not find a suitable cmap encodingé   g       @éÿÿ  z#Unsupported cmap encoding format %dÚhmtxÚlocazmissing location tablez"Unknown location table format (%d))rÈ   é   é   é   )é   é   é
   é   rw   )Kr¾   r�   r   rú   Úkeysr3   r€   r¤   r†   r  r©   r   ÚautoGenerateTTFMissingTTFNamer}   rI   rJ   ÚsplitextÚbasenamer   ÚtimeÚ	__class__Ú_agfncÚ_agfnmrH   Úreplacer	   Úasciir    Ú
familyNameÚ	styleNameÚfullNameÚuniqueFontIDÚfontRevisionrº   rx   Ú
unitsPerEmÚ	_pdfScalerÕ   ÚmapÚbboxr*   ÚallowTTFSubsettingÚascentÚdescentÚ	capHeightrÉ   ÚstemVÚitalicAngleÚunderlinePositionÚunderlineThicknessÚFF_SYMBOLICÚflagsÚ	FF_ITALICÚFF_FORCEBOLDÚFF_FIXEDÚ	numGlyphsÚ
_full_fontÚcharToGlyphÚdefaultWidthÚ
charWidthsÚglyphToCharrÊ   ÚminÚ
setdefaultrL   rÙ   Úmaxr  Ú	firstCodeÚ
entryCountÚidRangeOffsetÚidDeltar  ÚhmetricsÚglyphPos)Vro   r  Úname_offsetÚformatÚ
numRecordsÚstring_data_offsetÚnamesÚKÚ	nameCountr8   Ú
platformIdÚ
encodingIdÚ
languageIdÚnameIdr�   r?   ÚNÚoposÚpsNamer_   ÚbfnÚcÚver_majÚver_minÚmagicrN  ÚscaleÚxMinÚyMinÚxMaxÚyMaxÚindexToLocFormatÚglyphDataFormatÚsubsettingAllowedr›   ÚusWeightClassÚfsTypeÚsTypoAscenderÚsTypoDescenderÚ
sCapHeightÚisFixedPitchÚmetricDataFormatÚnumberOfHMetricsr_  Úcmap_offsetÚcmapVersionÚcmapTableCountÚencoffsr  r)   ÚplatformÚencodingÚfmtra  rd  ÚlangÚTÚunicharÚglyphÚlimitÚsegCountr$  ÚendCountÚ
startCountrk  ÚidRangeOffset_startrj  ÚfirstÚcountÚstartr2   ÚincÚgidÚmaxSHKÚSHrh  ri  ÚglyphsÚlastÚkÚjÚawrc  ÚlsbÚcharr/  sV   &&                                                                                   @r$   r  ÚTTFontFile.extractInfoÂ  s  ø€ ð: —o‘o fÓ-ˆØ×!Ñ!Ó#ˆØ�QŒ;ÜÐ;¸fÕDÓEÐEØ×%Ñ%Ó'ˆ
Ø(×+;Ñ+;Ó+=Õ=ÐØ�4˜˜$˜q  a¨¨Q¨tÐ4ˆÜ�—‘“ÓˆÜ˜“Jˆ	Ü�z×"ˆAØ×)Ñ)Ó+ˆJØ×)Ñ)Ó+ˆJØ×)Ñ)Ó+ˆJØ×%Ñ%Ó'ˆFØ×%Ñ%Ó'ˆFØ×%Ñ%Ó'ˆFØŒ¡ØˆAØ˜QŒ :°¤?°zÀUÔ7JØ—y‘y�ð%Ø—I‘IÐ0Õ9Ô:Ø •z Q”Ü&Ð'YÓZÐZÜ$ T§^¡^Ð4FÕ4OÐQWÓ%XÐYdÓe�Aà $�D•IØ˜q” Z°1¤_¸Àq¼ô ! §¡Ð0BÕ0KÈVÓ!TÐU`Óa�ßŠq�U•] D×(Ø !�‘Ø˜Q•�	Ø˜a—<¡ñ5 #ð6 ��8ÒØ˜1•X‰FØ�1�XÒ!Ø˜1•X‰Fà�1�XÒ!Ø˜1•X‰FàˆF÷ ˆvÜ×6×6Ñ6Ø—]‘]�ßÜŸ'™'×*Ñ*¬2¯7©7×+;Ñ+;¸BÓ+?Ó@ÀÕC�CßÝ$¼¿	º	¾ÀTÇ^Á^×EZÔEZÐ%[Ó\�FØ—N‘N×)Ò)¨QÕ.Ö)à!Ÿ[™[Ÿ_™_¨R°Ó3�Fß!ßÜ%,¨\¸CÕ-?Ó%@™Få%,ÄÇ	Â	ÆÈTÏ^É^×MbÔMbÐ-cÓ%d˜FØ ŸN™N×1Ò1°QÕ6Õ1Ø*0˜Ÿ™ B™øäÐDÓEÐEà×!Ñ! &§.¡.°°tÓ"<Ó=ˆãˆAÜ˜‹{˜3Œ ! ~Ö"5ÝËFÔSXÐYZÕS[Ð\Ó]Ð]ñ ð ˆŒ	Ø �(×,Ð, fˆŒØ˜q�×.Ð. YˆŒØ˜a�×*Ð* FˆŒØ! !�H×.Ð.¨ˆÔð	KØ�O‰O˜FÔ#ð  ×+Ñ+Ó-¨t×/?Ñ/?Ó/A�ˆØ�aŒ<ÜÐ?À7ÈGÐBTÕTÓUÐUØ ×,Ñ,Ó.°×0@Ñ0@Ó0BÐBˆÔà�	‰	�!ŒØ—‘Ó!ˆØ�JÔÜÐ:¸UÕBÓCÐCØ�	‰	�!ŒØ'+×'7Ñ'7Ó'9Ð9ˆŒ˜*Ø�tÔÙ‰Eà˜zÕ)ˆIÜ)ˆEØˆŒð 	�	‰	�"ŒØ�‰Ó ˆØ�‰Ó ˆØ�‰Ó ˆØ�‰Ó ˆÜœ˜U T¨4°°tÐ$<Ó=Ó>ˆŒ	Ø�	‰	�#ŒØ×+Ñ+Ó-ÐØ×*Ñ*Ó,ˆð !ÐØ�T—Z‘ZÕØ�O‰O˜FÔ#Ø×&Ñ&Ó(ˆGØ�I‰I�aŒLØ ×,Ñ,Ó.ˆMØ�I‰I�aŒLØ×%Ñ%Ó'ˆFØ�vŒ~ &¨6§/¤/Ü$&§G¡G×$4Ñ$4°T·]±]Ó$CÌ9×KgÑKgÑ$gÐ!Ø�I‰I�bŒMØ ŸO™OÓ-ˆMØ!Ÿ_™_Ó.ˆNÙ Ó.ˆDŒKÙ  Ó0ˆDŒLà˜Œ{Ø—	‘	˜"”Ø!Ÿ_™_Ó.�
Ù!& zÓ!2�•à!%§¡�•ð  ˆMÙ ›+ˆDŒKÙ  ›;ˆDŒLØ!Ÿ[™[ˆDŒNð œ#˜}¨tÕ3¸Õ9Ó:Õ:ˆŒ
ð 	�‰˜ÔØ×+Ñ+Ó-¨t×/?Ñ/?Ó/A�ˆØ˜,Ô&ô
 Ð?À7ÈGÐBTÕTÓUÐUØŸ?™?Ó,¨t×/?Ñ/?Ó/AÀGÕ/KÕKˆÔØ!%§¡Ó!2ˆÔØ"&§/¡/Ó"3ˆÔØ—‘Ó(ˆä ˆŒ
ð ×Ñ˜aÔØŸ™¤iÕ/ˆDŒJØ˜CÔØŸ™¤lÕ2ˆDŒJßØŸ™¤hÕ.ˆDŒJð 	�‰˜ÔØ×+Ñ+Ó-¨t×/?Ñ/?Ó/A�ˆØ�aŒ<ÜÐ?À7ÈGÐBTÕTÓUÐUØ�	‰	�"ŒØ×+Ñ+Ó-ÐØ˜qÔ ÜÐGÐJZÕZÓ[Ð[Ø×+Ñ+Ó-ÐØ˜qÔ ÜÐ>Ó?Ð?ð 	�‰˜ÔØ×+Ñ+Ó-¨t×/?Ñ/?Ó/A�ˆØ�aŒ<ÜÐ?À7ÈGÐBTÕTÓUÐUØ%)×%5Ñ%5Ó%7Ð7ˆŒ˜ß Ø�~‰~˜dÔ"ÜÐPÐSYÕYÓZÐZà"&�•à#ˆDŒOçØ#ˆDÔØ $ˆDÔØ"ˆDŒOÙà˜aÔÜÐ;¸oÕMÓNÐNð —o‘o fÓ-ˆØ×&Ñ&Ó(ˆØ×)Ñ)Ó+ˆØ˜1Ô ¨a¤Ø*5°~˜KˆNØˆØˆÜ�~Ö&ˆAØ×'Ñ'Ó)ˆHØ×'Ñ'Ó)ˆHØ—_‘_Ó&ˆFØ˜Œ{Ø�Ø ’Ø˜1” ¨1¤°°a´Ø�Ø ’Ø˜1” ¨1¤Ø�Ø ’Ø˜1– ¨1¦Ø�Ø ’ñ 'ð  Š?ÜÐDÓEÐEØ�;ÕˆØ�	‰	�'ÔØ×ÑÓ ˆØ)+Ð+ˆÔ˜;Ø)+Ð+ˆÔ˜;Ø�,ÔØ�I‰I�aŒLØ—_‘_Ó&ˆFØ—?‘?Ó$‰Dà×%Ñ%Ó'ˆFØ×#Ñ#Ó%ˆDØ�Œ6Ü,1°&¸µ(¬OÓ<©O q—‘Ö"©OˆAÐ<Ü ¤ S¨¯©¼¸A»Ó!?Ö@�Ø˜'�
�Ø',�˜GÑ$Ø×&Ñ& u¨RÓ0×7Ñ7¸Ö@ó Að �!�VØ˜fÕ$ˆEÜ˜4×+Ñ+Ó-°Õ3Ó4ˆHØ�I‰I�aŒLÜ49¸(´OÓD±O¨q˜×(Ñ(Ö*±OˆHÐDØ�I‰I�aŒLÜ6;¸H´oÓF±o°˜$×*Ñ*Ö,±oˆJÐFÜ27¸´/ÓB±/¨Q�t—‘Ö(±/ˆGÐBØ"&§)¡)ÐÜ9>¸x¼ÓI¹°A˜T×-Ñ-Ö/¹ˆMÐIô ˜8–_�Ü$ Z°¥]°H¸QµKÀ!µOÖD�GØ$ QÕ'¨1Ô,Ø!(¨7°1­:Õ!5¸Õ ?™à")¨J°q­MÕ"9¸QÕ!>ÀÈqÕAQÕ!Q˜Ø!4°q¸1µuÕ!<¸vÕ!E˜Ø! Uœ?à$%™Eà$(§O¡O°FÓ$;˜EØ$¨œzØ).°¸µÕ);¸vÕ(E Ø+0�K Ñ(Ø×*Ñ*¨5°Ó4×;Ñ;¸GÖDó  Eó %ð  �!ŒVØ×$Ñ$Ó&ˆEØ×$Ñ$Ó&ˆEÜ˜u U¨5¥[Ö1�Ø×*Ñ*Ó,�Ø',�˜GÑ$Ø×&Ñ& u¨RÓ0×7Ñ7¸Ö@ó 2ð �"ŒWØ—O‘OÓ%ˆEØ—O‘OÓ%ˆEÜ˜u U¨5¥[Ö1�Ø×*Ñ*Ó,�Ø',�˜GÑ$Ø×&Ñ& u¨RÓ0×7Ñ7¸Ö@ó 2ð �"ŒWØ—‘Ó(ˆHÜ˜8–_�ØŸ™Ó)�Ø—o‘oÓ'�Ø—o‘oÓ'¨%Õ/�Ü$ U¨3¨q­5Ö1�GØ# c�M�EØ+0�K Ñ(Ø×*Ñ*¨5°Ó4×;Ñ;¸GÖDó  2ó	 %ð �"ŒWØ—‘Ó(ˆHÜ˜8–_�ØŸ™Ó)�Ø—o‘oÓ'�Ø—o‘oÓ'�Ü$ U¨3¨q­5Ö1�GØ+.�K Ñ(Ø×*Ñ*¨3¨rÓ2×9Ñ9¸'ÖBó  2ó	 %ð �!�VÜ-2°3¬ZÓ8©Z¨×!Ñ!Ö#©ZˆAÐ8Ü˜“VˆFØˆBÜ˜6 !�8–_�Ø ×,Ñ,Ó.�	Ø!×-Ñ-Ó/�
Ø×*Ñ*Ó,�Ø!%×!1Ñ!1Ó!3°V¸AµX¸qµLÕ!@ÀÕ!BÀQÕ F�Ø—	‘	Ô+¨I°jÀÈÓWÖXñ %ð !§)¡)¨[¸Õ-@Õ"AÕBÀQÕFˆJÜ16°zÔ1BÓCÑ1B¨A—o‘oÖ'Ñ1BˆFÐCØˆDÜ  Ÿ:�Ø�W•:˜q•=à˜R”xØ !™Ø! " Q¥%§/¡/Ô1°W¸bÀ½e¿o¹oÈbÐQRÍe×N^ÑN^Õ>^Ô5^Ø˜q�E×/Ñ/°¸¸A½¿¹Õ1HÕIÈ:ÔUØ !™à & r¨!¥u×':Ñ':¸GÀBÀqÅEÇOÁOÕ<SÕ'TÕ U˜Ø  !œ8Ø! R¨¥U§]¡]Õ2˜Eà˜a”x E¨$¯.©.Ô$8Ø/4˜ GÑ,Ø#×.Ñ.¨u°RÓ8×?Ñ?À×Hò %9’xð ˜'�
�AÜ" 2 a¥5×#3Ñ#3Ö4˜Ø˜a�5×.Ñ.¨qÕ0°*Ô<Ø$%™Eà$*¨2¨a­5×+>Ñ+>¸qÕ+@Õ$A˜EØ$ qœyØ %¨¨A­¯©Õ 6 Ø  !ž8¨¨d¯n©nÖ(<Ø#*¨A¥:°°"°Qµ%·/±/Õ0AÕ"B˜CØ/4˜K¨Ñ,Ø'×2Ñ2°5¸Ó<×CÑCÀCÖHñ 5ð ˜R—xØ&›ò= &ô@ ÐBÀSÕHÓIÐIð 	�‰˜ÔØˆØ')Ð)ˆŒ˜*ØˆŒÜÐ+Ö,ˆEð ×&Ñ&Ó(¨$×*:Ñ*:Ó*<�ˆBØ�M‰M× Ñ  " c Ô+Ù�r“ˆBØ˜ŒzØ$&�Ô!Ø˜Ö#Ø'¨×.Ð.�DØ')�J˜tÓ$ó /ñ -ô Ð+¨YÖ7ˆEð ×"Ñ"Ó$ˆCØ�M‰M× Ñ  " c Ô+Ø˜Ö#Ø'¨×.Ð.�DØ')�J˜tÓ$ó /ñ 8ð ˜Ÿ™Ô#¬8Ð4LÓ+MÐ%MØ�‰˜ÔØˆŒØ˜qÔ Ü˜9 q�=Ö)�Ø—‘×$Ñ$ T×%5Ñ%5Ó%7¸1Õ%<Ö=ò *à Ô"Ü˜9 q�=Ö)�Ø—‘×$Ñ$ T§_¡_Ó%6Ö7ò *ô Ð?ÐBRÕRÓSÐSØ�;ÔØ +¨DÕ 1ˆK˜ÑØ)¨$Õ/ˆJ�tÓØ�[Ô Ø +¨DÕ 1ˆK˜ÑØ)¨$Õ/ˆJ�tÓñ !øðu !%�D•Iûðn	KÜÐ=ÀÇ	Á	ÕIÓJÐJüòN =ùò EùâFùÚBùâIùòj 9ùò DsR   Ä-AAZÒAZ ðAZ0ó'AZ5ô AZ:õAZ?õ<A[ÁC!A[	ÁGA[ÁZ	AZÁZAZ-c                ó‚  € \        4       p^ .p^ ^ /p/ pV FW  pW`P                  9   d   V P                  V,          pM^ pWt9  d   \        V4      WG&   VP                  V4       WG,          WV&   KY  	  V P	                  R4      ^ ,          p^ p	V	\        V4      8  Ed›   W9,          pV P
                  V,          p
V P
                  V^,           ,          V
,
          pV	^,          p	V'       g   K`  V P                  WŠ,           4       V P                  4       pV^ 8  g   K�  V P                  ^4       \        pV\        ,          '       g   K¼  V P                  4       pV P                  4       pWä9  d   \        V4      WN&   VP                  V4       V\        ,          '       d   V P                  ^4       MV P                  ^4       V\        ,          '       d   V P                  ^4       Kµ  V\        ,          '       d   V P                  ^4       KÛ  V\        ,          '       g   Kð  V P                  ^4       EK  R F$  p VP                  WðP!                  V4      4       K&  	  RV P!                  R4      R,          ,           R,           pVP                  RV4       \        V4      p. p\%        V4       FS  p	V P&                  W9,          ,          w  ppVP                  \)        V4      4       VP                  \)        V4      4       KU  	  \        V4      ^,
          p	V	'       d(   VV	,          VV	^,
          ,          8X  d   V	^,          p	K/  V	^,          p	V	^,	          pVRV	 VV	^,           R^1,          ,           p\+        R\        V4      ,          .V,           !  pVP                  RV4       V P!                  R	4      p\-        V^"V4      pVP                  R	V4       V P!                  R
4      p\-        V^V4      pVP                  R
V4       \        V4      p^
V^,          ,           p^ ^^^ ^ ^^V^ ^ V.\/        \1        VP2                  V4      4      ,           p\+        R\        V4      ,          .V,           !  pVP                  RV4       V P!                  R4      p. p. p^ p\%        V4       EFá  p	VP                  V4       W9,          pV P
                  V,          p
V P
                  V^,           ,          V
,
          pVWªV,            pV^8”  Ed"   \5        RVR,          4      ^ ,          ^ 8  Ed   ^
p \        pV\        ,          '       dç   \5        RVV V ^,            4      ^ ,          p\5        RVV ^,           V ^,            4      ^ ,          p\-        VV ^,           WN,          4      pV ^,           p V\        ,          '       d   V ^,           p M	V ^,           p V\        ,          '       d   V ^,           p K»  V\        ,          '       d   V ^,           p KÙ  V\        ,          '       g   Kî  V ^,           p Kù  VP                  V4       VV,           pV^,          ^ 8w  g   EK°  ^V^,          ,
          p!VP                  RV!,          4       VV!,           pEKä  	  VP                  V4       VP                  RRP7                  V4      4       . p"V^,           ^,	          R8”  d?   ^p#V F  p$V"P                  V$4       K  	  \+        R\        V"4      ,          .V",           !  p"MD^ p#V F  p$V"P                  V$^,	          4       K  	  \+        R\        V"4      ,          .V",           !  p"VP                  RV"4       V P!                  R4      p%\-        V%^2V#4      p%VP                  RV%4       VP9                  4       #   \"         d     EK…  i ; i)z"Create a subset of a TrueType fontÚglyfs      r1  :r:  é   Nó    Nz>%dHr6  r2  r3  r:   rÓ   :Nr8  NrC   r#   r5  z>%dLr7  r§   )r    r0  zcvt ÚfpgmÚpreps                   )rê   ra  r3   rL   r²   rm  r†   rÕ   rº   ÚGF_MORE_COMPONENTSr�   ÚGF_ARG_1_AND_2_ARE_WORDSÚGF_WE_HAVE_A_SCALEÚGF_WE_HAVE_AN_X_AND_Y_SCALEÚGF_WE_HAVE_A_TWO_BY_TWOrð   rà   ÚKeyErrorr€   rl  rÉ   r   rD   rú   rP  rH   r   r5   r  )&ro   r7   ÚoutputÚglyphMapÚglyphSetÚcodeToGlyphÚcodeÚoriginalGlyphIdxr£  r)   rm  ÚglyphLenÚnumberOfContoursr[  ÚglyphIdxr‹   r1  r_  r6  r¬  r­  r�  r2  r3  ri  r�   r:   Ú	glyphDataÚoffsetsr±  rˆ   rï   Úpos_in_glyphÚpaddingr7  r†  r?   r§   s&   &&                                    r$   Ú
makeSubsetÚTTFontFile.makeSubsety  s†  € ä“ˆð �3ˆØ�a�5ˆØˆÛˆDØ×'Ñ'Ô'Ø#'×#3Ñ#3°DÕ#9Ñ à#$Ð ØÔ/Ü-0°«]�Ñ*Ø—‘Ð 0Ô1Ø (Õ :ˆKÓñ ð ×"Ñ" 6Ó*¨1Õ-ˆØˆØ”#�h“-ÕØ'�{ÐØ—}‘}Ð%5Õ6ˆHØ—}‘}Ð%5¸Õ%9Õ:¸XÕEˆHØ��FˆAß™XØ�I‰I�eÕ&Ô'Ø#Ÿ™Ó0ÐØ !Ö#à—	‘	˜!”Ü*�ØÔ0×0Ö0Ø ×,Ñ,Ó.�EØ#×/Ñ/Ó1�HØÔ/Ü-0°«]˜Ñ*Ø Ÿ™¨Ô1ØÔ7×7Ô7ØŸ	™	 !�àŸ	™	 !œØÔ1×1Ô1ØŸ	™	 !žØÔ!<×<Ô<ØŸ	™	 !žØÔ!8×8Ö8ØŸ	™	 !Ÿó <ˆCðØ—
‘
˜3§¡¨sÓ 3Ö4ñ <ð # T§^¡^°FÓ%;¸DÕ%AÕAÀLÕPˆØ�
‰
�6˜4Ô ä˜“Mˆ	ð ˆÜ�yÖ!ˆAØ—m‘m H¥KÕ0‰GˆB�Ø�K‰Kœ˜B›Ô Ø�K‰Kœ˜C›Ö!ñ "ô �‹I�a�Kˆß�D˜•G˜T ! A¥#�YÔ&Ø��FŠAà	ˆQ�ˆØ˜a�4ÐØ�B�Qˆx˜$˜q �s˜v A˜v�,Õ&ˆä�v¤ D£	Õ)Ð*¨TÕ1Ñ3ˆØ�
‰
�6˜4Ô ð �~‰~˜fÓ%ˆÜ˜4 Ð%5Ó6ˆØ�
‰
�6˜4Ô ð �~‰~˜fÓ%ˆÜ˜4  IÓ.ˆØ�
‰
�6˜4Ô ô ˜“[ˆ
Ø�j 1•nÕ$ˆØ�1Ø�1�a˜Ø�6˜1ØØð	ô
 ”C˜Ÿ™¨Ó0Ó1õ2ˆô �v¤ D£	Õ)Ð*¨TÕ1Ñ3ˆØ�
‰
�6˜4Ô ð —N‘N 6Ó*ˆ	ØˆØˆØˆÜ�y×!ˆAØ�N‰N˜3ÔØ'�{ÐØ—}‘}Ð%5Õ6ˆHØ—}‘}Ð%5¸Õ%9Õ:¸XÕEˆHØ˜X¨xÕ&7Ð8ˆDà˜!�|¤ t¨T°"­XÓ 6°qÕ 9¸AÕ =à!�Ü*�ØÔ0×0Ô0Ü" 4¨¨l¸<È½>Ð)JÓKÈAÕN�EÜ% d¨D°¸aµÀÈQÅÐ,OÓPÐQRÕS�HÜ& t¨\¸AÕ-=¸xÕ?QÓR�DØ#/°!Õ#3�LØÔ7×7Ô7Ø'3°aÕ'7™à'3°aÕ'7˜ØÔ1×1Ô1Ø'3°aÕ'7šØÔ!<×<Ô<Ø'3°aÕ'7šØÔ!8×8Ö8Ø'3°aÕ'7šØ�K‰K˜ÔØ˜•.ˆCØ�Q�w˜!�|Ø˜c A�g�+�Ø—‘˜E G�OÔ,Ø˜G•m“ñ? "ð@ 	�‰�sÔØ�
‰
�6˜3Ÿ8™8 D›>Ô*ð ˆØ�!�G˜�>˜FÔ"Ø ÐÛ!�Ø—‘˜FÖ#ñ "ä˜6¤C¨£IÕ-Ð.°Õ5Ñ7‰Dà ÐÛ!�Ø—‘˜F a�KÖ(ñ "ä˜6¤C¨£IÕ-Ð.°Õ5Ñ7ˆDØ�
‰
�6˜4Ô ð �~‰~˜fÓ%ˆÜ˜4 Ð%5Ó6ˆØ�
‰
�6˜4Ô à× Ñ Ó"Ð"øôc ô ó ð	ús   È< ^.Þ.^>Þ=^>)r`  rO  r¤   rS  rQ  rU  ra  rc  rb  rT  rI  r[  rM  rK  rm  rd  rl  rW  r    r_  r~   rV  rJ  rX  rY  rL  rN  N)rÈ   rå   rå   rÇ   )r   r   r   r    r!   rE  rF  rs   r  rÉ  r"   ræ   rç   s   @r$   r  r  ¡  s*   ø‡ € Ù#Ø€FØ€Fô'ô8s0÷nl#ð l#r#   r  c                   ó:   a € ] tR tRt o RtRR ltR tR tRtV t	R# )	Ú
TTFontFacei7  z�TrueType typeface.

Conceptually similar to a single byte typeface, but the glyphs are
identified by UCS character codes instead of glyph names.c                ót   € \         P                  P                  V R4       \        P                  WW#R7       R# )z$Loads a TrueType font from filename.Nr  )r   ÚTypeFacers   r  )ro   r}   rg   rq   s   &&&&r$   rs   ÚTTFontFace.__init__=  s+   € ä×Ñ×$Ñ$ T¨4Ô0Ü×Ñ˜D°XÐÖYr#   c                óL   € V P                   P                  WP                  4      # )z'Returns the width of character U+<code>)rc  rH   rb  )ro   rÀ  s   &&r$   ÚgetCharWidthÚTTFontFace.getCharWidthB  s   € à�‰×"Ñ" 4×):Ñ):Ó;Ð;r#   c                óæ  € \         P                  ! 4       pV P                  V4      Vn        \	        VP                  4      VP
                  R&   VP                  '       d   \         P                  .Vn        VP                  VRV P                  : RV: R24      pV P                  \        ( ,          pV\        ,          p\         P                  ! RRRV P                  RV P                   R	V P"                  R
VR\         P$                  ! V P&                  4      R\         P(                  ! V4      RV P*                  RV P,                  RVRV P.                  /4      pVP                  VRV,           4      # )zxGenerate a TrueType font subset and add it to the PDF document.
Returns a PDFReference to the new FontDescriptor object.ÚLength1z	fontFile:Ú(r¨   ÚTypez/FontDescriptorÚAscentÚ	CapHeightÚDescentÚFlagsÚFontBBoxÚFontNameÚItalicAngleÚStemVÚ	FontFile2ÚMissingWidthzfontDescriptor:)r   Ú	PDFStreamrÉ  Úcontentr3   Ú
dictionaryÚcompressionÚPDFZCompressÚfiltersÚ	Referencer}   r[  ÚFF_NONSYMBOLICrZ  ÚPDFDictionaryrS  rU  rT  ÚPDFArrayrQ  ÚPDFNamerW  rV  rb  )ro   Údocr6   r7   ÚfontFileÚfontFileRefr[  ÚfontDescriptors   &&&&    r$   ÚaddSubsetObjectsÚTTFontFace.addSubsetObjectsF  s%  € ô ×#Ò#Ó%ˆØŸ?™?¨6Ó2ˆÔÜ),¨X×-=Ñ-=Ó)>ˆ×Ñ˜IÑ&Ø�?�?ˆ?Ü &× 3Ñ 3Ð4ˆHÔØ—m‘m¡HÀ4Ç=Ä=ÓRZÐ.[Ó\ˆà—
‘
œ~Ð-Õ-ˆØœÕ#ˆä×-Ò-ØÐ%Ø�d—k‘kØ˜Ÿ™Ø�t—|‘|Ø�UØœŸš¨¯	©	Ó2ØœŸš xÓ0Ø˜4×+Ñ+Ø�T—Z‘ZØ˜Ø˜D×-Ñ-ð/ó ˆð �}‰}˜^Ð->ÀÕ-IÓJÐJr#   r   Nrä   )
r   r   r   r    r!   rs   rÑ  rð  r"   ræ   rç   s   @r$   rÌ  rÌ  7  s"   ø‡ € ñAô
Zò
<÷Kð Kr#   rÌ  c                   ó*   a € ] tR tRt o RtR tRtV tR# )Ú
TTEncodingic  zãEncoding for TrueType fonts (always UTF-8).

TTEncoding does not directly participate in PDF object creation, since
we need a number of different 8-bit encodings for every generated font
subset.  TTFont itself cares about that.c                ó   € R V n         R# )zUTF-8N©r    rÂ   s   &r$   rs   ÚTTEncoding.__init__j  s	   € ØˆŽ	r#   rõ  N)r   r   r   r    r!   rs   r"   ræ   rç   s   @r$   ró  ró  c  s   ø‡ € ñ0÷ð r#   ró  c                   óÔ   a € ] tR tRt o Rt ! R R4      t^t^tRR ltRR lt	RR lt
RR	 ltR
 tR t]R 4       tRR ltR tR tR t]R 4       t]P*                  R 4       tRtV tR# )ÚTTFontim  aw  Represents a TrueType font.

Its encoding is always UTF-8.

Note: you cannot use the same TTFont object for different documents
at the same time.

Example of usage:

    font = ttfonts.TTFont('PostScriptFontName', '/path/to/font.ttf')
    pdfmetrics.registerFont(font)

    canvas.setFont('PostScriptFontName', size)
    canvas.drawString(x, y, "Some text encoded in UTF-8")
c                   ó.   a € ] tR tRt o RtRR ltRtV tR# )ÚTTFont.Statei}  ÚFNc                ó&  € / ;q0n         ^ V n        RV n        ^ V n        \	        VRR4      p\	        VRR4      '       d˜   \        VP                  P                  4       4      p^ V9   d   VP                  ^ 4       \        R4       F   pWe9   g   K  WcV&   VP                  V4       K"  	  V F  pWcV&   K	  	  V Uu. uF  qfNK  	  up.V n
        RV n        R# Vf   \        P                  pV'       ds   \        \        ^ ^€4      4      p\	        VRR4      pV'       d   V F  pWh9   g   K  WcV&   K  	  MV F  pWcV&   K	  	  ^ V^ &   ^ ^ .,          V,           .V n
        ^V n        R# ^ .^ .^ ,          ,           .V n
        ^ V^ &   ^V n        ^ V^ &   R# u upi )rå   NÚfacer`  r4  Tra  )ÚassignmentsÚnextCodeÚinternalNameÚfrozenr¢   Úsetra  r?  Úremover€   Úsubsetsr   ÚttfAsciiReadablerú   )	ro   ÚasciiReadableÚttfÚArý  ÚCr)   Úsubset0ra  s	   &&&      r$   rs   ÚTTFont.State.__init__  s~  € Ø#%Ð%ˆAÔ ØˆDŒMØ $ˆDÔØˆDŒKÜ˜3˜v dÓ+ˆDÜ�t˜L¨×.Ò.Ü˜×(Ñ(×-Ñ-Ó/Ó0�Ø˜1”9˜aŸh™h tœnÜ˜sž�AØ–vØ ˜!™ØŸ™ žñ $ó �AØ�a“Dñ á,-£©A q¢©A¡Ð/�”Ø"�”ÙàÒ$Ü )× :Ñ :�çô
 œu R¨›}Ó-�Ü% d¨=¸Ó>�ßÛ$˜ØÖ+Ø#$˜a›Dò %ó %˜Ø ˜!›ñ %à��!‘Ø " A 3¥¨Õ 0Ð1�”Ø !�–ð "#  R D¨¥G¥˜}�”Ø��!‘Ø !�”Ø��"“ùò; !/s   Â9
F)rþ  r  r   rÿ  r  ©NN)r   r   r   r    Ú
namePrefixrs   r"   ræ   rç   s   @r$   ÚStaterú  }  s   ø‡ € Øˆ
÷,	ò ,	r#   r  Nc                ó\  a€ SV n         \        W#VR7      V n        \        4       V n        ^ RIHp V! 4       V n        Vf   \        P                  pWPn
        T;'       dH    \        ;QJ d#    V3R l\         4       F  '       g   K   RM	  RM! V3R l\         4       4      '       * V n        R# )z�Loads a TrueType font from filename.

If validate is set to a false values, skips checksum validation.  This
can save time, especially if the font is large.
r  )ÚWeakKeyDictionaryNc              3   ó<   <"  € T F  p\        SV4      x € K  	  R # 5ir,  r   )Ú.0r$  r    s   & €r$   Ú	<genexpr>Ú"TTFont.__init__.<locals>.<genexpr>¾  s   øé € Ð-XÑGWÀ!¬g°d¸1¯o¨oÓGWùs   ƒTF)ÚfontNamerÌ  rý  ró  r–  Úweakrefr  Ústater   r  Ú_asciiReadableÚanyr   Úshapable)ro   r    r}   rg   rq   r  r  r  s   &f&&&&& r$   rs   ÚTTFont.__init__°  sv   ø€ ð ˆŒÜ˜xÈÔVˆŒ	Ü"›ˆŒÝ-Ù&Ó(ˆŒ
ØÒ Ü%×6Ñ6ˆMØ+ÔØ ×YÐY¯«Ô-XÕGWÓ-X¯¯ªÔ-XÕGWÓ-XÓ)YÔ%YˆŽr#   c                ó   € \        WW#4      # r,  )r   )ro   ÚtextÚsizer–  s   &&&&r$   ÚstringWidthÚTTFont.stringWidthÀ  s   € Ü% d°Ó>Ð>r#   c                óÌ   € Vf   V P                   p V P                  V,          pV#   \         d2    \        P	                  Y 4      ;q@P                  T&   Te   Y4n         T# i ; i)zIconvenience function for those wishing to roll their own state properties)r  r  r»  rø  r  r  )ro   rì  r  r  r  s   &&&& r$   Ú_assignStateÚTTFont._assignStateÃ  sh   € àÒ Ø ×/Ñ/ˆMð	.Ø—J‘J˜s•OˆEð
 ˆøô	 ô 	.Ü&,§l¡l°=Ó&FÐFˆE—J‘J˜s‘OØÒ%Ø#-Ô øØˆð		.ús   ’' §8A#Á"A#c                ó~  € V P                   pV P                  V,          pV'       d   VP
                  ^ 8  d   ^MRpRp. p. p	\        V4      '       g   VP                  R4      pV P                  P                  p
VP                  pVP                  p\        \        V4       EF¼  pV^ 8X  d   ^ pWÛ9   d   W½,          pEMJWÚ9  d   ^ pEM@VP                  '       d*   \        P                   ! RV P"                  V3,          4      hVP
                  pV^ÿ,          ^ 8X  dK   V^ 8w  d   WÎ^,	          ,          P%                  ^ 4       V;P
                  ^,          un        VP
                  pV^ 8”  df   V^ÿ,          '       g8   VP%                  ^ .4       V;P
                  ^,          un        VP
                  pWÎ^,	          ,          P%                  V4       MWæ8X  d   ^Vn        WÜ^ ,          V&   V;P
                  ^,          un        WëV&   V^,	          V8w  d0   V'       d   V	P%                  V\'        V4      34       V^,	          p. pVP%                  V^ÿ,          4       EK¿  	  V'       d   V	P%                  V\'        V4      34       V	#   \         d(    \        P	                  Y@4      ;qPP                  T&    EL›i ; i)a  Splits text into a number of chunks, each of which belongs to a
single subset.  Returns a list of tuples (subset, string).  Use subset
numbers with getSubsetInternalName.  Doc is needed for distinguishing
subsets when building different documents at the same time.úutf-8z:Font %s is already frozen, cannot add new character U+%04Xi ÿÿÿrw   )r  r  r»  rø  r  rÿ  r   r	  rý  ra  rþ  r  rP  Úordr  r   ÚPDFErrorr  rL   r'   )ro   r  rì  r–  r  r  Ú_31skipÚcurSetÚcurÚresultsra  rþ  r  rÀ  r)   s   &&&&           r$   ÚsplitStringÚTTFont.splitStringÏ  s  € ð
 ×+Ñ+ˆØ—Z‘Z •_ˆUç%¨%¯.©.¸Ô*;‘"ÀˆØˆØˆØˆÜ˜�ŠØ—;‘;˜wÓ'ˆDØ—i‘i×+Ñ+ˆØ×'Ñ'ˆØ—-‘-ˆäœ˜D—MˆDØ�TŒz "˜4ØÔ"ØÕ%’ØÔ(Ø’à—<—<�<Ü Ÿ/š/Ð*fÐjn×jwÑjwÐy}Ði~Õ*~ÓÐØ—N‘N�Ø�T•6˜2”:à˜"”u˜g¨1¥f�o×4Ñ4°RÔ8Ø—N’N aÕ'•NØŸ™�AØ�R”4Ø˜TŸ6œ6ØŸ™¨ sÔ+ØŸš¨!Õ+�Ø!ŸN™N˜Ø �F•O×*Ñ*¨4Õ0à”zð *-˜œØ$(˜A•J˜q‘MØ—’ !Õ#•Ø$%˜DÑ!à�Q•˜6Ô!ßØ—N‘N F¬5°«:Ð#6Ô7Ø˜q�&�Ø�Ø�J‰J�q˜4•x× ñG "÷H Ø�N‰N˜F¤5¨£:Ð.Ô/Øˆøôc ÔS´6·<±<ÀÓ3SÐS˜§¡¨C¤ÐSús   �J
 Ê
.J<Ê;J<c                óh  € V P                   V,          pV^ 8  g   V\        VP                  4      8¼  d   \        RWP                  3,          4      hVP                  f�   VP                  \        \        VP                  4      ^,           4      ,           Vn	        RVP                  ,           VP                  V P                  &   VP                  P                  V 4       RVP                  V3,          #   \         d2    \        P                  T P                  4      ;q0P                   T&    ELi ; i)zšReturns the name of a PDF Font object corresponding to a given
subset of this dynamic font.  Use this function instead of
PDFDocument.getInternalFontName.z#Subset %d does not exist in font %sÚ/z/%s+%d)r  r»  rø  r  r  r3   r  r…   r  r   r  ÚreprÚfontMappingÚdelayedFontsrL   )ro   r7   rì  r  s   &&& r$   ÚgetSubsetInternalNameÚTTFont.getSubsetInternalName	  sä   € ð —Z‘Z •_ˆUà�AŒ:˜¤3 u§}¡}Ó#5Ô5ÜÐBÀfÏmÉmÐE\Õ\Ó]Ð]Ø×ÑÒ%Ø!&×!1Ñ!1´4¼¸C¿O¹OÓ8LÈqÕ8PÓ3QÕ!QˆEÔØ-0°5×3EÑ3EÕ-EˆC�O‰O˜DŸM™MÑ*Ø×Ñ×#Ñ# DÔ)Ø˜5×-Ñ-¨vÐ6Õ6Ð6øô ÔT´6·<±<À×@SÑ@SÓ3TÐT˜§¡¨C¤ÐTús   �C5 Ã58D1Ä0D1c                ó¢  € V P                   V,          p^Vn        \        VP                  4       EFÎ  w  r4V P                  W14      R,          pRP                  \        V4      RV P                  P                  V P                  P                  34      P                  R4      p\        P                   ! 4       pRV P"                  V3,          Vn        WWn        Wgn        ^ Vn        \-        V4      ^,
          Vn        \1        \3        V P                  P4                  V4      4      p\        P6                  ! V4      Vn        \        P:                  ! 4       p	\=        Wd4      V	n        VP@                  '       d   \        PB                  .V	n"        VPG                  V	RV,           4      Vn$        V P                  PK                  WV4      Vn&        VPG                  Wu4      p
VPN                  R,          PP                  pW{V&   EKÑ  	  V P                   V R#   \         d2    \        P                  T P                  4      ;q P                   T&    EL9i ; i)	a2  Makes  one or more PDF objects to be added to the document.  The
caller supplies the internal name to be used (typically F1, F2, ... in
sequence).

This method creates a number of Font and FontDescriptor objects.  Every
FontDescriptor is a (no more than) 256 character subset of the original
TrueType font.ºrÈ   NNr#   ó   +r   zFont %s subset %dztoUnicodeCMap:Ú
BasicFontsN))r  r»  rø  r  r  r  r4   r  r3  r5   r+   rý  r    rn   r	  r   ÚPDFTrueTypeFontr  Ú__Comment__ÚNameÚBaseFontÚ	FirstCharr3   ÚLastCharrú   rP  rÑ  rê  ÚWidthsrá  r;   râ  rä  rå  ræ  rç  Ú	ToUnicoderð  ÚFontDescriptorÚ
idToObjectr  )ro   rì  r  r)   r7   r   ÚbaseFontNameÚpdfFontÚwidthsÚ
cmapStreamÚrefÚfontDicts   &&          r$   Ú
addObjectsÚTTFont.addObjects  s¹  € ð —Z‘Z •_ˆUàˆŒÜ! %§-¡-×0‰HˆAØ×5Ñ5°aÓ=¸bÕAˆLØŸH™H¤g¨a£j°°d·i±i·n±nÀTÇYÁY×E[ÑE[Ð%\Ó]×eÑeÐfnÓoˆLä×,Ò,Ó.ˆGØ"5¸¿¹ÈÐ8JÕ"JˆGÔØ'ŒLØ+Ôà !ˆGÔÜ" 6›{¨Q�ˆGÔäœ#˜dŸi™i×4Ñ4°fÓ=Ó>ˆFÜ#Ÿ_š_¨VÓ4ˆGŒNä×)Ò)Ó+ˆJÜ!2°<Ó!HˆJÔØ��ˆÜ&,×&9Ñ&9Ð%:�
Ô"Ø #§¡¨jÐ:JÈ\Õ:YÓ ZˆGÔà%)§Y¡Y×%?Ñ%?ÀÐSYÓ%ZˆGÔ"ð —-‘- Ó6ˆCØ—~‘~ lÕ3×8Ñ8ˆHØ%,�\Ô"ñ5 1ð6 �J‰J�sŠOøô; ÔT´6·<±<À×@SÑ@SÓ3TÐT˜§¡¨C¤ÐTús   �H È8IÉIc                ó   € \        V RR4      pV'       gi   \        f   \        R4      h\        P                  ! V P                  P
                  4      p\        P                  ! V4      ;qn        ?/ V n        RV n	        V# )zreturn uharbuzz.FaceÚ
__hbFace__NzNCannot import uharfbuzz so shaping is not allowed
please pip install uharfbuzzi à  )
r¢   Ú	uharfbuzzr  ÚBlobrý  rž   ÚFacerL  Ú_TTFont__hbUnisÚ_TTFont__hbPrivate)ro   rý  Úblobs   &  r$   ÚhbFaceÚTTFont.hbFace?  si   € ô �t˜L¨Ó.ˆßÜÒ Ü Ð!rÓsÐsÜ—>’> $§)¡)×"5Ñ"5Ó6ˆDÜ%.§^¢^°DÓ%9Ð9ˆD”?ØØˆDŒMØ%ˆDÔØˆr#   c                ót   € \         P                  ! V P                  4      pWn        V P                  V n        V# )zreturn uharfbuzz Font)rM  ÚFontrS  ÚptemÚ_TTFont__addPrivateÚhbAddPrivate)ro   ÚfontSizeÚfonts   && r$   ÚhbFontÚTTFont.hbFontM  s,   € ä�~Š~˜dŸk™kÓ*ˆØŒ	Ø ×-Ñ-ˆÔØˆr#   c                ó€  € V P                   P                  VR 4      pV'       gš   V P                  pV P                  pWEP                  9   d   V^,          pK  VR8:  g   Q hV;V n        V P                   V&   W%P                  V&   VP
                  P                  V. 4      P                  V4       W5P                  V&   V# )Ni ø  )	rP  rH   rý  rQ  ra  rd  rf  rL   rc  )ro   r    r¥  ÚadvanceÚucharrý  s   &&&&  r$   Ú__addPrivateÚTTFont.__addPrivateT  s¦   € Ø—‘×!Ñ! $ tÓ,ˆßØ—9‘9ˆDØ×$Ñ$ˆEØ×+Ñ+Ô+Ø˜•
’Ø˜&”=Ð �=Ø5:Ð:ˆDÔ˜tŸ}™}¨TÑ2Ø&)×Ñ˜UÑ#Ø×Ñ×'Ñ'¨¨BÓ/×6Ñ6°uÔ=Ø%,�O‰O˜EÑ"Øˆr#   c                ó8   € V P                   P                  V4      # r,  )rý  rO  ©ro   r9   s   &&r$   ÚpdfScaleÚTTFont.pdfScaleb  s   € Ø�y‰y×"Ñ" 1Ó%Ð%r#   c                ó  € V P                   \        P                  9   d   \        P                  V P                    V P                  P                  \        P
                  9   d(   \        P
                  V P                  P                   R # R # r,  )r  r   Ú_fontsrý  r    Ú_dynFaceNamesrÂ   s   &r$   Ú
unregisterÚTTFont.unregistere  sX   € Ø�=‰=œJ×-Ñ-Ô-´:×3DÑ3DÀTÇ]Á]Ð3SØ�9‰9�>‰>œZ×5Ñ5Ô5¼:×;SÑ;SÐTX×T]ÑT]×TbÑTbÒ;cÑ5r#   c                óH   € \        V P                  ;'       d    \        4      # r,  )ÚboolÚ	_shapablerM  rÂ   s   &r$   r  ÚTTFont.shapablei  s   € ä�D—N‘N×0Ð0¤yÓ1Ð1r#   c                óB   € \        T;'       d    \        4      V n        R # r,  )rm  rM  rn  rd  s   &&r$   r  ro  m  s   € ä˜aŸo˜o¤IÓ.ˆŽr#   )rL  Ú__hbPrivateÚ__hbUnisr  rn  r–  rý  r  rY  r  r  )rå   rå   NTr  r  )r%  )r=  )r   r   r   r    r!   r  Ú
_multiByteÚ_dynamicFontrs   r  r"  r,  r3  rI  ÚpropertyrS  r\  rX  re  rj  r  Úsetterr"   ræ   rç   s   @r$   rø  rø  m  s—   ø‡ € ñ÷.ñ .ð` €JØ€LôZô ?ô
ô8òt7ò&ðP ñó ðôòò&òdð ñ2ó ð2ð ‡_�_ñ/ó ö/r#   rø  c                   ó   € ] tR tRtRtRtR# )ÚShapedFragWordir  z:list class to distinguish frag words that have been shapedr   Nr   r   r#   r$   rx  rx  r  s   † ÙDÛr#   rx  c                 ó0  € V P                   pW19   d   W!P                  V4      ,          # V\        \        39   d   \        M\	        R V\        3/ 4      pVP                  V4       VP                  V4       \        V4      ^8¼  d   VRR VR&   VRR VR&   V# )rx  NºNNNi�ÿÿÿ)rD  Úindexrú   rx  ÚtyperL   r3   )Úwrs  ÚVÚklassr9   s   &&&  r$   ÚmakeShapedFragWordr€  v  s‰   € Ø�K‰K€EØ„z˜!ŸG™G E›NÕ+Ð+Ø¤D¬Ð#8Ô8�¼dÐCSÐUZÔ[iÐTjÐkmÓ>n€AØ‡H�HˆQ„KØ‡H�HˆU„OÜ
ˆ1ƒvˆs„{Ø��ˆxˆˆ!‰Ø��ˆxˆˆ!‰Ø€Hr#   Ú	ShapeDataz3cluster x_advance y_advance x_offset y_offset widthc                   ó&   a € ] tR tRt o R tRtV tR# )r�  i‚  c                óF   € \        \        \        \        V 4      4      4      # r,  )r0  ÚtuplerP  r   rÂ   s   &r$   Ú__repr__ÚShapeData.__repr__ƒ  s   € Ü”Eœ3œv dÓ+Ó-Ó.Ð.r#   r   N)r   r   r   r    r…  r"   ræ   rç   s   @r$   r�  r�  ‚  s   ø‡ € ÷/ð /r#   iÿÿÿc                   óT   a a€ ] tR tRt oRV 3R lltV 3R ltR tV 3R ltRtVt	V ;t
# )Ú	ShapedStriˆ  c                ó2   <€ \         SV `  W4      pW#n        V# r,  )Úsuperr
  Ú__shapeData__)r  rU   Ú	shapeDataro   rD  s   &&& €r$   r
  ÚShapedStr.__new__‰  s   ø€ Ü‰w‰˜sÓ%ˆØ&ÔØˆr#   c                óô   <€ \        \        SV `	  V4      \        V\         4      '       d#   V P                  VP                  ,           R 7      # V P                  \        V4      \        .,          ,           R 7      # ©©rŒ  )rˆ  rŠ  Ú__add__Ú
isinstancer‹  r3   Ú	_sdSimple)ro   ÚotherrD  s   &&€r$   r‘  ÚShapedStr.__add__Ž  sd   ø€ Üœ™™¨Ó/ÜQ[Ð\aÔbk×QlÒQl t×'9Ñ'9¸%×:MÑ:MÕ'MôQð 	Qà%)×%7Ñ%7¼¸E»
ÄIÀ;Õ8NÕ%NôQð 	Qr#   c                ó
  € \        \        V4      \        V 4      ,           \        V\         4      '       d#   VP                  V P                  ,           R 7      # \	        V4      \
        .,          V P                  ,           R 7      # r�  )rˆ  r‡   r’  r‹  r3   r“  )ro   r”  s   &&r$   Ú__radd__ÚShapedStr.__radd__“  sg   € Üœ˜U›¤C¨£IÕ-ÜQ[Ð\aÔbk×QlÒQl u×':Ñ':¸4×;MÑ;MÕ'MôQð 	Qä%(¨£Z´°Õ%;¸D×<NÑ<NÕ%NôQð 	Qr#   c                ó®   <€ \         SV `  V4      pV'       g   V# V P                  V,          p\        T\	        V\
        4      '       d   V4      # V.4      # r,  )rŠ  Ú__getitem__r‹  rˆ  r’  Úslice)ro   r8   rU   rS   rD  s   &&  €r$   rš  ÚShapedStr.__getitem__˜  sL   ø€ Ü‰GÑ Ó"ˆß˜�(Ø×Ñ˜qÕ!ˆÜ˜¤
¨1¬U× 3Ò 3˜1Ó=Ð=¸!¸Ó=Ð=r#   )r‹  r,  )r   r   r   r    r
  r‘  r—  rš  r"   ræ   Ú__classcell__)rD  rè   s   @@r$   rˆ  rˆ  ˆ  s    ù‡ € ÷õ
Qò
Q÷
>õ >r#   rˆ  c                 ó   € V # r,  r   )r}  Úfeaturess   &&r$   ÚshapeFragWordr   Ÿ  s   € Øˆr#   T)ÚkernÚligaÚdligFc                óŽ  € \        V \        4      '       d   V # . pRp/ pV R,           Fm  w  rg\        VR4      '       d-   VP                  \	        V4      . 4      P                  V4       KC  VP                  \	        V4      V.,          4       WG,          pKo  	  \	        V4      pV'       g   V # V^ ,          P                  p	V^ ,          P                  p
\        P                  ! V	4      p VP                  V
4      pT
R,          p
\        P                  ! 4       p\        P                  P                   Tn        TP%                  T4       TP'                  4        TP(                  p\        P*                  ! YÍT4       TP(                  pTP,                  pRpRp\/        T 4      ! . 4      p^ pRp^ p^ p. P
                  p\1        \3        Yï4      4       EFD  w  pw  ppTP4                  pTP7                  T4      pTP8                  pTP:                  pTP<                  pTP>                  p TP@                  p!TT,          pTTJdŠ   T'       d2   TP                  T\C        X"TPD                  R7      34       TX#,          pTpRp"^ p#. P
                  pTP                  p$T$T	8w  d   T$p	\        P                  ! T	4      pTP                  R,          p
 TPF                  PH                  T,          ^ ,          p%TPF                  PN                  T%,          p&\Q        T%4      p%X"T%,          p"TPS                  T4      pTPS                  T4      pTPS                  T 4      p TPS                  T!4      p!T'       d   X#TT
,          ,          p#T;'       gA    T^ 8g  ;'       g4    T!^ 8g  ;'       g'    TT8¬  ;'       g    TT,          T%8H  ;'       d    TT&8g  pT;'       g.    T;'       g$    TT8¬  ;'       g    TT,          T%8g  ;'       g    TpT! \U        TTT TT!T&4      4       EKG  	  T'       d2   TP                  T\C        X"TPD                  R7      34       TX#,          pT'       g   T # T'       gL   T'       dB   TPW                  T^ ,          .TR,           U$u. uF  p$\Y        T$4      NK  	  up$,           4      pMT # T'       d¹   . p'TP[                  4        F  w  p(p)T'P                  T(T(3T)34       K  	  T F\  p$T'P                  T$^,          P\                  ^ ,          P8                  T$^,          P\                  R	,          P8                  3T$34       K^  	  \_        T'4       U$u. uF  p$T$^,          NK  	  up$TR&   TPa                  ^ T4       T#   \         d    T u # i ; i  \J         d    TPM                  TTT4      p% ELÇi ; iu up$i u up$i )
z}take a frag word and return a shaped fragword if uharfbuzz makes any changes
if no changes are made return the original word
r&  r6  ÚcbDefnr*  FNr�  rz  rw   )1r’  rx  r¡   rf  r3   rL   Úextendr  rZ  r   ÚgetFontr\  ÚAttributeErrorrM  ÚBufferÚBufferClusterLevelÚMONOTONE_CHARACTERSÚcluster_levelÚadd_strÚguess_segment_propertiesÚglyph_infosÚshapeÚglyph_positionsr€  r4   ÚzipÚ	codepointÚglyph_to_stringÚclusterÚ	x_advanceÚx_offsetÚ	y_advanceÚy_offsetrˆ  Ú__self__rý  rd  r»  rY  rc  Úchrre  r�  rD  r„  rü   r‹  rû   Úinsert)*r}  rŸ  Úforcerû  r  ÚspecialsrT   rU   ÚntextÚttfnÚttfsr  ÚhbfÚbufÚinfosÚ	positionsÚchangedÚshapedÚnewÚnew0ÚnfÚxposÚyposÚshapeDataAppendr8   Úinforˆ   r¥  r    rµ  r¶  r·  r¸  r¹  ÚnsÚnewlenr$  r`  Ú
ucharWidthÚSrª  r9   s*   &&&                                       r$   r   r   ¢  s  € ô �aœ×'Ò'°¨ØˆØˆØˆØ�b—E�E‰DˆAÜ�q˜×"Ò"Ø×#Ñ#¤C¨£I¨bÓ1×8Ñ8¸Ô;ÙØ�H‰H”S˜“V˜Q˜C•ZÔ Ø�IŠDñ ô �D“	ˆß˜�(Ø��t�}‰}ˆØ��t�}‰}ˆÜ× Ò  Ó&ˆð	Ø—*‘*˜TÓ"ˆCð 	��ˆÜ×ÒÓ ˆÜ%×8Ñ8×LÑLˆÔØ�‰�DÔØ×$Ñ$Ô&Ø—‘ˆÜ�Š˜ (Ô+à—‘ˆØ×'Ñ'ˆ	àˆØˆÜ  Ô# BÓ'ˆØˆØˆØˆØˆØŸ)™)ˆÜ%¤c¨%Ó&:×;‰LˆA‰jˆt�CØ—.‘.ˆCØ×&Ñ& sÓ+ˆDØ—l‘lˆGØŸ™ˆIØ—|‘|ˆHØŸ™ˆIØ—|‘|ˆHØ�'•
ˆAØ˜‹{ßØ—J‘J ¤9¨R¸/×:RÑ:RÔ#SÐTÔUØ˜F•N�DØ�Ø�Ø�Ø"$§)¡)�Ø—K‘K�Ø�d”7Ø�DÜ$×,Ò,¨TÓ2�CØ—{‘{ 4Õ'�ð?ØŸ™×,Ñ,¨SÕ1°!Õ4�ð Ÿ™×,Ñ,¨UÕ3ˆJÜ˜“JˆEØ�%�KˆBàŸ™ YÓ/ˆIØ—|‘| HÓ-ˆHØŸ™ YÓ/ˆIØ—|‘| HÓ-ˆHß˜& I¨d¥NÕ2˜&Ø÷ Oð O ¨!¡÷ !Nð !N¨x¸©{÷ !Nð !NØ#$ e¡8÷!Nð !Nà$(¨¥G¨U¡N×$LÐ$L°yÀ*Ñ7Lð ð ×NÐN ×NÐN¨1¨e©8×NÐN°t¸AµwÀ±~×NÐNÈˆGÙœI g¨y¸)ÀXÈxÐYcÓd×eñO <÷P Ø�J‰J˜œ9 R°/×2JÑ2JÔKÐLÔMØ�F�NˆDß˜q˜ßßà—m‘m S¨¥V HÀ#ÀbÆ'Ó/JÁ'¸Q´°a¶Á'Ñ/JÕ$JÓK‘à�ßð ˆAØ—~‘~Ö'‘��!Ø—‘˜1˜Q˜% ˜Ö#ñ (ã�Ø—‘˜1˜Q�4×-Ñ-¨aÕ0×8Ñ8¸¸1½×9KÑ9KÈBÕ9O×9WÑ9WÐXÐYZÐ[Ö\ñ ä$*¨1¤IÓ.¡I˜q�a˜—d�d¡IÑ.ˆC�‰FØ�
‰
�1�TÔØˆ
øôc ô 	ØŠHð	ûôZ ô ?Ø×(Ñ(¨¨s°IÓ>“ð?üò. 0Kùò /s0   Ã+V Ë$VÒV=
ÕWÖVÖVÖV:Ö9V:c                 ó~   € \        \        P                  ! WV4      \        WR 7      V 3.VR7      ^,          ^,          # ))r  rZ  )r½  )r   r   r  r   )rU   r  rZ  r½  s   &&&&r$   ÚshapeStrrÔ    sH   € Üœ*×0Ò0°¸HÓEÜ xÔBÀ1ÐEðGØMRôTØTUõWØWXõZð Zr#   c                óv   €  \         P                  ! V 4      pVP                  4        \        Y3/ TB #     L; i)z0return a new instance corrsponding to a ttf path)r   r§  rj  rø  )rÀ  ÚttfpathÚkwdsr  s   &&, r$   ÚfreshTTFontrØ    s=   € ðÜ× Ò  Ó&ˆØ�‰Ôô �$Ñ& Ñ&Ð&øðÙús   ‚&4 ´8c                  ó.   € \         P                  4        R # r,  )rG   r  r   r#   r$   Ú_resetrÚ    s   € Ü×ÑÖr#   r4  i   i   i   i   râ   rã   i   rw   r,  )F)]Ú__version__r!   Ústructr   r   r   rÔ   r   r[   r   r   r	   r
   r   Úreportlab.lib.abagr   Úreportlab.pdfbaser   r   Ú	reportlabr   Úreportlab.lib.rl_accelr   r   r   r   r   Úreportlab.rl_configr   r   Úcollectionsr   Úior   rI   rC  Ú	functoolsrM  r'  r   r'   Ú	maketransr+   r;   rA   rD   r·  ÚGF_ARGS_ARE_XY_VALUESÚGF_ROUND_XY_TO_GRIDr¸  ÚGF_RESERVEDr¶  r¹  rº  ÚGF_WE_HAVE_INSTRUCTIONSÚGF_USE_MY_METRICSÚGF_OVERLAP_COMPOUNDÚGF_SCALED_COMPONENT_OFFSETÚGF_UNSCALED_COMPONENT_OFFSETrG   rV   rb   rd   rê   r  r  r  r^  ÚFF_SERIFrZ  Ú	FF_SCRIPTrè  r\  Ú	FF_ALLCAPÚFF_SMALLCAPr]  rÎ  rÌ  ró  rø  rú   rx  r€  r�  Ú	_sdGuardLr“  r‡   rˆ  r   r  rÔ  rØ  rÚ  r   r#   r$   Ú<module>ró     s9  ðð €ð0	€÷d 6Ñ 5Ý ß LÕ LÝ #ß 0Ý ß ]Õ ]ß @Ý "Ý ß Ó ðÛô	ˆv�‰ô 	ð —O‘O M°-Ó@ô 5ò
ò6Bò
5ð #)Ð Ø"(Ð Ø"(Ð Ø"(Ð Ø"(€Ø"(Ð Ø"(Ð Ø"(Ð Ø"(Ð Ø"(Ð Ø")Ð Ø")Ð Ø")Ð ð Ð òò"5÷$m.ñ m.÷^7ñ 7ñt Ð2Ð4`ÓaÐ ô	�5ô 	ôD
#�ô D
#ðX €Ø€Ø€Ø€	Ø€Ø€	Ø€	Ø€Ø€ô*K�˜Z×0Ñ0ô *K÷Xñ ÷B/ñ B/ôJ	�Tô 	ð  ô 	ñ �{Ð#XÓY€	ô/�	ô /ñ �r˜!˜A˜a  !Ó$Ð%€	Ù�j  1 Q q¨Ó+€	ô>�ô >÷, õñ #'¨D°dÀÔ"EÈUô gôRZò'òñ ˆvÔ Úøðs.ØƒIús   Á&F/ Æ/F6