aboutsummaryrefslogtreecommitdiff
path: root/unipdf/model/internal/fonts/fonts.go
diff options
context:
space:
mode:
authorleshe4ka46 <alex9102naid1@ya.ru>2025-10-19 14:47:59 +0300
committerleshe4ka46 <alex9102naid1@ya.ru>2025-10-19 14:47:59 +0300
commite17a425dfb3382310fb5863f516dacdca9f44956 (patch)
tree7babb3048d0eb20aa1e68e9b29c2acfa794ab96f /unipdf/model/internal/fonts/fonts.go
parent091963a50c3bb2926f559f01c49e8f5bd03d2bfd (diff)
fuck the unipdf licencing
Diffstat (limited to 'unipdf/model/internal/fonts/fonts.go')
-rw-r--r--unipdf/model/internal/fonts/fonts.go129
1 files changed, 129 insertions, 0 deletions
diff --git a/unipdf/model/internal/fonts/fonts.go b/unipdf/model/internal/fonts/fonts.go
new file mode 100644
index 0000000..c3bb1fd
--- /dev/null
+++ b/unipdf/model/internal/fonts/fonts.go
@@ -0,0 +1,129 @@
+//
+// Copyright 2020 FoxyUtils ehf. All rights reserved.
+//
+// This is a commercial product and requires a license to operate.
+// A trial license can be obtained at https://unidoc.io
+//
+// DO NOT EDIT: generated by unitwist Go source code obfuscator.
+//
+// Use of this source code is governed by the UniDoc End User License Agreement
+// terms that can be accessed at https://unidoc.io/eula/
+
+package fonts ;import (_ea "bytes";_g "encoding/binary";_cc "errors";_b "fmt";_f "github.com/unidoc/unipdf/v4/common";_dd "github.com/unidoc/unipdf/v4/core";_bg "github.com/unidoc/unipdf/v4/internal/cmap";_dgb "github.com/unidoc/unipdf/v4/internal/textencoding";
+_dg "io";_c "os";_da "regexp";_d "sort";_bc "strings";_ed "sync";);func (_dcce *ttfParser )ParseComponents ()error {if _fdc :=_dcce .ParseHead ();_fdc !=nil {return _fdc ;};if _fae :=_dcce .ParseHhea ();_fae !=nil {return _fae ;};if _eag :=_dcce .ParseMaxp ();
+_eag !=nil {return _eag ;};if _beg :=_dcce .ParseHmtx ();_beg !=nil {return _beg ;};if _ ,_abee :=_dcce ._gec ["\u006e\u0061\u006d\u0065"];_abee {if _egab :=_dcce .ParseName ();_egab !=nil {return _egab ;};};if _ ,_dbf :=_dcce ._gec ["\u004f\u0053\u002f\u0032"];
+_dbf {if _add :=_dcce .ParseOS2 ();_add !=nil {return _add ;};};if _ ,_bea :=_dcce ._gec ["\u0070\u006f\u0073\u0074"];_bea {if _egb :=_dcce .ParsePost ();_egb !=nil {return _egb ;};};if _ ,_dagg :=_dcce ._gec ["\u0063\u006d\u0061\u0070"];_dagg {if _fcec :=_dcce .ParseCmap ();
+_fcec !=nil {return _fcec ;};};return nil ;};type TtfType struct{UnitsPerEm uint16 ;PostScriptName string ;Bold bool ;ItalicAngle float64 ;IsFixedPitch bool ;TypoAscender int16 ;TypoDescender int16 ;UnderlinePosition int16 ;UnderlineThickness int16 ;Xmin ,Ymin ,Xmax ,Ymax int16 ;
+CapHeight int16 ;Widths []uint16 ;Chars map[rune ]GID ;GlyphNames []GlyphName ;};func NewStdFontByName (name StdFontName )(StdFont ,bool ){_fc ,_gfa :=_agc .read (name );if !_gfa {return StdFont {},false ;};return _fc (),true ;};func (_bffg *ttfParser )ReadSByte ()(_fba int8 ){_g .Read (_bffg ._dcg ,_g .BigEndian ,&_fba );
+return _fba ;};func (_eec *TtfType )String ()string {return _b .Sprintf ("\u0046\u004fN\u0054\u005f\u0046\u0049\u004cE\u0032\u007b\u0025\u0023\u0071 \u0055\u006e\u0069\u0074\u0073\u0050\u0065\u0072\u0045\u006d\u003d\u0025\u0064\u0020\u0042\u006f\u006c\u0064\u003d\u0025\u0074\u0020\u0049\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065\u003d\u0025\u0066\u0020"+"\u0043\u0061pH\u0065\u0069\u0067h\u0074\u003d\u0025\u0064 Ch\u0061rs\u003d\u0025\u0064\u0020\u0047\u006c\u0079ph\u004e\u0061\u006d\u0065\u0073\u003d\u0025d\u007d",_eec .PostScriptName ,_eec .UnitsPerEm ,_eec .Bold ,_eec .ItalicAngle ,_eec .CapHeight ,len (_eec .Chars ),len (_eec .GlyphNames ));
+};func (_bgff *ttfParser )ReadUShort ()(_aedg uint16 ){_g .Read (_bgff ._dcg ,_g .BigEndian ,&_aedg );return _aedg ;};func (_fced *ttfParser )Read32Fixed ()float64 {_fgbb :=float64 (_fced .ReadShort ());_aaed :=float64 (_fced .ReadUShort ())/65536.0;return _fgbb +_aaed ;
+};type GlyphName =_dgb .GlyphName ;type Descriptor struct{Name StdFontName ;Family string ;Weight FontWeight ;Flags uint ;BBox [4]float64 ;ItalicAngle float64 ;Ascent float64 ;Descent float64 ;CapHeight float64 ;XHeight float64 ;StemV float64 ;StemH float64 ;
+};func _efd ()StdFont {_bcc .Do (_agf );_bag :=Descriptor {Name :TimesBoldName ,Family :_baba ,Weight :FontWeightBold ,Flags :0x0020,BBox :[4]float64 {-168,-218,1000,935},ItalicAngle :0,Ascent :683,Descent :-217,CapHeight :676,XHeight :461,StemV :139,StemH :44};
+return NewStdFont (_bag ,_efc );};type CharMetrics struct{Wx float64 ;Wy float64 ;};type StdFont struct{_edb Descriptor ;_cf *RuneCharSafeMap ;_bge _dgb .TextEncoder ;};func (_bee *ttfParser )ReadStr (length int )(string ,error ){_bdbg :=make ([]byte ,length );
+_adf ,_ffcg :=_bee ._dcg .Read (_bdbg );if _ffcg !=nil {return "",_ffcg ;}else if _adf !=length {return "",_b .Errorf ("\u0075\u006e\u0061bl\u0065\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u0025\u0064\u0020\u0062\u0079\u0074\u0065\u0073",length );
+};return string (_bdbg ),nil ;};func (_gfe *ttfParser )ParseHhea ()error {if _cff :=_gfe .Seek ("\u0068\u0068\u0065\u0061");_cff !=nil {return _cff ;};_gfe .Skip (4+15*2);_gfe ._deebd =_gfe .ReadUShort ();return nil ;};var _fcd =[]GlyphName {"\u002en\u006f\u0074\u0064\u0065\u0066","\u002e\u006e\u0075l\u006c","\u006e\u006fn\u006d\u0061\u0072k\u0069\u006e\u0067\u0072\u0065\u0074\u0075\u0072\u006e","\u0073\u0070\u0061c\u0065","\u0065\u0078\u0063\u006c\u0061\u006d","\u0071\u0075\u006f\u0074\u0065\u0064\u0062\u006c","\u006e\u0075\u006d\u0062\u0065\u0072\u0073\u0069\u0067\u006e","\u0064\u006f\u006c\u006c\u0061\u0072","\u0070e\u0072\u0063\u0065\u006e\u0074","\u0061m\u0070\u0065\u0072\u0073\u0061\u006ed","q\u0075\u006f\u0074\u0065\u0073\u0069\u006e\u0067\u006c\u0065","\u0070a\u0072\u0065\u006e\u006c\u0065\u0066t","\u0070\u0061\u0072\u0065\u006e\u0072\u0069\u0067\u0068\u0074","\u0061\u0073\u0074\u0065\u0072\u0069\u0073\u006b","\u0070\u006c\u0075\u0073","\u0063\u006f\u006dm\u0061","\u0068\u0079\u0070\u0068\u0065\u006e","\u0070\u0065\u0072\u0069\u006f\u0064","\u0073\u006c\u0061s\u0068","\u007a\u0065\u0072\u006f","\u006f\u006e\u0065","\u0074\u0077\u006f","\u0074\u0068\u0072e\u0065","\u0066\u006f\u0075\u0072","\u0066\u0069\u0076\u0065","\u0073\u0069\u0078","\u0073\u0065\u0076e\u006e","\u0065\u0069\u0067h\u0074","\u006e\u0069\u006e\u0065","\u0063\u006f\u006co\u006e","\u0073e\u006d\u0069\u0063\u006f\u006c\u006fn","\u006c\u0065\u0073\u0073","\u0065\u0071\u0075a\u006c","\u0067r\u0065\u0061\u0074\u0065\u0072","\u0071\u0075\u0065\u0073\u0074\u0069\u006f\u006e","\u0061\u0074","\u0041","\u0042","\u0043","\u0044","\u0045","\u0046","\u0047","\u0048","\u0049","\u004a","\u004b","\u004c","\u004d","\u004e","\u004f","\u0050","\u0051","\u0052","\u0053","\u0054","\u0055","\u0056","\u0057","\u0058","\u0059","\u005a","b\u0072\u0061\u0063\u006b\u0065\u0074\u006c\u0065\u0066\u0074","\u0062a\u0063\u006b\u0073\u006c\u0061\u0073h","\u0062\u0072\u0061c\u006b\u0065\u0074\u0072\u0069\u0067\u0068\u0074","a\u0073\u0063\u0069\u0069\u0063\u0069\u0072\u0063\u0075\u006d","\u0075\u006e\u0064\u0065\u0072\u0073\u0063\u006f\u0072\u0065","\u0067\u0072\u0061v\u0065","\u0061","\u0062","\u0063","\u0064","\u0065","\u0066","\u0067","\u0068","\u0069","\u006a","\u006b","\u006c","\u006d","\u006e","\u006f","\u0070","\u0071","\u0072","\u0073","\u0074","\u0075","\u0076","\u0077","\u0078","\u0079","\u007a","\u0062r\u0061\u0063\u0065\u006c\u0065\u0066t","\u0062\u0061\u0072","\u0062\u0072\u0061\u0063\u0065\u0072\u0069\u0067\u0068\u0074","\u0061\u0073\u0063\u0069\u0069\u0074\u0069\u006c\u0064\u0065","\u0041d\u0069\u0065\u0072\u0065\u0073\u0069s","\u0041\u0072\u0069n\u0067","\u0043\u0063\u0065\u0064\u0069\u006c\u006c\u0061","\u0045\u0061\u0063\u0075\u0074\u0065","\u004e\u0074\u0069\u006c\u0064\u0065","\u004fd\u0069\u0065\u0072\u0065\u0073\u0069s","\u0055d\u0069\u0065\u0072\u0065\u0073\u0069s","\u0061\u0061\u0063\u0075\u0074\u0065","\u0061\u0067\u0072\u0061\u0076\u0065","a\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u0061d\u0069\u0065\u0072\u0065\u0073\u0069s","\u0061\u0074\u0069\u006c\u0064\u0065","\u0061\u0072\u0069n\u0067","\u0063\u0063\u0065\u0064\u0069\u006c\u006c\u0061","\u0065\u0061\u0063\u0075\u0074\u0065","\u0065\u0067\u0072\u0061\u0076\u0065","e\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u0065d\u0069\u0065\u0072\u0065\u0073\u0069s","\u0069\u0061\u0063\u0075\u0074\u0065","\u0069\u0067\u0072\u0061\u0076\u0065","i\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u0069d\u0069\u0065\u0072\u0065\u0073\u0069s","\u006e\u0074\u0069\u006c\u0064\u0065","\u006f\u0061\u0063\u0075\u0074\u0065","\u006f\u0067\u0072\u0061\u0076\u0065","o\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u006fd\u0069\u0065\u0072\u0065\u0073\u0069s","\u006f\u0074\u0069\u006c\u0064\u0065","\u0075\u0061\u0063\u0075\u0074\u0065","\u0075\u0067\u0072\u0061\u0076\u0065","u\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u0075d\u0069\u0065\u0072\u0065\u0073\u0069s","\u0064\u0061\u0067\u0067\u0065\u0072","\u0064\u0065\u0067\u0072\u0065\u0065","\u0063\u0065\u006e\u0074","\u0073\u0074\u0065\u0072\u006c\u0069\u006e\u0067","\u0073e\u0063\u0074\u0069\u006f\u006e","\u0062\u0075\u006c\u006c\u0065\u0074","\u0070a\u0072\u0061\u0067\u0072\u0061\u0070h","\u0067\u0065\u0072\u006d\u0061\u006e\u0064\u0062\u006c\u0073","\u0072\u0065\u0067\u0069\u0073\u0074\u0065\u0072\u0065\u0064","\u0063o\u0070\u0079\u0072\u0069\u0067\u0068t","\u0074r\u0061\u0064\u0065\u006d\u0061\u0072k","\u0061\u0063\u0075t\u0065","\u0064\u0069\u0065\u0072\u0065\u0073\u0069\u0073","\u006e\u006f\u0074\u0065\u0071\u0075\u0061\u006c","\u0041\u0045","\u004f\u0073\u006c\u0061\u0073\u0068","\u0069\u006e\u0066\u0069\u006e\u0069\u0074\u0079","\u0070l\u0075\u0073\u006d\u0069\u006e\u0075s","\u006ce\u0073\u0073\u0065\u0071\u0075\u0061l","\u0067\u0072\u0065a\u0074\u0065\u0072\u0065\u0071\u0075\u0061\u006c","\u0079\u0065\u006e","\u006d\u0075","p\u0061\u0072\u0074\u0069\u0061\u006c\u0064\u0069\u0066\u0066","\u0073u\u006d\u006d\u0061\u0074\u0069\u006fn","\u0070r\u006f\u0064\u0075\u0063\u0074","\u0070\u0069","\u0069\u006e\u0074\u0065\u0067\u0072\u0061\u006c","o\u0072\u0064\u0066\u0065\u006d\u0069\u006e\u0069\u006e\u0065","\u006f\u0072\u0064m\u0061\u0073\u0063\u0075\u006c\u0069\u006e\u0065","\u004f\u006d\u0065g\u0061","\u0061\u0065","\u006f\u0073\u006c\u0061\u0073\u0068","\u0071\u0075\u0065s\u0074\u0069\u006f\u006e\u0064\u006f\u0077\u006e","\u0065\u0078\u0063\u006c\u0061\u006d\u0064\u006f\u0077\u006e","\u006c\u006f\u0067\u0069\u0063\u0061\u006c\u006e\u006f\u0074","\u0072a\u0064\u0069\u0063\u0061\u006c","\u0066\u006c\u006f\u0072\u0069\u006e","a\u0070\u0070\u0072\u006f\u0078\u0065\u0071\u0075\u0061\u006c","\u0044\u0065\u006ct\u0061","\u0067\u0075\u0069\u006c\u006c\u0065\u006d\u006f\u0074\u006c\u0065\u0066\u0074","\u0067\u0075\u0069\u006c\u006c\u0065\u006d\u006f\u0074r\u0069\u0067\u0068\u0074","\u0065\u006c\u006c\u0069\u0070\u0073\u0069\u0073","\u006e\u006fn\u0062\u0072\u0065a\u006b\u0069\u006e\u0067\u0073\u0070\u0061\u0063\u0065","\u0041\u0067\u0072\u0061\u0076\u0065","\u0041\u0074\u0069\u006c\u0064\u0065","\u004f\u0074\u0069\u006c\u0064\u0065","\u004f\u0045","\u006f\u0065","\u0065\u006e\u0064\u0061\u0073\u0068","\u0065\u006d\u0064\u0061\u0073\u0068","\u0071\u0075\u006ft\u0065\u0064\u0062\u006c\u006c\u0065\u0066\u0074","\u0071\u0075\u006f\u0074\u0065\u0064\u0062\u006c\u0072\u0069\u0067\u0068\u0074","\u0071u\u006f\u0074\u0065\u006c\u0065\u0066t","\u0071\u0075\u006f\u0074\u0065\u0072\u0069\u0067\u0068\u0074","\u0064\u0069\u0076\u0069\u0064\u0065","\u006co\u007a\u0065\u006e\u0067\u0065","\u0079d\u0069\u0065\u0072\u0065\u0073\u0069s","\u0059d\u0069\u0065\u0072\u0065\u0073\u0069s","\u0066\u0072\u0061\u0063\u0074\u0069\u006f\u006e","\u0063\u0075\u0072\u0072\u0065\u006e\u0063\u0079","\u0067\u0075\u0069\u006c\u0073\u0069\u006e\u0067\u006c\u006c\u0065\u0066\u0074","\u0067\u0075\u0069\u006c\u0073\u0069\u006e\u0067\u006cr\u0069\u0067\u0068\u0074","\u0066\u0069","\u0066\u006c","\u0064a\u0067\u0067\u0065\u0072\u0064\u0062l","\u0070\u0065\u0072\u0069\u006f\u0064\u0063\u0065\u006et\u0065\u0072\u0065\u0064","\u0071\u0075\u006f\u0074\u0065\u0073\u0069\u006e\u0067l\u0062\u0061\u0073\u0065","\u0071\u0075\u006ft\u0065\u0064\u0062\u006c\u0062\u0061\u0073\u0065","p\u0065\u0072\u0074\u0068\u006f\u0075\u0073\u0061\u006e\u0064","A\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","E\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u0041\u0061\u0063\u0075\u0074\u0065","\u0045d\u0069\u0065\u0072\u0065\u0073\u0069s","\u0045\u0067\u0072\u0061\u0076\u0065","\u0049\u0061\u0063\u0075\u0074\u0065","I\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u0049d\u0069\u0065\u0072\u0065\u0073\u0069s","\u0049\u0067\u0072\u0061\u0076\u0065","\u004f\u0061\u0063\u0075\u0074\u0065","O\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u0061\u0070\u0070l\u0065","\u004f\u0067\u0072\u0061\u0076\u0065","\u0055\u0061\u0063\u0075\u0074\u0065","U\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u0055\u0067\u0072\u0061\u0076\u0065","\u0064\u006f\u0074\u006c\u0065\u0073\u0073\u0069","\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078","\u0074\u0069\u006cd\u0065","\u006d\u0061\u0063\u0072\u006f\u006e","\u0062\u0072\u0065v\u0065","\u0064o\u0074\u0061\u0063\u0063\u0065\u006et","\u0072\u0069\u006e\u0067","\u0063e\u0064\u0069\u006c\u006c\u0061","\u0068\u0075\u006eg\u0061\u0072\u0075\u006d\u006c\u0061\u0075\u0074","\u006f\u0067\u006f\u006e\u0065\u006b","\u0063\u0061\u0072o\u006e","\u004c\u0073\u006c\u0061\u0073\u0068","\u006c\u0073\u006c\u0061\u0073\u0068","\u0053\u0063\u0061\u0072\u006f\u006e","\u0073\u0063\u0061\u0072\u006f\u006e","\u005a\u0063\u0061\u0072\u006f\u006e","\u007a\u0063\u0061\u0072\u006f\u006e","\u0062r\u006f\u006b\u0065\u006e\u0062\u0061r","\u0045\u0074\u0068","\u0065\u0074\u0068","\u0059\u0061\u0063\u0075\u0074\u0065","\u0079\u0061\u0063\u0075\u0074\u0065","\u0054\u0068\u006fr\u006e","\u0074\u0068\u006fr\u006e","\u006d\u0069\u006eu\u0073","\u006d\u0075\u006c\u0074\u0069\u0070\u006c\u0079","o\u006e\u0065\u0073\u0075\u0070\u0065\u0072\u0069\u006f\u0072","t\u0077\u006f\u0073\u0075\u0070\u0065\u0072\u0069\u006f\u0072","\u0074\u0068\u0072\u0065\u0065\u0073\u0075\u0070\u0065\u0072\u0069\u006f\u0072","\u006fn\u0065\u0068\u0061\u006c\u0066","\u006f\u006e\u0065\u0071\u0075\u0061\u0072\u0074\u0065\u0072","\u0074\u0068\u0072\u0065\u0065\u0071\u0075\u0061\u0072\u0074\u0065\u0072\u0073","\u0066\u0072\u0061n\u0063","\u0047\u0062\u0072\u0065\u0076\u0065","\u0067\u0062\u0072\u0065\u0076\u0065","\u0049\u0064\u006f\u0074\u0061\u0063\u0063\u0065\u006e\u0074","\u0053\u0063\u0065\u0064\u0069\u006c\u006c\u0061","\u0073\u0063\u0065\u0064\u0069\u006c\u006c\u0061","\u0043\u0061\u0063\u0075\u0074\u0065","\u0063\u0061\u0063\u0075\u0074\u0065","\u0043\u0063\u0061\u0072\u006f\u006e","\u0063\u0063\u0061\u0072\u006f\u006e","\u0064\u0063\u0072\u006f\u0061\u0074"};
+func TtfParseFile (fileStr string )(TtfType ,error ){_dbb ,_gagf :=_c .Open (fileStr );if _gagf !=nil {return TtfType {},_gagf ;};defer _dbb .Close ();return TtfParse (_dbb );};func (_abef *ttfParser )ParseMaxp ()error {if _fcf :=_abef .Seek ("\u006d\u0061\u0078\u0070");
+_fcf !=nil {return _fcf ;};_abef .Skip (4);_abef ._fce =_abef .ReadUShort ();return nil ;};var _bbd =[]rune {'A','Æ','Á','Ă','Â','Ä','À','Ā','Ą','Å','Ã','B','C','Ć','Č','Ç','D','Ď','Đ','∆','E','É','Ě','Ê','Ë','Ė','È','Ē','Ę','Ð','€','F','G','Ğ','Ģ','H','I','Í','Î','Ï','İ','Ì','Ī','Į','J','K','Ķ','L','Ĺ','Ľ','Ļ','Ł','M','N','Ń','Ň','Ņ','Ñ','O','Œ','Ó','Ô','Ö','Ò','Ő','Ō','Ø','Õ','P','Q','R','Ŕ','Ř','Ŗ','S','Ś','Š','Ş','Ș','T','Ť','Ţ','Þ','U','Ú','Û','Ü','Ù','Ű','Ū','Ų','Ů','V','W','X','Y','Ý','Ÿ','Z','Ź','Ž','Ż','a','á','ă','â','´','ä','æ','à','ā','&','ą','å','^','~','*','@','ã','b','\\','|','{','}','[',']','˘','¦','•','c','ć','ˇ','č','ç','¸','¢','ˆ',':',',','\uf6c3','©','¤','d','†','‡','ď','đ','°','¨','÷','$','˙','ı','e','é','ě','ê','ë','ė','è','8','…','ē','—','–','ę','=','ð','!','¡','f','fi','5','fl','ƒ','4','⁄','g','ğ','ģ','ß','`','>','≥','«','»','‹','›','h','˝','-','i','í','î','ï','ì','ī','į','j','k','ķ','l','ĺ','ľ','ļ','<','≤','¬','◊','ł','m','¯','−','µ','×','n','ń','ň','ņ','9','≠','ñ','#','o','ó','ô','ö','œ','˛','ò','ő','ō','1','½','¼','¹','ª','º','ø','õ','p','¶','(',')','∂','%','.','·','‰','+','±','q','?','¿','"','„','“','”','‘','’','‚','\'','r','ŕ','√','ř','ŗ','®','˚','s','ś','š','ş','ș','§',';','7','6','/',' ','£','∑','t','ť','ţ','þ','3','¾','³','˜','™','2','²','u','ú','û','ü','ù','ű','ū','_','ų','ů','v','w','x','y','ý','ÿ','¥','z','ź','ž','ż','0'};
+func (_eg CharMetrics )String ()string {return _b .Sprintf ("<\u0025\u002e\u0031\u0066\u002c\u0025\u002e\u0031\u0066\u003e",_eg .Wx ,_eg .Wy );};func (_ebeb *ttfParser )parseCmapSubtable10 (_gage int64 )error {if _ebeb ._gbf .Chars ==nil {_ebeb ._gbf .Chars =make (map[rune ]GID );
+};_ebeb ._dcg .Seek (int64 (_ebeb ._gec ["\u0063\u006d\u0061\u0070"])+_gage ,_dg .SeekStart );var _ebc ,_bgb uint32 ;_fb :=_ebeb .ReadUShort ();if _fb < 8{_ebc =uint32 (_ebeb .ReadUShort ());_bgb =uint32 (_ebeb .ReadUShort ());}else {_ebeb .ReadUShort ();
+_ebc =_ebeb .ReadULong ();_bgb =_ebeb .ReadULong ();};_f .Log .Trace ("\u0070\u0061r\u0073\u0065\u0043\u006d\u0061p\u0053\u0075\u0062\u0074\u0061b\u006c\u0065\u0031\u0030\u003a\u0020\u0066\u006f\u0072\u006d\u0061\u0074\u003d\u0025\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u003d\u0025\u0064\u0020\u006c\u0061\u006e\u0067\u0075\u0061\u0067\u0065\u003d\u0025\u0064",_fb ,_ebc ,_bgb );
+if _fb !=0{return _cc .New ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0063\u006d\u0061p\u0020s\u0075\u0062\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_cceb ,_ecce :=_ebeb .ReadStr (256);
+if _ecce !=nil {return _ecce ;};_gabfc :=[]byte (_cceb );for _eeeb ,_addf :=range _gabfc {_ebeb ._gbf .Chars [rune (_eeeb )]=GID (_addf );if _addf !=0{_b .Printf ("\u0009\u0030\u0078\u002502\u0078\u0020\u279e\u0020\u0030\u0078\u0025\u0030\u0032\u0078\u003d\u0025\u0063\u000a",_eeeb ,_addf ,rune (_addf ));
+};};return nil ;};func _ecf ()StdFont {_aea .Do (_eed );_gag :=Descriptor {Name :HelveticaName ,Family :string (HelveticaName ),Weight :FontWeightMedium ,Flags :0x0020,BBox :[4]float64 {-166,-225,1000,931},ItalicAngle :0,Ascent :718,Descent :-207,CapHeight :718,XHeight :523,StemV :88,StemH :76};
+return NewStdFont (_gag ,_gadb );};func (_aef StdFont )Descriptor ()Descriptor {return _aef ._edb };var _gad *RuneCharSafeMap ;func (_dbe *ttfParser )ParseHmtx ()error {if _fgbe :=_dbe .Seek ("\u0068\u006d\u0074\u0078");_fgbe !=nil {return _fgbe ;};_dbe ._gbf .Widths =make ([]uint16 ,0,8);
+for _edad :=uint16 (0);_edad < _dbe ._deebd ;_edad ++{_dbe ._gbf .Widths =append (_dbe ._gbf .Widths ,_dbe .ReadUShort ());_dbe .Skip (2);};if _dbe ._deebd < _dbe ._fce &&_dbe ._deebd > 0{_gfd :=_dbe ._gbf .Widths [_dbe ._deebd -1];for _bcb :=_dbe ._deebd ;
+_bcb < _dbe ._fce ;_bcb ++{_dbe ._gbf .Widths =append (_dbe ._gbf .Widths ,_gfd );};};return nil ;};var _af *RuneCharSafeMap ;var _fee *RuneCharSafeMap ;func (_cae *ttfParser )ParseHead ()error {if _ffc :=_cae .Seek ("\u0068\u0065\u0061\u0064");_ffc !=nil {return _ffc ;
+};_cae .Skip (3*4);_fgb :=_cae .ReadULong ();if _fgb !=0x5F0F3CF5{_f .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0049\u006e\u0063\u006fr\u0072e\u0063\u0074\u0020\u006d\u0061\u0067\u0069\u0063\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u002e\u0020\u0046\u006fn\u0074\u0020\u006d\u0061\u0079\u0020\u006e\u006f\u0074\u0020\u0064\u0069\u0073\u0070\u006c\u0061\u0079\u0020\u0063\u006f\u0072\u0072\u0065\u0063t\u006c\u0079\u002e\u0020\u0025\u0073",_cae );
+};_cae .Skip (2);_cae ._gbf .UnitsPerEm =_cae .ReadUShort ();_cae .Skip (2*8);_cae ._gbf .Xmin =_cae .ReadShort ();_cae ._gbf .Ymin =_cae .ReadShort ();_cae ._gbf .Xmax =_cae .ReadShort ();_cae ._gbf .Ymax =_cae .ReadShort ();return nil ;};func (_fdb *TtfType )NewEncoder ()_dgb .TextEncoder {return _dgb .NewTrueTypeFontEncoder (_fdb .Chars )};
+const (_baba ="\u0054\u0069\u006de\u0073";TimesRomanName =StdFontName ("T\u0069\u006d\u0065\u0073\u002d\u0052\u006f\u006d\u0061\u006e");TimesBoldName =StdFontName ("\u0054\u0069\u006d\u0065\u0073\u002d\u0042\u006f\u006c\u0064");TimesItalicName =StdFontName ("\u0054\u0069\u006de\u0073\u002d\u0049\u0074\u0061\u006c\u0069\u0063");
+TimesBoldItalicName =StdFontName ("\u0054\u0069m\u0065\u0073\u002dB\u006f\u006c\u0064\u0049\u0074\u0061\u006c\u0069\u0063"););func (_ee *RuneCharSafeMap )Copy ()*RuneCharSafeMap {_eae :=MakeRuneCharSafeMap (_ee .Length ());_ee .Range (func (_bb rune ,_ge CharMetrics )(_gg bool ){_eae ._bd [_bb ]=_ge ;
+return false });return _eae ;};func (_fda *ttfParser )Parse ()(TtfType ,error ){_feb ,_adbc :=_fda .ReadStr (4);if _adbc !=nil {return TtfType {},_adbc ;};if _feb =="\u0074\u0074\u0063\u0066"{return _fda .parseTTC ();}else if _feb !="\u0000\u0001\u0000\u0000"&&_feb !="\u0074\u0072\u0075\u0065"{_f .Log .Debug ("\u0055n\u0072\u0065c\u006f\u0067\u006ei\u007a\u0065\u0064\u0020\u0054\u0072\u0075e\u0054\u0079\u0070\u0065\u0020\u0066i\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074\u002e\u0020v\u0065\u0072\u0073\u0069\u006f\u006e\u003d\u0025\u0071",_feb );
+};_fef :=int (_fda .ReadUShort ());_fda .Skip (3*2);_fda ._gec =make (map[string ]uint32 );var _fde string ;for _gbdb :=0;_gbdb < _fef ;_gbdb ++{_fde ,_adbc =_fda .ReadStr (4);if _adbc !=nil {return TtfType {},_adbc ;};_fda .Skip (4);_edcb :=_fda .ReadULong ();
+_fda .Skip (4);_fda ._gec [_fde ]=_edcb ;};_f .Log .Trace (_dddd (_fda ._gec ));if _adbc =_fda .ParseComponents ();_adbc !=nil {return TtfType {},_adbc ;};return _fda ._gbf ,nil ;};func (_ebe StdFont )Name ()string {return string (_ebe ._edb .Name )};func init (){RegisterStdFont (CourierName ,_fcb ,"\u0043\u006f\u0075\u0072\u0069\u0065\u0072\u0043\u006f\u0075\u0072\u0069e\u0072\u004e\u0065\u0077","\u0043\u006f\u0075\u0072\u0069\u0065\u0072\u004e\u0065\u0077");
+RegisterStdFont (CourierBoldName ,_ddb ,"\u0043o\u0075r\u0069\u0065\u0072\u004e\u0065\u0077\u002c\u0042\u006f\u006c\u0064");RegisterStdFont (CourierObliqueName ,_dbdc ,"\u0043\u006f\u0075\u0072\u0069\u0065\u0072\u004e\u0065\u0077\u002c\u0049t\u0061\u006c\u0069\u0063");
+RegisterStdFont (CourierBoldObliqueName ,_edce ,"C\u006f\u0075\u0072\u0069er\u004ee\u0077\u002c\u0042\u006f\u006cd\u0049\u0074\u0061\u006c\u0069\u0063");};type Font interface{Encoder ()_dgb .TextEncoder ;GetRuneMetrics (_de rune )(CharMetrics ,bool );};
+func NewStdFontWithEncoding (desc Descriptor ,metrics *RuneCharSafeMap ,encoder _dgb .TextEncoder )StdFont {var _eab rune =0xA0;if _ ,_ac :=metrics .Read (_eab );!_ac {_fe ,_ :=metrics .Read (0x20);metrics .Write (_eab ,_fe );};return StdFont {_edb :desc ,_cf :metrics ,_bge :encoder };
+};func (_deeb StdFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_ega ,_dgg :=_deeb ._cf .Read (r );return _ega ,_dgg ;};func (_bde *ttfParser )parseCmapFormat6 ()error {_ead :=int (_bde .ReadUShort ());_afa :=int (_bde .ReadUShort ());_f .Log .Trace ("p\u0061\u0072\u0073\u0065\u0043\u006d\u0061\u0070\u0046o\u0072\u006d\u0061\u0074\u0036\u003a\u0020%s\u0020\u0066\u0069\u0072s\u0074\u0043\u006f\u0064\u0065\u003d\u0025\u0064\u0020en\u0074\u0072y\u0043\u006f\u0075\u006e\u0074\u003d\u0025\u0064",_bde ._gbf .String (),_ead ,_afa );
+for _afd :=0;_afd < _afa ;_afd ++{_cfg :=GID (_bde .ReadUShort ());_bde ._gbf .Chars [rune (_afd +_ead )]=_cfg ;};return nil ;};func _fcg ()StdFont {_aea .Do (_eed );_aaa :=Descriptor {Name :HelveticaBoldName ,Family :string (HelveticaName ),Weight :FontWeightBold ,Flags :0x0020,BBox :[4]float64 {-170,-228,1003,962},ItalicAngle :0,Ascent :718,Descent :-207,CapHeight :718,XHeight :532,StemV :140,StemH :118};
+return NewStdFont (_aaa ,_cccd );};func (_eca *ttfParser )ReadShort ()(_gcb int16 ){_g .Read (_eca ._dcg ,_g .BigEndian ,&_gcb );return _gcb };var _gabg =&RuneCharSafeMap {_bd :map[rune ]CharMetrics {' ':{Wx :250},'!':{Wx :333},'#':{Wx :500},'%':{Wx :833},'&':{Wx :778},'(':{Wx :333},')':{Wx :333},'+':{Wx :549},',':{Wx :250},'.':{Wx :250},'/':{Wx :278},'0':{Wx :500},'1':{Wx :500},'2':{Wx :500},'3':{Wx :500},'4':{Wx :500},'5':{Wx :500},'6':{Wx :500},'7':{Wx :500},'8':{Wx :500},'9':{Wx :500},':':{Wx :278},';':{Wx :278},'<':{Wx :549},'=':{Wx :549},'>':{Wx :549},'?':{Wx :444},'[':{Wx :333},']':{Wx :333},'_':{Wx :500},'{':{Wx :480},'|':{Wx :200},'}':{Wx :480},'¬':{Wx :713},'°':{Wx :400},'±':{Wx :549},'µ':{Wx :576},'×':{Wx :549},'÷':{Wx :549},'ƒ':{Wx :500},'Α':{Wx :722},'Β':{Wx :667},'Γ':{Wx :603},'Ε':{Wx :611},'Ζ':{Wx :611},'Η':{Wx :722},'Θ':{Wx :741},'Ι':{Wx :333},'Κ':{Wx :722},'Λ':{Wx :686},'Μ':{Wx :889},'Ν':{Wx :722},'Ξ':{Wx :645},'Ο':{Wx :722},'Π':{Wx :768},'Ρ':{Wx :556},'Σ':{Wx :592},'Τ':{Wx :611},'Υ':{Wx :690},'Φ':{Wx :763},'Χ':{Wx :722},'Ψ':{Wx :795},'α':{Wx :631},'β':{Wx :549},'γ':{Wx :411},'δ':{Wx :494},'ε':{Wx :439},'ζ':{Wx :494},'η':{Wx :603},'θ':{Wx :521},'ι':{Wx :329},'κ':{Wx :549},'λ':{Wx :549},'ν':{Wx :521},'ξ':{Wx :493},'ο':{Wx :549},'π':{Wx :549},'ρ':{Wx :549},'ς':{Wx :439},'σ':{Wx :603},'τ':{Wx :439},'υ':{Wx :576},'φ':{Wx :521},'χ':{Wx :549},'ψ':{Wx :686},'ω':{Wx :686},'ϑ':{Wx :631},'ϒ':{Wx :620},'ϕ':{Wx :603},'ϖ':{Wx :713},'•':{Wx :460},'…':{Wx :1000},'′':{Wx :247},'″':{Wx :411},'⁄':{Wx :167},'€':{Wx :750},'ℑ':{Wx :686},'℘':{Wx :987},'ℜ':{Wx :795},'Ω':{Wx :768},'ℵ':{Wx :823},'←':{Wx :987},'↑':{Wx :603},'→':{Wx :987},'↓':{Wx :603},'↔':{Wx :1042},'↵':{Wx :658},'⇐':{Wx :987},'⇑':{Wx :603},'⇒':{Wx :987},'⇓':{Wx :603},'⇔':{Wx :1042},'∀':{Wx :713},'∂':{Wx :494},'∃':{Wx :549},'∅':{Wx :823},'∆':{Wx :612},'∇':{Wx :713},'∈':{Wx :713},'∉':{Wx :713},'∋':{Wx :439},'∏':{Wx :823},'∑':{Wx :713},'−':{Wx :549},'∗':{Wx :500},'√':{Wx :549},'∝':{Wx :713},'∞':{Wx :713},'∠':{Wx :768},'∧':{Wx :603},'∨':{Wx :603},'∩':{Wx :768},'∪':{Wx :768},'∫':{Wx :274},'∴':{Wx :863},'∼':{Wx :549},'≅':{Wx :549},'≈':{Wx :549},'≠':{Wx :549},'≡':{Wx :549},'≤':{Wx :549},'≥':{Wx :549},'⊂':{Wx :713},'⊃':{Wx :713},'⊄':{Wx :713},'⊆':{Wx :713},'⊇':{Wx :713},'⊕':{Wx :768},'⊗':{Wx :768},'⊥':{Wx :658},'⋅':{Wx :250},'⌠':{Wx :686},'⌡':{Wx :686},'〈':{Wx :329},'〉':{Wx :329},'◊':{Wx :494},'♠':{Wx :753},'♣':{Wx :753},'♥':{Wx :753},'♦':{Wx :753},'\uf6d9':{Wx :790},'\uf6da':{Wx :790},'\uf6db':{Wx :890},'\uf8e5':{Wx :500},'\uf8e6':{Wx :603},'\uf8e7':{Wx :1000},'\uf8e8':{Wx :790},'\uf8e9':{Wx :790},'\uf8ea':{Wx :786},'\uf8eb':{Wx :384},'\uf8ec':{Wx :384},'\uf8ed':{Wx :384},'\uf8ee':{Wx :384},'\uf8ef':{Wx :384},'\uf8f0':{Wx :384},'\uf8f1':{Wx :494},'\uf8f2':{Wx :494},'\uf8f3':{Wx :494},'\uf8f4':{Wx :494},'\uf8f5':{Wx :686},'\uf8f6':{Wx :384},'\uf8f7':{Wx :384},'\uf8f8':{Wx :384},'\uf8f9':{Wx :384},'\uf8fa':{Wx :384},'\uf8fb':{Wx :384},'\uf8fc':{Wx :494},'\uf8fd':{Wx :494},'\uf8fe':{Wx :494},'\uf8ff':{Wx :790}}};
+func _dbdc ()StdFont {_adb .Do (_ec );_bdg :=Descriptor {Name :CourierObliqueName ,Family :string (CourierName ),Weight :FontWeightMedium ,Flags :0x0061,BBox :[4]float64 {-27,-250,849,805},ItalicAngle :-12,Ascent :629,Descent :-157,CapHeight :562,XHeight :426,StemV :51,StemH :51};
+return NewStdFont (_bdg ,_bga );};var _agc =&fontMap {_db :make (map[StdFontName ]func ()StdFont )};func (_ggd *ttfParser )parseTTC ()(TtfType ,error ){_ggd .Skip (2*2);_cfa :=_ggd .ReadULong ();if _cfa < 1{return TtfType {},_cc .New ("N\u006f \u0066\u006f\u006e\u0074\u0073\u0020\u0069\u006e \u0054\u0054\u0043\u0020fi\u006c\u0065");
+};_ggb :=_ggd .ReadULong ();_ ,_abe :=_ggd ._dcg .Seek (int64 (_ggb ),_dg .SeekStart );if _abe !=nil {return TtfType {},_abe ;};return _ggd .Parse ();};func (_dba *TtfType )MakeToUnicode ()*_bg .CMap {_beda :=make (map[_bg .CharCode ]rune );if len (_dba .GlyphNames )==0{for _agb :=range _dba .Chars {_beda [_bg .CharCode (_agb )]=_agb ;
+};return _bg .NewToUnicodeCMap (_beda );};for _gc ,_aac :=range _dba .Chars {_ddg :=_bg .CharCode (_gc );_ebg :=_dba .GlyphNames [_aac ];_dgfe ,_fac :=_dgb .GlyphToRune (_ebg );if !_fac {_f .Log .Debug ("\u004e\u006f \u0072\u0075\u006e\u0065\u002e\u0020\u0063\u006f\u0064\u0065\u003d\u0030\u0078\u0025\u0030\u0034\u0078\u0020\u0067\u006c\u0079\u0070h=\u0025\u0071",_gc ,_ebg );
+_dgfe =_dgb .MissingCodeRune ;};_beda [_ddg ]=_dgfe ;};return _bg .NewToUnicodeCMap (_beda );};func init (){RegisterStdFont (HelveticaName ,_ecf ,"\u0041\u0072\u0069a\u006c");RegisterStdFont (HelveticaBoldName ,_fcg ,"\u0041\u0072\u0069\u0061\u006c\u002c\u0042\u006f\u006c\u0064");
+RegisterStdFont (HelveticaObliqueName ,_ab ,"\u0041\u0072\u0069a\u006c\u002c\u0049\u0074\u0061\u006c\u0069\u0063");RegisterStdFont (HelveticaBoldObliqueName ,_bae ,"\u0041\u0072i\u0061\u006c\u002cB\u006f\u006c\u0064\u0049\u0074\u0061\u006c\u0069\u0063");
+};var _gadb *RuneCharSafeMap ;var _cccd *RuneCharSafeMap ;func (_egc *ttfParser )Seek (tag string )error {_dbee ,_cacg :=_egc ._gec [tag ];if !_cacg {return _b .Errorf ("\u0074\u0061\u0062\u006ce \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u003a\u0020\u0025\u0073",tag );
+};_egc ._dcg .Seek (int64 (_dbee ),_dg .SeekStart );return nil ;};const (CourierName =StdFontName ("\u0043o\u0075\u0072\u0069\u0065\u0072");CourierBoldName =StdFontName ("\u0043\u006f\u0075r\u0069\u0065\u0072\u002d\u0042\u006f\u006c\u0064");CourierObliqueName =StdFontName ("\u0043o\u0075r\u0069\u0065\u0072\u002d\u004f\u0062\u006c\u0069\u0071\u0075\u0065");
+CourierBoldObliqueName =StdFontName ("\u0043\u006f\u0075\u0072ie\u0072\u002d\u0042\u006f\u006c\u0064\u004f\u0062\u006c\u0069\u0071\u0075\u0065"););var _geaa =&RuneCharSafeMap {_bd :map[rune ]CharMetrics {' ':{Wx :278},'→':{Wx :838},'↔':{Wx :1016},'↕':{Wx :458},'①':{Wx :788},'②':{Wx :788},'③':{Wx :788},'④':{Wx :788},'⑤':{Wx :788},'⑥':{Wx :788},'⑦':{Wx :788},'⑧':{Wx :788},'⑨':{Wx :788},'⑩':{Wx :788},'■':{Wx :761},'▲':{Wx :892},'▼':{Wx :892},'◆':{Wx :788},'●':{Wx :791},'◗':{Wx :438},'★':{Wx :816},'☎':{Wx :719},'☛':{Wx :960},'☞':{Wx :939},'♠':{Wx :626},'♣':{Wx :776},'♥':{Wx :694},'♦':{Wx :595},'✁':{Wx :974},'✂':{Wx :961},'✃':{Wx :974},'✄':{Wx :980},'✆':{Wx :789},'✇':{Wx :790},'✈':{Wx :791},'✉':{Wx :690},'✌':{Wx :549},'✍':{Wx :855},'✎':{Wx :911},'✏':{Wx :933},'✐':{Wx :911},'✑':{Wx :945},'✒':{Wx :974},'✓':{Wx :755},'✔':{Wx :846},'✕':{Wx :762},'✖':{Wx :761},'✗':{Wx :571},'✘':{Wx :677},'✙':{Wx :763},'✚':{Wx :760},'✛':{Wx :759},'✜':{Wx :754},'✝':{Wx :494},'✞':{Wx :552},'✟':{Wx :537},'✠':{Wx :577},'✡':{Wx :692},'✢':{Wx :786},'✣':{Wx :788},'✤':{Wx :788},'✥':{Wx :790},'✦':{Wx :793},'✧':{Wx :794},'✩':{Wx :823},'✪':{Wx :789},'✫':{Wx :841},'✬':{Wx :823},'✭':{Wx :833},'✮':{Wx :816},'✯':{Wx :831},'✰':{Wx :923},'✱':{Wx :744},'✲':{Wx :723},'✳':{Wx :749},'✴':{Wx :790},'✵':{Wx :792},'✶':{Wx :695},'✷':{Wx :776},'✸':{Wx :768},'✹':{Wx :792},'✺':{Wx :759},'✻':{Wx :707},'✼':{Wx :708},'✽':{Wx :682},'✾':{Wx :701},'✿':{Wx :826},'❀':{Wx :815},'❁':{Wx :789},'❂':{Wx :789},'❃':{Wx :707},'❄':{Wx :687},'❅':{Wx :696},'❆':{Wx :689},'❇':{Wx :786},'❈':{Wx :787},'❉':{Wx :713},'❊':{Wx :791},'❋':{Wx :785},'❍':{Wx :873},'❏':{Wx :762},'❐':{Wx :762},'❑':{Wx :759},'❒':{Wx :759},'❖':{Wx :784},'❘':{Wx :138},'❙':{Wx :277},'❚':{Wx :415},'❛':{Wx :392},'❜':{Wx :392},'❝':{Wx :668},'❞':{Wx :668},'❡':{Wx :732},'❢':{Wx :544},'❣':{Wx :544},'❤':{Wx :910},'❥':{Wx :667},'❦':{Wx :760},'❧':{Wx :760},'❶':{Wx :788},'❷':{Wx :788},'❸':{Wx :788},'❹':{Wx :788},'❺':{Wx :788},'❻':{Wx :788},'❼':{Wx :788},'❽':{Wx :788},'❾':{Wx :788},'❿':{Wx :788},'➀':{Wx :788},'➁':{Wx :788},'➂':{Wx :788},'➃':{Wx :788},'➄':{Wx :788},'➅':{Wx :788},'➆':{Wx :788},'➇':{Wx :788},'➈':{Wx :788},'➉':{Wx :788},'➊':{Wx :788},'➋':{Wx :788},'➌':{Wx :788},'➍':{Wx :788},'➎':{Wx :788},'➏':{Wx :788},'➐':{Wx :788},'➑':{Wx :788},'➒':{Wx :788},'➓':{Wx :788},'➔':{Wx :894},'➘':{Wx :748},'➙':{Wx :924},'➚':{Wx :748},'➛':{Wx :918},'➜':{Wx :927},'➝':{Wx :928},'➞':{Wx :928},'➟':{Wx :834},'➠':{Wx :873},'➡':{Wx :828},'➢':{Wx :924},'➣':{Wx :924},'➤':{Wx :917},'➥':{Wx :930},'➦':{Wx :931},'➧':{Wx :463},'➨':{Wx :883},'➩':{Wx :836},'➪':{Wx :836},'➫':{Wx :867},'➬':{Wx :867},'➭':{Wx :696},'➮':{Wx :696},'➯':{Wx :874},'➱':{Wx :874},'➲':{Wx :760},'➳':{Wx :946},'➴':{Wx :771},'➵':{Wx :865},'➶':{Wx :771},'➷':{Wx :888},'➸':{Wx :967},'➹':{Wx :888},'➺':{Wx :831},'➻':{Wx :873},'➼':{Wx :927},'➽':{Wx :970},'➾':{Wx :918},'\uf8d7':{Wx :390},'\uf8d8':{Wx :390},'\uf8d9':{Wx :317},'\uf8da':{Wx :317},'\uf8db':{Wx :276},'\uf8dc':{Wx :276},'\uf8dd':{Wx :509},'\uf8de':{Wx :509},'\uf8df':{Wx :410},'\uf8e0':{Wx :410},'\uf8e1':{Wx :234},'\uf8e2':{Wx :234},'\uf8e3':{Wx :334},'\uf8e4':{Wx :334}}};
+const (HelveticaName =StdFontName ("\u0048e\u006c\u0076\u0065\u0074\u0069\u0063a");HelveticaBoldName =StdFontName ("\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061-\u0042\u006f\u006c\u0064");HelveticaObliqueName =StdFontName ("\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061\u002d\u004f\u0062l\u0069\u0071\u0075\u0065");
+HelveticaBoldObliqueName =StdFontName ("H\u0065\u006c\u0076\u0065ti\u0063a\u002d\u0042\u006f\u006c\u0064O\u0062\u006c\u0069\u0071\u0075\u0065"););func IsStdFont (name StdFontName )bool {_ ,_gf :=_agc .read (name );return _gf };func (_a *RuneCharSafeMap )Write (b rune ,r CharMetrics ){_a ._dag .Lock ();
+defer _a ._dag .Unlock ();_a ._bd [b ]=r ;};var _aaad =[]int16 {722,1000,722,722,722,722,722,722,722,722,722,722,722,722,722,722,722,722,722,612,667,667,667,667,667,667,667,667,667,722,556,611,778,778,778,722,278,278,278,278,278,278,278,278,556,722,722,611,611,611,611,611,833,722,722,722,722,722,778,1000,778,778,778,778,778,778,778,778,667,778,722,722,722,722,667,667,667,667,667,611,611,611,667,722,722,722,722,722,722,722,722,722,667,944,667,667,667,667,611,611,611,611,556,556,556,556,333,556,889,556,556,722,556,556,584,584,389,975,556,611,278,280,389,389,333,333,333,280,350,556,556,333,556,556,333,556,333,333,278,250,737,556,611,556,556,743,611,400,333,584,556,333,278,556,556,556,556,556,556,556,556,1000,556,1000,556,556,584,611,333,333,333,611,556,611,556,556,167,611,611,611,611,333,584,549,556,556,333,333,611,333,333,278,278,278,278,278,278,278,278,556,556,278,278,400,278,584,549,584,494,278,889,333,584,611,584,611,611,611,611,556,549,611,556,611,611,611,611,944,333,611,611,611,556,834,834,333,370,365,611,611,611,556,333,333,494,889,278,278,1000,584,584,611,611,611,474,500,500,500,278,278,278,238,389,389,549,389,389,737,333,556,556,556,556,556,556,333,556,556,278,278,556,600,333,389,333,611,556,834,333,333,1000,556,333,611,611,611,611,611,611,611,556,611,611,556,778,556,556,556,556,556,500,500,500,500,556};
+var _bdf =[]int16 {611,889,611,611,611,611,611,611,611,611,611,611,667,667,667,667,722,722,722,612,611,611,611,611,611,611,611,611,611,722,500,611,722,722,722,722,333,333,333,333,333,333,333,333,444,667,667,556,556,611,556,556,833,667,667,667,667,667,722,944,722,722,722,722,722,722,722,722,611,722,611,611,611,611,500,500,500,500,500,556,556,556,611,722,722,722,722,722,722,722,722,722,611,833,611,556,556,556,556,556,556,556,500,500,500,500,333,500,667,500,500,778,500,500,422,541,500,920,500,500,278,275,400,400,389,389,333,275,350,444,444,333,444,444,333,500,333,333,250,250,760,500,500,500,500,544,500,400,333,675,500,333,278,444,444,444,444,444,444,444,500,889,444,889,500,444,675,500,333,389,278,500,500,500,500,500,167,500,500,500,500,333,675,549,500,500,333,333,500,333,333,278,278,278,278,278,278,278,278,444,444,278,278,300,278,675,549,675,471,278,722,333,675,500,675,500,500,500,500,500,549,500,500,500,500,500,500,667,333,500,500,500,500,750,750,300,276,310,500,500,500,523,333,333,476,833,250,250,1000,675,675,500,500,500,420,556,556,556,333,333,333,214,389,389,453,389,389,760,333,389,389,389,389,389,500,333,500,500,278,250,500,600,278,300,278,500,500,750,300,333,980,500,300,500,500,500,500,500,500,500,500,500,500,444,667,444,444,444,444,500,389,389,389,389,500};
+func (_bbg StdFont )ToPdfObject ()_dd .PdfObject {_eegg :=_dd .MakeDict ();_eegg .Set ("\u0054\u0079\u0070\u0065",_dd .MakeName ("\u0046\u006f\u006e\u0074"));_eegg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_dd .MakeName ("\u0054\u0079\u0070e\u0031"));
+_eegg .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_dd .MakeName (_bbg .Name ()));_eegg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_bbg ._bge .ToPdfObject ());return _dd .MakeIndirectObject (_eegg );};func _fdd ()StdFont {_bcc .Do (_agf );
+_caa :=Descriptor {Name :TimesRomanName ,Family :_baba ,Weight :FontWeightRoman ,Flags :0x0020,BBox :[4]float64 {-168,-218,1000,898},ItalicAngle :0,Ascent :683,Descent :-217,CapHeight :662,XHeight :450,StemV :84,StemH :28};return NewStdFont (_caa ,_gfb );
+};func (_gfbd *ttfParser )parseCmapFormat12 ()error {_aeb :=_gfbd .ReadULong ();_f .Log .Trace ("\u0070\u0061\u0072se\u0043\u006d\u0061\u0070\u0046\u006f\u0072\u006d\u0061t\u00312\u003a \u0025s\u0020\u006e\u0075\u006d\u0047\u0072\u006f\u0075\u0070\u0073\u003d\u0025\u0064",_gfbd ._gbf .String (),_aeb );
+for _dcfc :=uint32 (0);_dcfc < _aeb ;_dcfc ++{_abc :=_gfbd .ReadULong ();_cde :=_gfbd .ReadULong ();_aeaf :=_gfbd .ReadULong ();if _abc > 0x0010FFFF||(0xD800<=_abc &&_abc <=0xDFFF){return _cc .New ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u0068\u0061\u0072\u0061c\u0074\u0065\u0072\u0073\u0020\u0063\u006f\u0064\u0065\u0073");
+};if _cde < _abc ||_cde > 0x0010FFFF||(0xD800<=_cde &&_cde <=0xDFFF){return _cc .New ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u0068\u0061\u0072\u0061c\u0074\u0065\u0072\u0073\u0020\u0063\u006f\u0064\u0065\u0073");};for _bbe :=_abc ;_bbe <=_cde ;
+_bbe ++{if _bbe > 0x10FFFF{_f .Log .Debug ("\u0046\u006fr\u006d\u0061\u0074\u0020\u0031\u0032\u0020\u0063\u006d\u0061\u0070\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0063\u0068\u0061\u0072\u0061\u0063\u0074\u0065\u0072\u0020\u0062\u0065\u0079\u006f\u006e\u0064\u0020\u0055\u0043\u0053\u002d\u0034");
+};_gfbd ._gbf .Chars [rune (_bbe )]=GID (_aeaf );_aeaf ++;};};return nil ;};func init (){RegisterStdFont (SymbolName ,_ece ,"\u0053\u0079\u006d\u0062\u006f\u006c\u002c\u0049\u0074\u0061\u006c\u0069\u0063","S\u0079\u006d\u0062\u006f\u006c\u002c\u0042\u006f\u006c\u0064","\u0053\u0079\u006d\u0062\u006f\u006c\u002c\u0042\u006f\u006c\u0064\u0049t\u0061\u006c\u0069\u0063");
+RegisterStdFont (ZapfDingbatsName ,_egae );};var _bgfe =[]int16 {722,1000,722,722,722,722,722,722,722,722,722,667,722,722,722,722,722,722,722,612,667,667,667,667,667,667,667,667,667,722,500,611,778,778,778,778,389,389,389,389,389,389,389,389,500,778,778,667,667,667,667,667,944,722,722,722,722,722,778,1000,778,778,778,778,778,778,778,778,611,778,722,722,722,722,556,556,556,556,556,667,667,667,611,722,722,722,722,722,722,722,722,722,722,1000,722,722,722,722,667,667,667,667,500,500,500,500,333,500,722,500,500,833,500,500,581,520,500,930,500,556,278,220,394,394,333,333,333,220,350,444,444,333,444,444,333,500,333,333,250,250,747,500,556,500,500,672,556,400,333,570,500,333,278,444,444,444,444,444,444,444,500,1000,444,1000,500,444,570,500,333,333,333,556,500,556,500,500,167,500,500,500,556,333,570,549,500,500,333,333,556,333,333,278,278,278,278,278,278,278,333,556,556,278,278,394,278,570,549,570,494,278,833,333,570,556,570,556,556,556,556,500,549,556,500,500,500,500,500,722,333,500,500,500,500,750,750,300,300,330,500,500,556,540,333,333,494,1000,250,250,1000,570,570,556,500,500,555,500,500,500,333,333,333,278,444,444,549,444,444,747,333,389,389,389,389,389,500,333,500,500,278,250,500,600,333,416,333,556,500,750,300,333,1000,500,300,556,556,556,556,556,556,556,500,556,556,500,722,500,500,500,500,500,444,444,444,444,500};
+var _edbf =[]int16 {667,1000,667,667,667,667,667,667,667,667,667,667,722,722,722,722,722,722,722,612,667,667,667,667,667,667,667,667,667,722,556,611,778,778,778,722,278,278,278,278,278,278,278,278,500,667,667,556,556,556,556,556,833,722,722,722,722,722,778,1000,778,778,778,778,778,778,778,778,667,778,722,722,722,722,667,667,667,667,667,611,611,611,667,722,722,722,722,722,722,722,722,722,667,944,667,667,667,667,611,611,611,611,556,556,556,556,333,556,889,556,556,667,556,556,469,584,389,1015,556,556,278,260,334,334,278,278,333,260,350,500,500,333,500,500,333,556,333,278,278,250,737,556,556,556,556,643,556,400,333,584,556,333,278,556,556,556,556,556,556,556,556,1000,556,1000,556,556,584,556,278,333,278,500,556,500,556,556,167,556,556,556,611,333,584,549,556,556,333,333,556,333,333,222,278,278,278,278,278,222,222,500,500,222,222,299,222,584,549,584,471,222,833,333,584,556,584,556,556,556,556,556,549,556,556,556,556,556,556,944,333,556,556,556,556,834,834,333,370,365,611,556,556,537,333,333,476,889,278,278,1000,584,584,556,556,611,355,333,333,333,222,222,222,191,333,333,453,333,333,737,333,500,500,500,500,500,556,278,556,556,278,278,556,600,278,317,278,556,556,834,333,333,1000,556,333,556,556,556,556,556,556,556,556,556,556,500,722,500,500,500,500,556,500,500,500,500,556};
+func _eed (){_gadb =MakeRuneCharSafeMap (len (_bbd ));_cccd =MakeRuneCharSafeMap (len (_bbd ));for _fd ,_gfaa :=range _bbd {_gadb .Write (_gfaa ,CharMetrics {Wx :float64 (_edbf [_fd ])});_cccd .Write (_gfaa ,CharMetrics {Wx :float64 (_aaad [_fd ])});};
+_bff =_gadb .Copy ();_cd =_cccd .Copy ();};var _efc *RuneCharSafeMap ;func (_gbg *ttfParser )ParseOS2 ()error {if _bfb :=_gbg .Seek ("\u004f\u0053\u002f\u0032");_bfb !=nil {return _bfb ;};_gfg :=_gbg .ReadUShort ();_gbg .Skip (4*2);_gbg .Skip (11*2+10+4*4+4);
+_eedb :=_gbg .ReadUShort ();_gbg ._gbf .Bold =(_eedb &32)!=0;_gbg .Skip (2*2);_gbg ._gbf .TypoAscender =_gbg .ReadShort ();_gbg ._gbf .TypoDescender =_gbg .ReadShort ();if _gfg >=2{_gbg .Skip (3*2+2*4+2);_gbg ._gbf .CapHeight =_gbg .ReadShort ();}else {_gbg ._gbf .CapHeight =0;
+};return nil ;};func init (){RegisterStdFont (TimesRomanName ,_fdd ,"\u0054\u0069\u006d\u0065\u0073\u004e\u0065\u0077\u0052\u006f\u006d\u0061\u006e","\u0054\u0069\u006de\u0073");RegisterStdFont (TimesBoldName ,_efd ,"\u0054i\u006de\u0073\u004e\u0065\u0077\u0052o\u006d\u0061n\u002c\u0042\u006f\u006c\u0064","\u0054\u0069\u006d\u0065\u0073\u002c\u0042\u006f\u006c\u0064");
+RegisterStdFont (TimesItalicName ,_ged ,"T\u0069m\u0065\u0073\u004e\u0065\u0077\u0052\u006f\u006da\u006e\u002c\u0049\u0074al\u0069\u0063","\u0054\u0069\u006de\u0073\u002c\u0049\u0074\u0061\u006c\u0069\u0063");RegisterStdFont (TimesBoldItalicName ,_cdb ,"\u0054i\u006d\u0065\u0073\u004e\u0065\u0077\u0052\u006f\u006d\u0061\u006e,\u0042\u006f\u006c\u0064\u0049\u0074\u0061\u006c\u0069\u0063","\u0054\u0069m\u0065\u0073\u002cB\u006f\u006c\u0064\u0049\u0074\u0061\u006c\u0069\u0063");
+};var _bcc _ed .Once ;func (_dcfe *ttfParser )ReadULong ()(_gfae uint32 ){_g .Read (_dcfe ._dcg ,_g .BigEndian ,&_gfae );return _gfae ;};type GID =_dgb .GID ;var _bff *RuneCharSafeMap ;func _fcb ()StdFont {_adb .Do (_ec );_bf :=Descriptor {Name :CourierName ,Family :string (CourierName ),Weight :FontWeightMedium ,Flags :0x0021,BBox :[4]float64 {-23,-250,715,805},ItalicAngle :0,Ascent :629,Descent :-157,CapHeight :562,XHeight :426,StemV :51,StemH :51};
+return NewStdFont (_bf ,_fa );};func (_gedg *ttfParser )parseCmapSubtable31 (_df int64 )error {_gdba :=make ([]rune ,0,8);_bgfed :=make ([]rune ,0,8);_afe :=make ([]int16 ,0,8);_gbcc :=make ([]uint16 ,0,8);_gedg ._gbf .Chars =make (map[rune ]GID );_gedg ._dcg .Seek (int64 (_gedg ._gec ["\u0063\u006d\u0061\u0070"])+_df ,_dg .SeekStart );
+_gbe :=_gedg .ReadUShort ();if _gbe !=4{_f .Log .Debug ("u\u006e\u0065\u0078\u0070\u0065\u0063t\u0065\u0064\u0020\u0073\u0075\u0062t\u0061\u0062\u006c\u0065\u0020\u0066\u006fr\u006d\u0061\u0074\u003a\u0020\u0025\u0064\u0020\u0028\u0025w\u0029",_gbe );return nil ;
+};_gedg .Skip (2*2);_fceca :=int (_gedg .ReadUShort ()/2);_gedg .Skip (3*2);for _agcc :=0;_agcc < _fceca ;_agcc ++{_bgfed =append (_bgfed ,rune (_gedg .ReadUShort ()));};_gedg .Skip (2);for _dff :=0;_dff < _fceca ;_dff ++{_gdba =append (_gdba ,rune (_gedg .ReadUShort ()));
+};for _gbdg :=0;_gbdg < _fceca ;_gbdg ++{_afe =append (_afe ,_gedg .ReadShort ());};_gfed ,_ :=_gedg ._dcg .Seek (int64 (0),_dg .SeekCurrent );for _agce :=0;_agce < _fceca ;_agce ++{_gbcc =append (_gbcc ,_gedg .ReadUShort ());};for _bca :=0;_bca < _fceca ;
+_bca ++{_cdbg :=_gdba [_bca ];_aca :=_bgfed [_bca ];_begg :=_afe [_bca ];_aab :=_gbcc [_bca ];if _aab > 0{_gedg ._dcg .Seek (_gfed +2*int64 (_bca )+int64 (_aab ),_dg .SeekStart );};for _gaa :=_cdbg ;_gaa <=_aca ;_gaa ++{if _gaa ==0xFFFF{break ;};var _gbcf int32 ;
+if _aab > 0{_gbcf =int32 (_gedg .ReadUShort ());if _gbcf > 0{_gbcf +=int32 (_begg );};}else {_gbcf =_gaa +int32 (_begg );};if _gbcf >=65536{_gbcf -=65536;};if _gbcf > 0{_gedg ._gbf .Chars [_gaa ]=GID (_gbcf );};};};return nil ;};func (_bgd *fontMap )write (_dgf StdFontName ,_bgf func ()StdFont ){_bgd .Lock ();
+defer _bgd .Unlock ();_bgd ._db [_dgf ]=_bgf ;};func (_ad StdFont )Encoder ()_dgb .TextEncoder {return _ad ._bge };const (SymbolName =StdFontName ("\u0053\u0079\u006d\u0062\u006f\u006c");ZapfDingbatsName =StdFontName ("\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073");
+);func (_fcbc *ttfParser )ParseCmap ()error {var _ccd int64 ;if _fed :=_fcbc .Seek ("\u0063\u006d\u0061\u0070");_fed !=nil {return _fed ;};_fcbc .ReadUShort ();_ffd :=int (_fcbc .ReadUShort ());_bedb :=int64 (0);_dcf :=int64 (0);_cfff :=int64 (0);for _ada :=0;
+_ada < _ffd ;_ada ++{_facg :=_fcbc .ReadUShort ();_afg :=_fcbc .ReadUShort ();_ccd =int64 (_fcbc .ReadULong ());if _facg ==3&&_afg ==1{_dcf =_ccd ;}else if _facg ==3&&_afg ==10{_cfff =_ccd ;}else if _facg ==1&&_afg ==0{_bedb =_ccd ;};};if _bedb !=0{if _bgg :=_fcbc .parseCmapVersion (_bedb );
+_bgg !=nil {return _bgg ;};};if _dcf !=0{if _dge :=_fcbc .parseCmapSubtable31 (_dcf );_dge !=nil {return _dge ;};};if _cfff !=0{if _gaf :=_fcbc .parseCmapVersion (_cfff );_gaf !=nil {return _gaf ;};};if _dcf ==0&&_bedb ==0&&_cfff ==0{_f .Log .Debug ("\u0074\u0074\u0066P\u0061\u0072\u0073\u0065\u0072\u002e\u0050\u0061\u0072\u0073\u0065\u0043\u006d\u0061\u0070\u002e\u0020\u004e\u006f\u0020\u0033\u0031\u002c\u0020\u0031\u0030\u002c\u0020\u00331\u0030\u0020\u0074\u0061\u0062\u006c\u0065\u002e");
+};return nil ;};func NewFontFile2FromPdfObject (obj _dd .PdfObject )(TtfType ,error ){obj =_dd .TraceToDirectObject (obj );_eda ,_aee :=obj .(*_dd .PdfObjectStream );if !_aee {_f .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065 \u0061\u0020\u0073\u0074\u0072e\u0061\u006d \u0028\u0025\u0054\u0029",obj );
+return TtfType {},_dd .ErrTypeError ;};_daf ,_cbca :=_dd .DecodeStream (_eda );if _cbca !=nil {return TtfType {},_cbca ;};_gbc :=ttfParser {_dcg :_ea .NewReader (_daf )};return _gbc .Parse ();};func _dddd (_adbd map[string ]uint32 )string {var _fcc []string ;
+for _adc :=range _adbd {_fcc =append (_fcc ,_adc );};_d .Slice (_fcc ,func (_eedg ,_gcd int )bool {return _adbd [_fcc [_eedg ]]< _adbd [_fcc [_gcd ]]});_bdc :=[]string {_b .Sprintf ("\u0054\u0072\u0075\u0065Ty\u0070\u0065\u0020\u0074\u0061\u0062\u006c\u0065\u0073\u003a\u0020\u0025\u0064",len (_adbd ))};
+for _ ,_ff :=range _fcc {_bdc =append (_bdc ,_b .Sprintf ("\u0009%\u0071\u0020\u0025\u0035\u0064",_ff ,_adbd [_ff ]));};return _bc .Join (_bdc ,"\u000a");};var _be =[]int16 {667,944,667,667,667,667,667,667,667,667,667,667,667,667,667,667,722,722,722,612,667,667,667,667,667,667,667,667,667,722,500,667,722,722,722,778,389,389,389,389,389,389,389,389,500,667,667,611,611,611,611,611,889,722,722,722,722,722,722,944,722,722,722,722,722,722,722,722,611,722,667,667,667,667,556,556,556,556,556,611,611,611,611,722,722,722,722,722,722,722,722,722,667,889,667,611,611,611,611,611,611,611,500,500,500,500,333,500,722,500,500,778,500,500,570,570,500,832,500,500,278,220,348,348,333,333,333,220,350,444,444,333,444,444,333,500,333,333,250,250,747,500,500,500,500,608,500,400,333,570,500,333,278,444,444,444,444,444,444,444,500,1000,444,1000,500,444,570,500,389,389,333,556,500,556,500,500,167,500,500,500,500,333,570,549,500,500,333,333,556,333,333,278,278,278,278,278,278,278,278,500,500,278,278,382,278,570,549,606,494,278,778,333,606,576,570,556,556,556,556,500,549,556,500,500,500,500,500,722,333,500,500,500,500,750,750,300,266,300,500,500,500,500,333,333,494,833,250,250,1000,570,570,500,500,500,555,500,500,500,333,333,333,278,389,389,549,389,389,747,333,389,389,389,389,389,500,333,500,500,278,250,500,600,278,366,278,500,500,750,300,333,1000,500,300,556,556,556,556,556,556,556,500,556,556,444,667,500,444,444,444,500,389,389,389,389,500};
+func (_gcc *ttfParser )parseCmapFormat0 ()error {_eff ,_dgd :=_gcc .ReadStr (256);if _dgd !=nil {return _dgd ;};_eefb :=[]byte (_eff );_f .Log .Trace ("\u0070a\u0072\u0073e\u0043\u006d\u0061p\u0046\u006f\u0072\u006d\u0061\u0074\u0030:\u0020\u0025\u0073\u000a\u0064\u0061t\u0061\u0053\u0074\u0072\u003d\u0025\u002b\u0071\u000a\u0064\u0061t\u0061\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d",_gcc ._gbf .String (),_eff ,_eefb );
+for _fgae ,_fcga :=range _eefb {_gcc ._gbf .Chars [rune (_fgae )]=GID (_fcga );};return nil ;};func (_gdb *fontMap )read (_fga StdFontName )(func ()StdFont ,bool ){_gdb .Lock ();defer _gdb .Unlock ();_bab ,_ag :=_gdb ._db [_fga ];return _bab ,_ag ;};func _edce ()StdFont {_adb .Do (_ec );
+_cbg :=Descriptor {Name :CourierBoldObliqueName ,Family :string (CourierName ),Weight :FontWeightBold ,Flags :0x0061,BBox :[4]float64 {-57,-250,869,801},ItalicAngle :-12,Ascent :629,Descent :-157,CapHeight :562,XHeight :439,StemV :106,StemH :84};return NewStdFont (_cbg ,_gad );
+};func (_gef *ttfParser )parseCmapVersion (_eef int64 )error {_f .Log .Trace ("p\u0061\u0072\u0073\u0065\u0043\u006da\u0070\u0056\u0065\u0072\u0073\u0069\u006f\u006e\u003a \u006f\u0066\u0066s\u0065t\u003d\u0025\u0064",_eef );if _gef ._gbf .Chars ==nil {_gef ._gbf .Chars =make (map[rune ]GID );
+};_gef ._dcg .Seek (int64 (_gef ._gec ["\u0063\u006d\u0061\u0070"])+_eef ,_dg .SeekStart );var _aed ,_cac uint32 ;_adcd :=_gef .ReadUShort ();if _adcd < 8{_aed =uint32 (_gef .ReadUShort ());_cac =uint32 (_gef .ReadUShort ());}else {_gef .ReadUShort ();
+_aed =_gef .ReadULong ();_cac =_gef .ReadULong ();};_f .Log .Debug ("\u0070\u0061\u0072\u0073\u0065\u0043m\u0061\u0070\u0056\u0065\u0072\u0073\u0069\u006f\u006e\u003a\u0020\u0066\u006f\u0072\u006d\u0061\u0074\u003d\u0025\u0064 \u006c\u0065\u006e\u0067\u0074\u0068\u003d\u0025\u0064\u0020\u006c\u0061\u006e\u0067u\u0061g\u0065\u003d\u0025\u0064",_adcd ,_aed ,_cac );
+switch _adcd {case 0:return _gef .parseCmapFormat0 ();case 6:return _gef .parseCmapFormat6 ();case 12:return _gef .parseCmapFormat12 ();default:_f .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0055\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0063m\u0061\u0070\u0020\u0066\u006f\u0072\u006da\u0074\u003d\u0025\u0064",_adcd );
+return nil ;};};func RegisterStdFont (name StdFontName ,fnc func ()StdFont ,aliases ...StdFontName ){if _ ,_ae :=_agc .read (name );_ae {panic ("\u0066o\u006e\u0074\u0020\u0061l\u0072\u0065\u0061\u0064\u0079 \u0072e\u0067i\u0073\u0074\u0065\u0072\u0065\u0064\u003a "+string (name ));
+};_agc .write (name ,fnc );for _ ,_gab :=range aliases {RegisterStdFont (_gab ,fnc );};};func MakeRuneCharSafeMap (length int )*RuneCharSafeMap {return &RuneCharSafeMap {_bd :make (map[rune ]CharMetrics ,length )};};func _agf (){_gfb =MakeRuneCharSafeMap (len (_bbd ));
+_efc =MakeRuneCharSafeMap (len (_bbd ));_cgd =MakeRuneCharSafeMap (len (_bbd ));_fee =MakeRuneCharSafeMap (len (_bbd ));for _cg ,_gabf :=range _bbd {_gfb .Write (_gabf ,CharMetrics {Wx :float64 (_efcf [_cg ])});_efc .Write (_gabf ,CharMetrics {Wx :float64 (_bgfe [_cg ])});
+_cgd .Write (_gabf ,CharMetrics {Wx :float64 (_be [_cg ])});_fee .Write (_gabf ,CharMetrics {Wx :float64 (_bdf [_cg ])});};};type FontWeight int ;func _ab ()StdFont {_aea .Do (_eed );_dc :=Descriptor {Name :HelveticaObliqueName ,Family :string (HelveticaName ),Weight :FontWeightMedium ,Flags :0x0060,BBox :[4]float64 {-170,-225,1116,931},ItalicAngle :-12,Ascent :718,Descent :-207,CapHeight :718,XHeight :523,StemV :88,StemH :76};
+return NewStdFont (_dc ,_bff );};func TtfParse (r _dg .ReadSeeker )(TtfType ,error ){_efba :=&ttfParser {_dcg :r };return _efba .Parse ()};type StdFontName string ;type fontMap struct{_ed .Mutex ;_db map[StdFontName ]func ()StdFont ;};func _bae ()StdFont {_aea .Do (_eed );
+_ggf :=Descriptor {Name :HelveticaBoldObliqueName ,Family :string (HelveticaName ),Weight :FontWeightBold ,Flags :0x0060,BBox :[4]float64 {-174,-228,1114,962},ItalicAngle :-12,Ascent :718,Descent :-207,CapHeight :718,XHeight :532,StemV :140,StemH :118};
+return NewStdFont (_ggf ,_cd );};var _gfb *RuneCharSafeMap ;var _adb _ed .Once ;func (_ga *RuneCharSafeMap )Read (b rune )(CharMetrics ,bool ){_ga ._dag .RLock ();defer _ga ._dag .RUnlock ();_ef ,_gd :=_ga ._bd [b ];return _ef ,_gd ;};func _ec (){const _bbdg =600;
+_fa =MakeRuneCharSafeMap (len (_bbd ));for _ ,_gb :=range _bbd {_fa .Write (_gb ,CharMetrics {Wx :_bbdg });};_af =_fa .Copy ();_gad =_fa .Copy ();_bga =_fa .Copy ();};const (FontWeightMedium FontWeight =iota ;FontWeightBold ;FontWeightRoman ;);var _efcf =[]int16 {722,889,722,722,722,722,722,722,722,722,722,667,667,667,667,667,722,722,722,612,611,611,611,611,611,611,611,611,611,722,500,556,722,722,722,722,333,333,333,333,333,333,333,333,389,722,722,611,611,611,611,611,889,722,722,722,722,722,722,889,722,722,722,722,722,722,722,722,556,722,667,667,667,667,556,556,556,556,556,611,611,611,556,722,722,722,722,722,722,722,722,722,722,944,722,722,722,722,611,611,611,611,444,444,444,444,333,444,667,444,444,778,444,444,469,541,500,921,444,500,278,200,480,480,333,333,333,200,350,444,444,333,444,444,333,500,333,278,250,250,760,500,500,500,500,588,500,400,333,564,500,333,278,444,444,444,444,444,444,444,500,1000,444,1000,500,444,564,500,333,333,333,556,500,556,500,500,167,500,500,500,500,333,564,549,500,500,333,333,500,333,333,278,278,278,278,278,278,278,278,500,500,278,278,344,278,564,549,564,471,278,778,333,564,500,564,500,500,500,500,500,549,500,500,500,500,500,500,722,333,500,500,500,500,750,750,300,276,310,500,500,500,453,333,333,476,833,250,250,1000,564,564,500,444,444,408,444,444,444,333,333,333,180,333,333,453,333,333,760,333,389,389,389,389,389,500,278,500,500,278,250,500,600,278,326,278,500,500,750,300,333,980,500,300,500,500,500,500,500,500,500,500,500,500,500,722,500,500,500,500,500,444,444,444,444,500};
+func (_fg *RuneCharSafeMap )Range (f func (_ddd rune ,_eee CharMetrics )(_ba bool )){_fg ._dag .RLock ();defer _fg ._dag .RUnlock ();for _cb ,_ca :=range _fg ._bd {if f (_cb ,_ca ){break ;};};};func (_egbc *ttfParser )Skip (n int ){_egbc ._dcg .Seek (int64 (n ),_dg .SeekCurrent )};
+func _cdb ()StdFont {_bcc .Do (_agf );_efa :=Descriptor {Name :TimesBoldItalicName ,Family :_baba ,Weight :FontWeightBold ,Flags :0x0060,BBox :[4]float64 {-200,-218,996,921},ItalicAngle :-15,Ascent :683,Descent :-217,CapHeight :669,XHeight :462,StemV :121,StemH :42};
+return NewStdFont (_efa ,_cgd );};func (_eb *RuneCharSafeMap )Length ()int {_eb ._dag .RLock ();defer _eb ._dag .RUnlock ();return len (_eb ._bd );};var _aea _ed .Once ;var _cd *RuneCharSafeMap ;func _ece ()StdFont {_gda :=_dgb .NewSymbolEncoder ();_ecc :=Descriptor {Name :SymbolName ,Family :string (SymbolName ),Weight :FontWeightMedium ,Flags :0x0004,BBox :[4]float64 {-180,-293,1090,1010},ItalicAngle :0,Ascent :0,Descent :0,CapHeight :0,XHeight :0,StemV :85,StemH :92};
+return NewStdFontWithEncoding (_ecc ,_gabg ,_gda );};func (_ebf *ttfParser )ParsePost ()error {if _bgab :=_ebf .Seek ("\u0070\u006f\u0073\u0074");_bgab !=nil {return _bgab ;};_efce :=_ebf .Read32Fixed ();_ebf ._gbf .ItalicAngle =_ebf .Read32Fixed ();_ebf ._gbf .UnderlinePosition =_ebf .ReadShort ();
+_ebf ._gbf .UnderlineThickness =_ebf .ReadShort ();_ebf ._gbf .IsFixedPitch =_ebf .ReadULong ()!=0;_ebf .ReadULong ();_ebf .ReadULong ();_ebf .ReadULong ();_ebf .ReadULong ();_f .Log .Trace ("\u0050a\u0072\u0073\u0065\u0050\u006f\u0073\u0074\u003a\u0020\u0066\u006fr\u006d\u0061\u0074\u0054\u0079\u0070\u0065\u003d\u0025\u0066",_efce );
+switch _efce {case 1.0:_ebf ._gbf .GlyphNames =_fcd ;case 2.0:_fddc :=int (_ebf .ReadUShort ());_fdf :=make ([]int ,_fddc );_ebf ._gbf .GlyphNames =make ([]GlyphName ,_fddc );_dac :=-1;for _gdgb :=0;_gdgb < _fddc ;_gdgb ++{_dbga :=int (_ebf .ReadUShort ());
+_fdf [_gdgb ]=_dbga ;if _dbga <=0x7fff&&_dbga > _dac {_dac =_dbga ;};};var _ce []GlyphName ;if _dac >=len (_fcd ){_ce =make ([]GlyphName ,_dac -len (_fcd )+1);for _ede :=0;_ede < _dac -len (_fcd )+1;_ede ++{_acg :=int (_ebf .readByte ());_fdfc ,_cffa :=_ebf .ReadStr (_acg );
+if _cffa !=nil {return _cffa ;};_ce [_ede ]=GlyphName (_fdfc );};};for _daed :=0;_daed < _fddc ;_daed ++{_eadf :=_fdf [_daed ];if _eadf < len (_fcd ){_ebf ._gbf .GlyphNames [_daed ]=_fcd [_eadf ];}else if _eadf >=len (_fcd )&&_eadf <=32767{_ebf ._gbf .GlyphNames [_daed ]=_ce [_eadf -len (_fcd )];
+}else {_ebf ._gbf .GlyphNames [_daed ]="\u002e\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064";};};case 2.5:_bgdb :=make ([]int ,_ebf ._fce );for _gfbb :=0;_gfbb < len (_bgdb );_gfbb ++{_ffb :=int (_ebf .ReadSByte ());_bgdb [_gfbb ]=_gfbb +1+_ffb ;
+};_ebf ._gbf .GlyphNames =make ([]GlyphName ,len (_bgdb ));for _dfff :=0;_dfff < len (_ebf ._gbf .GlyphNames );_dfff ++{_cgf :=_fcd [_bgdb [_dfff ]];_ebf ._gbf .GlyphNames [_dfff ]=_cgf ;};case 3.0:_f .Log .Debug ("\u004e\u006f\u0020\u0050\u006f\u0073t\u0053\u0063\u0072i\u0070\u0074\u0020n\u0061\u006d\u0065\u0020\u0069\u006e\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0020is\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0066\u006f\u006e\u0074\u002e");
+default:_f .Log .Debug ("\u0045\u0052\u0052\u004fR\u003a\u0020\u0055\u006e\u006b\u006e\u006f\u0077\u006e\u0020f\u006fr\u006d\u0061\u0074\u0054\u0079\u0070\u0065=\u0025\u0066",_efce );};return nil ;};func _egae ()StdFont {_efb :=_dgb .NewZapfDingbatsEncoder ();
+_gbd :=Descriptor {Name :ZapfDingbatsName ,Family :string (ZapfDingbatsName ),Weight :FontWeightMedium ,Flags :0x0004,BBox :[4]float64 {-1,-143,981,820},ItalicAngle :0,Ascent :0,Descent :0,CapHeight :0,XHeight :0,StemV :90,StemH :28};return NewStdFontWithEncoding (_gbd ,_geaa ,_efb );
+};func _ged ()StdFont {_bcc .Do (_agf );_cbf :=Descriptor {Name :TimesItalicName ,Family :_baba ,Weight :FontWeightMedium ,Flags :0x0060,BBox :[4]float64 {-169,-217,1010,883},ItalicAngle :-15.5,Ascent :683,Descent :-217,CapHeight :653,XHeight :441,StemV :76,StemH :32};
+return NewStdFont (_cbf ,_fee );};func _ddb ()StdFont {_adb .Do (_ec );_aga :=Descriptor {Name :CourierBoldName ,Family :string (CourierName ),Weight :FontWeightBold ,Flags :0x0021,BBox :[4]float64 {-113,-250,749,801},ItalicAngle :0,Ascent :629,Descent :-157,CapHeight :562,XHeight :439,StemV :106,StemH :84};
+return NewStdFont (_aga ,_af );};var _bga *RuneCharSafeMap ;func (_dcfg *ttfParser )readByte ()(_dfb uint8 ){_g .Read (_dcfg ._dcg ,_g .BigEndian ,&_dfb );return _dfb ;};var _fa *RuneCharSafeMap ;func (_dbd StdFont )GetMetricsTable ()*RuneCharSafeMap {return _dbd ._cf };
+func NewStdFont (desc Descriptor ,metrics *RuneCharSafeMap )StdFont {return NewStdFontWithEncoding (desc ,metrics ,_dgb .NewStandardEncoder ());};func (_cgda *ttfParser )ParseName ()error {if _gbeb :=_cgda .Seek ("\u006e\u0061\u006d\u0065");_gbeb !=nil {return _gbeb ;
+};_gde ,_ :=_cgda ._dcg .Seek (0,_dg .SeekCurrent );_cgda ._gbf .PostScriptName ="";_cgda .Skip (2);_afaf :=_cgda .ReadUShort ();_bce :=_cgda .ReadUShort ();for _aeeg :=uint16 (0);_aeeg < _afaf &&_cgda ._gbf .PostScriptName =="";_aeeg ++{_cgda .Skip (3*2);
+_fff :=_cgda .ReadUShort ();_aacd :=_cgda .ReadUShort ();_ded :=_cgda .ReadUShort ();if _fff ==6{_cgda ._dcg .Seek (_gde +int64 (_bce )+int64 (_ded ),_dg .SeekStart );_edcbf ,_dbg :=_cgda .ReadStr (int (_aacd ));if _dbg !=nil {return _dbg ;};_edcbf =_bc .ReplaceAll (_edcbf ,"\u0000","");
+_gbde ,_dbg :=_da .Compile ("\u005b\u0028\u0029\u007b\u007d\u003c\u003e\u0020\u002f%\u005b\u005c\u005d\u005d");if _dbg !=nil {return _dbg ;};_cgda ._gbf .PostScriptName =_gbde .ReplaceAllString (_edcbf ,"");};};if _cgda ._gbf .PostScriptName ==""{_f .Log .Debug ("\u0050a\u0072\u0073e\u004e\u0061\u006de\u003a\u0020\u0054\u0068\u0065\u0020\u006ea\u006d\u0065\u0020\u0050\u006f\u0073t\u0053\u0063\u0072\u0069\u0070\u0074\u0020\u0077\u0061\u0073\u0020n\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u002e");
+};return nil ;};var _ Font =StdFont {};func (_cca *TtfType )MakeEncoder ()(_dgb .SimpleEncoder ,error ){_feg :=make (map[_dgb .CharCode ]GlyphName );for _bed :=_dgb .CharCode (0);_bed <=256;_bed ++{_cce :=rune (_bed );_eba ,_bfe :=_cca .Chars [_cce ];if !_bfe {continue ;
+};var _edg GlyphName ;if int (_eba )>=0&&int (_eba )< len (_cca .GlyphNames ){_edg =_cca .GlyphNames [_eba ];}else {_gee :=rune (_eba );if _ace ,_cbc :=_dgb .RuneToGlyph (_gee );_cbc {_edg =_ace ;};};if _edg !=""{_feg [_bed ]=_edg ;};};if len (_feg )==0{_f .Log .Debug ("WA\u0052\u004eI\u004e\u0047\u003a\u0020\u005a\u0065\u0072\u006f\u0020l\u0065\u006e\u0067\u0074\u0068\u0020\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u002e\u0020\u0074\u0074\u0066=\u0025s\u0020\u0043\u0068\u0061\u0072\u0073\u003d\u005b%\u00200\u0032\u0078]",_cca ,_cca .Chars );
+};return _dgb .NewCustomSimpleTextEncoder (_feg ,nil );};var _cgd *RuneCharSafeMap ;type ttfParser struct{_gbf TtfType ;_dcg _dg .ReadSeeker ;_gec map[string ]uint32 ;_deebd uint16 ;_fce uint16 ;};type RuneCharSafeMap struct{_bd map[rune ]CharMetrics ;
+_dag _ed .RWMutex ;}; \ No newline at end of file