2020-09-07 00:23:12 +00:00

12 lines
58 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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 (_g "bytes";_c "encoding/binary";_ab "errors";_a "fmt";_be "github.com/unidoc/unipdf/v3/common";_d "github.com/unidoc/unipdf/v3/core";_fe "github.com/unidoc/unipdf/v3/internal/cmap";_efe "github.com/unidoc/unipdf/v3/internal/textencoding";_ef "io";_b "os";_af "regexp";_ag "sort";_e "strings";_ed "sync";);type CharMetrics struct{Wx float64 ;Wy float64 ;};func _cda ()StdFont {_dd .Do (_cgd );_gba :=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 (_gba ,_dfbf );};type GID =_efe .GID ;var _cea map[rune ]CharMetrics ;func (_bde *ttfParser )ParseName ()error {if _gaa :=_bde .Seek ("\u006e\u0061\u006d\u0065");_gaa !=nil {return _gaa ;};_cdf ,_ :=_bde ._age .Seek (0,_b .SEEK_CUR );_bde ._acea .PostScriptName ="";_bde .Skip (2);_fgacd :=_bde .ReadUShort ();_dff :=_bde .ReadUShort ();for _geeb :=uint16 (0);_geeb < _fgacd &&_bde ._acea .PostScriptName =="";_geeb ++{_bde .Skip (3*2);_gaaa :=_bde .ReadUShort ();_eeg :=_bde .ReadUShort ();_ebc :=_bde .ReadUShort ();if _gaaa ==6{_bde ._age .Seek (int64 (_cdf )+int64 (_dff )+int64 (_ebc ),_b .SEEK_SET );_dbea ,_gffc :=_bde .ReadStr (int (_eeg ));if _gffc !=nil {return _gffc ;};_dbea =_e .Replace (_dbea ,"\u0000","",-1);_ede ,_gffc :=_af .Compile ("\u005b\u0028\u0029\u007b\u007d\u003c\u003e\u0020\u002f%\u005b\u005c\u005d\u005d");if _gffc !=nil {return _gffc ;};_bde ._acea .PostScriptName =_ede .ReplaceAllString (_dbea ,"");};};if _bde ._acea .PostScriptName ==""{_be .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 ;};func _dcd ()StdFont {_dfa :=_efe .NewZapfDingbatsEncoder ();_ec :=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 (_ec ,_gaf ,_dfa );};var _ggf map[rune ]CharMetrics ;type Font interface{Encoder ()_efe .TextEncoder ;GetRuneMetrics (_fb rune )(CharMetrics ,bool );};const (FontWeightMedium FontWeight =iota ;FontWeightBold ;FontWeightRoman ;);func (_dcb *ttfParser )ReadULong ()(_bccg uint32 ){_c .Read (_dcb ._age ,_c .BigEndian ,&_bccg );return _bccg ;};func (_fcfc *ttfParser )Read32Fixed ()float64 {_beg :=float64 (_fcfc .ReadShort ());_dbeb :=float64 (_fcfc .ReadUShort ())/65536.0;return _beg +_dbeb ;};func (_eg StdFont )ToPdfObject ()_d .PdfObject {_bff :=_d .MakeDict ();_bff .Set ("\u0054\u0079\u0070\u0065",_d .MakeName ("\u0046\u006f\u006e\u0074"));_bff .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_d .MakeName ("\u0054\u0079\u0070e\u0031"));_bff .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_d .MakeName (_eg .Name ()));_bff .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_eg ._fcd .ToPdfObject ());return _d .MakeIndirectObject (_bff );};var _gc map[rune ]CharMetrics ;var _fcg map[rune ]CharMetrics ;func (_gab *ttfParser )ParsePost ()error {if _cgaa :=_gab .Seek ("\u0070\u006f\u0073\u0074");_cgaa !=nil {return _cgaa ;};_fcgb :=_gab .Read32Fixed ();_gab ._acea .ItalicAngle =_gab .Read32Fixed ();_gab ._acea .UnderlinePosition =_gab .ReadShort ();_gab ._acea .UnderlineThickness =_gab .ReadShort ();_gab ._acea .IsFixedPitch =_gab .ReadULong ()!=0;_gab .ReadULong ();_gab .ReadULong ();_gab .ReadULong ();_gab .ReadULong ();_be .Log .Trace ("\u0050a\u0072\u0073\u0065\u0050\u006f\u0073\u0074\u003a\u0020\u0066\u006fr\u006d\u0061\u0074\u0054\u0079\u0070\u0065\u003d\u0025\u0066",_fcgb );switch _fcgb {case 1.0:_gab ._acea .GlyphNames =_cbc ;case 2.0:_aea :=int (_gab .ReadUShort ());_gfc :=make ([]int ,_aea );_gab ._acea .GlyphNames =make ([]GlyphName ,_aea );_efa :=-1;for _bfd :=0;_bfd < _aea ;_bfd ++{_gbcg :=int (_gab .ReadUShort ());_gfc [_bfd ]=_gbcg ;if _gbcg <=0x7fff&&_gbcg > _efa {_efa =_gbcg ;};};var _bbfa []GlyphName ;if _efa >=len (_cbc ){_bbfa =make ([]GlyphName ,_efa -len (_cbc )+1);for _dfc :=0;_dfc < _efa -len (_cbc )+1;_dfc ++{_cgdf :=int (_gab .readByte ());_ccab ,_ccfd :=_gab .ReadStr (_cgdf );if _ccfd !=nil {return _ccfd ;};_bbfa [_dfc ]=GlyphName (_ccab );};};for _fcc :=0;_fcc < _aea ;_fcc ++{_deb :=_gfc [_fcc ];if _deb < len (_cbc ){_gab ._acea .GlyphNames [_fcc ]=_cbc [_deb ];}else if _deb >=len (_cbc )&&_deb <=32767{_gab ._acea .GlyphNames [_fcc ]=_bbfa [_deb -len (_cbc )];}else {_gab ._acea .GlyphNames [_fcc ]="\u002e\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064";};};case 2.5:_bdg :=make ([]int ,_gab ._acd );for _efdb :=0;_efdb < len (_bdg );_efdb ++{_efdf :=int (_gab .ReadSByte ());_bdg [_efdb ]=_efdb +1+_efdf ;};_gab ._acea .GlyphNames =make ([]GlyphName ,len (_bdg ));for _febc :=0;_febc < len (_gab ._acea .GlyphNames );_febc ++{_ffb :=_cbc [_bdg [_febc ]];_gab ._acea .GlyphNames [_febc ]=_ffb ;};case 3.0:_be .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:_be .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",_fcgb );};return nil ;};func (_ff *TtfType )String ()string {return _a .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",_ff .PostScriptName ,_ff .UnitsPerEm ,_ff .Bold ,_ff .ItalicAngle ,_ff .CapHeight ,len (_ff .Chars ),len (_ff .GlyphNames ));};var _gde map[rune ]CharMetrics ;func (_dg StdFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_gb ,_bc :=_dg ._aa [r ];return _gb ,_bc ;};var _gaf =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}};func (_aeb *ttfParser )ReadStr (length int )(string ,error ){_baac :=make ([]byte ,length );_abd ,_adee :=_aeb ._age .Read (_baac );if _adee !=nil {return "",_adee ;}else if _abd !=length {return "",_a .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 (_baac ),nil ;};func RegisterStdFont (name StdFontName ,fnc func ()StdFont ,aliases ...StdFontName ){if _ ,_edc :=_fc [name ];_edc {panic ("\u0066o\u006e\u0074\u0020\u0061l\u0072\u0065\u0061\u0064\u0079 \u0072e\u0067i\u0073\u0074\u0065\u0072\u0065\u0064\u003a "+string (name ));};_fc [name ]=fnc ;for _ ,_ee :=range aliases {RegisterStdFont (_ee ,fnc );};};func (_afb *ttfParser )ParseHmtx ()error {if _bcf :=_afb .Seek ("\u0068\u006d\u0074\u0078");_bcf !=nil {return _bcf ;};_afb ._acea .Widths =make ([]uint16 ,0,8);for _add :=uint16 (0);_add < _afb ._fgd ;_add ++{_afb ._acea .Widths =append (_afb ._acea .Widths ,_afb .ReadUShort ());_afb .Skip (2);};if _afb ._fgd < _afb ._acd &&_afb ._fgd > 0{_fbe :=_afb ._acea .Widths [_afb ._fgd -1];for _edcc :=_afb ._fgd ;_edcc < _afb ._acd ;_edcc ++{_afb ._acea .Widths =append (_afb ._acea .Widths ,_fbe );};};return nil ;};func init (){RegisterStdFont (CourierName ,_gg ,"\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 ,_ega ,"\u0043o\u0075r\u0069\u0065\u0072\u004e\u0065\u0077\u002c\u0042\u006f\u006c\u0064");RegisterStdFont (CourierObliqueName ,_cg ,"\u0043\u006f\u0075\u0072\u0069\u0065\u0072\u004e\u0065\u0077\u002c\u0049t\u0061\u006c\u0069\u0063");RegisterStdFont (CourierBoldObliqueName ,_ce ,"C\u006f\u0075\u0072\u0069er\u004ee\u0077\u002c\u0042\u006f\u006cd\u0049\u0074\u0061\u006c\u0069\u0063");};var _dfbf map[rune ]CharMetrics ;const (SymbolName =StdFontName ("\u0053\u0079\u006d\u0062\u006f\u006c");ZapfDingbatsName =StdFontName ("\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073"););var _abc =[]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 (_egfd *ttfParser )ParseOS2 ()error {if _fad :=_egfd .Seek ("\u004f\u0053\u002f\u0032");_fad !=nil {return _fad ;};_dcfe :=_egfd .ReadUShort ();_egfd .Skip (4*2);_egfd .Skip (11*2+10+4*4+4);_faf :=_egfd .ReadUShort ();_egfd ._acea .Bold =(_faf &32)!=0;_egfd .Skip (2*2);_egfd ._acea .TypoAscender =_egfd .ReadShort ();_egfd ._acea .TypoDescender =_egfd .ReadShort ();if _dcfe >=2{_egfd .Skip (3*2+2*4+2);_egfd ._acea .CapHeight =_egfd .ReadShort ();}else {_egfd ._acea .CapHeight =0;};return nil ;};func TtfParseFile (fileStr string )(TtfType ,error ){_cgc ,_acba :=_b .Open (fileStr );if _acba !=nil {return TtfType {},_acba ;};defer _cgc .Close ();return TtfParse (_cgc );};func _cfe ()StdFont {_dcf :=_efe .NewSymbolEncoder ();_fde :=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 (_fde ,_aeg ,_dcf );};func _bbb ()StdFont {_dd .Do (_cgd );_dcc :=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 (_dcc ,_efg );};var _efd =[]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 _gg ()StdFont {_dc .Do (_gbc );_ae :=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 (_ae ,_gde );};func (_gdf *ttfParser )parseCmapFormat0 ()error {_ecga ,_ebd :=_gdf .ReadStr (256);if _ebd !=nil {return _ebd ;};_efgcg :=[]byte (_ecga );_be .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",_gdf ._acea .String (),_ecga ,_efgcg );for _cdgg ,_fcf :=range _efgcg {_gdf ._acea .Chars [rune (_cdgg )]=GID (_fcf );};return nil ;};var _dd _ed .Once ;func init (){RegisterStdFont (HelveticaName ,_gfe ,"\u0041\u0072\u0069a\u006c");RegisterStdFont (HelveticaBoldName ,_cda ,"\u0041\u0072\u0069\u0061\u006c\u002c\u0042\u006f\u006c\u0064");RegisterStdFont (HelveticaObliqueName ,_bbb ,"\u0041\u0072\u0069a\u006c\u002c\u0049\u0074\u0061\u006c\u0069\u0063");RegisterStdFont (HelveticaBoldObliqueName ,_bcb ,"\u0041\u0072i\u0061\u006c\u002cB\u006f\u006c\u0064\u0049\u0074\u0061\u006c\u0069\u0063");};var _dad map[rune ]CharMetrics ;func (_faa *ttfParser )parseCmapSubtable10 (_cada int64 )error {if _faa ._acea .Chars ==nil {_faa ._acea .Chars =make (map[rune ]GID );};_faa ._age .Seek (int64 (_faa ._cggg ["\u0063\u006d\u0061\u0070"])+_cada ,_b .SEEK_SET );var _gcee ,_adfg uint32 ;_aaab :=_faa .ReadUShort ();if _aaab < 8{_gcee =uint32 (_faa .ReadUShort ());_adfg =uint32 (_faa .ReadUShort ());}else {_faa .ReadUShort ();_gcee =_faa .ReadULong ();_adfg =_faa .ReadULong ();};_be .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",_aaab ,_gcee ,_adfg );if _aaab !=0{return _ab .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");};_baeb ,_dbd :=_faa .ReadStr (256);if _dbd !=nil {return _dbd ;};_ebf :=[]byte (_baeb );for _cce ,_bbf :=range _ebf {_faa ._acea .Chars [rune (_cce )]=GID (_bbf );if _bbf !=0{_a .Printf ("\u0009\u0030\u0078\u002502\u0078\u0020\u279e\u0020\u0030\u0078\u0025\u0030\u0032\u0078\u003d\u0025\u0063\u000a",_cce ,_bbf ,rune (_bbf ));};};return nil ;};func NewStdFontWithEncoding (desc Descriptor ,metrics map[rune ]CharMetrics ,encoder _efe .TextEncoder )StdFont {var _dfb rune =0xA0;if _ ,_bd :=metrics [_dfb ];!_bd {metrics [_dfb ]=metrics [0x20];};return StdFont {_ba :desc ,_aa :metrics ,_fcd :encoder };};func (_caa *TtfType )NewEncoder ()_efe .TextEncoder {return _efe .NewTrueTypeFontEncoder (_caa .Chars )};func _ce ()StdFont {_dc .Do (_gbc );_baf :=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 (_baf ,_fcg );};func _edb ()StdFont {_fdd .Do (_adef );_abb :=Descriptor {Name :TimesItalicName ,Family :_cfa ,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 (_abb ,_gc );};var _cae map[rune ]CharMetrics ;var _dga map[rune ]CharMetrics ;var _gge =[]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};func (_fcgf *ttfParser )Seek (tag string )error {_cgf ,_aecg :=_fcgf ._cggg [tag ];if !_aecg {return _a .Errorf ("\u0074\u0061\u0062\u006ce \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u003a\u0020\u0025\u0073",tag );};_fcgf ._age .Seek (int64 (_cgf ),_b .SEEK_SET );return nil ;};func (_gce *ttfParser )ParseMaxp ()error {if _egd :=_gce .Seek ("\u006d\u0061\u0078\u0070");_egd !=nil {return _egd ;};_gce .Skip (4);_gce ._acd =_gce .ReadUShort ();return nil ;};var _efg map[rune ]CharMetrics ;type FontWeight int ;func init (){RegisterStdFont (SymbolName ,_cfe ,"\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 ,_dcd );};func (_bba *ttfParser )parseCmapVersion (_ccb int64 )error {_be .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",_ccb );if _bba ._acea .Chars ==nil {_bba ._acea .Chars =make (map[rune ]GID );};_bba ._age .Seek (int64 (_bba ._cggg ["\u0063\u006d\u0061\u0070"])+_ccb ,_b .SEEK_SET );var _fdcg ,_dfba uint32 ;_fgac :=_bba .ReadUShort ();if _fgac < 8{_fdcg =uint32 (_bba .ReadUShort ());_dfba =uint32 (_bba .ReadUShort ());}else {_bba .ReadUShort ();_fdcg =_bba .ReadULong ();_dfba =_bba .ReadULong ();};_be .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",_fgac ,_fdcg ,_dfba );switch _fgac {case 0:return _bba .parseCmapFormat0 ();case 6:return _bba .parseCmapFormat6 ();case 12:return _bba .parseCmapFormat12 ();default:_be .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",_fgac );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 _dag ()StdFont {_fdd .Do (_adef );_aaa :=Descriptor {Name :TimesBoldItalicName ,Family :_cfa ,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 (_aaa ,_dad );};func _cgd (){_cea =make (map[rune ]CharMetrics ,len (_gf ));_dfbf =make (map[rune ]CharMetrics ,len (_gf ));for _ceg ,_edg :=range _gf {_cea [_edg ]=CharMetrics {Wx :float64 (_efd [_ceg ])};_dfbf [_edg ]=CharMetrics {Wx :float64 (_ceaa [_ceg ])};};_efg =_cea ;_ggf =_dfbf ;};func _adef (){_dga =make (map[rune ]CharMetrics ,len (_gf ));_efgc =make (map[rune ]CharMetrics ,len (_gf ));_dad =make (map[rune ]CharMetrics ,len (_gf ));_gc =make (map[rune ]CharMetrics ,len (_gf ));for _bga ,_ege :=range _gf {_dga [_ege ]=CharMetrics {Wx :float64 (_daga [_bga ])};_efgc [_ege ]=CharMetrics {Wx :float64 (_gge [_bga ])};_dad [_ege ]=CharMetrics {Wx :float64 (_abc [_bga ])};_gc [_ege ]=CharMetrics {Wx :float64 (_bae [_bga ])};};};func init (){RegisterStdFont (TimesRomanName ,_cad ,"\u0054\u0069\u006d\u0065\u0073\u004e\u0065\u0077\u0052\u006f\u006d\u0061\u006e","\u0054\u0069\u006de\u0073");RegisterStdFont (TimesBoldName ,_dgg ,"\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 ,_edb ,"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 ,_dag ,"\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");};func _dgg ()StdFont {_fdd .Do (_adef );_ade :=Descriptor {Name :TimesBoldName ,Family :_cfa ,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 (_ade ,_efgc );};var _ Font =StdFont {};func (_dec *ttfParser )ParseCmap ()error {var _efb int64 ;if _fabc :=_dec .Seek ("\u0063\u006d\u0061\u0070");_fabc !=nil {return _fabc ;};_be .Log .Trace ("\u0050a\u0072\u0073\u0065\u0043\u006d\u0061p");_dec .ReadUShort ();_fac :=int (_dec .ReadUShort ());_eaec :=int64 (0);_geda :=int64 (0);for _gac :=0;_gac < _fac ;_gac ++{_ddee :=_dec .ReadUShort ();_aece :=_dec .ReadUShort ();_efb =int64 (_dec .ReadULong ());if _ddee ==3&&_aece ==1{_geda =_efb ;}else if _ddee ==1&&_aece ==0{_eaec =_efb ;};};if _eaec !=0{if _abcf :=_dec .parseCmapVersion (_eaec );_abcf !=nil {return _abcf ;};};if _geda !=0{if _bgf :=_dec .parseCmapSubtable31 (_geda );_bgf !=nil {return _bgf ;};};if _geda ==0&&_eaec ==0{_be .Log .Debug ("\u0074\u0074\u0066\u0050\u0061\u0072\u0073\u0065\u0072\u002e\u0050\u0061\u0072s\u0065\u0043\u006d\u0061\u0070\u002e \u004e\u006f\u0020\u0033\u0031\u0020\u006f\u0072\u0020\u0031\u0030\u0020\u0074a\u0062\u006c\u0065\u002e");};return nil ;};func (_fbd *ttfParser )parseCmapFormat6 ()error {_ggee :=int (_fbd .ReadUShort ());_ccf :=int (_fbd .ReadUShort ());_be .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",_fbd ._acea .String (),_ggee ,_ccf );for _bca :=0;_bca < _ccf ;_bca ++{_cadbf :=GID (_fbd .ReadUShort ());_fbd ._acea .Chars [rune (_bca +_ggee )]=_cadbf ;};return nil ;};func (_dde *ttfParser )ParseComponents ()error {if _baa :=_dde .ParseHead ();_baa !=nil {return _baa ;};if _abec :=_dde .ParseHhea ();_abec !=nil {return _abec ;};if _fef :=_dde .ParseMaxp ();_fef !=nil {return _fef ;};if _gfd :=_dde .ParseHmtx ();_gfd !=nil {return _gfd ;};if _ ,_fga :=_dde ._cggg ["\u006e\u0061\u006d\u0065"];_fga {if _gdg :=_dde .ParseName ();_gdg !=nil {return _gdg ;};};if _ ,_gdd :=_dde ._cggg ["\u004f\u0053\u002f\u0032"];_gdd {if _db :=_dde .ParseOS2 ();_db !=nil {return _db ;};};if _ ,_bbcb :=_dde ._cggg ["\u0070\u006f\u0073\u0074"];_bbcb {if _fca :=_dde .ParsePost ();_fca !=nil {return _fca ;};};if _ ,_bbd :=_dde ._cggg ["\u0063\u006d\u0061\u0070"];_bbd {if _efeb :=_dde .ParseCmap ();_efeb !=nil {return _efeb ;};};return nil ;};func (_cdfe *ttfParser )Skip (n int ){_cdfe ._age .Seek (int64 (n ),_b .SEEK_CUR )};func IsStdFont (name StdFontName )bool {_ ,_ca :=_fc [name ];return _ca };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"););var _dc _ed .Once ;func (_febe *ttfParser )ReadShort ()(_cadf int16 ){_c .Read (_febe ._age ,_c .BigEndian ,&_cadf );return _cadf ;};var _fc =make (map[StdFontName ]func ()StdFont );func (_daa *ttfParser )ReadUShort ()(_fbc uint16 ){_c .Read (_daa ._age ,_c .BigEndian ,&_fbc );return _fbc ;};const (_cfa ="\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 (_da StdFont )Name ()string {return string (_da ._ba .Name )};type ttfParser struct{_acea TtfType ;_age _ef .ReadSeeker ;_cggg map[string ]uint32 ;_fgd uint16 ;_acd uint16 ;};func TtfParse (r _ef .ReadSeeker )(TtfType ,error ){_abe :=&ttfParser {_age :r };return _abe .Parse ()};func _cg ()StdFont {_dc .Do (_gbc );_bcd :=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 (_bcd ,_acb );};func (_febf *ttfParser )readByte ()(_bgfa uint8 ){_c .Read (_febf ._age ,_c .BigEndian ,&_bgfa );return _bgfa ;};var _acb map[rune ]CharMetrics ;type StdFont struct{_ba Descriptor ;_aa map[rune ]CharMetrics ;_fcd _efe .TextEncoder ;};var _gf =[]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 (_fdc *ttfParser )ParseHhea ()error {if _dbe :=_fdc .Seek ("\u0068\u0068\u0065\u0061");_dbe !=nil {return _dbe ;};_fdc .Skip (4+15*2);_fdc ._fgd =_fdc .ReadUShort ();return nil ;};func (_cgae *ttfParser )ParseHead ()error {if _afe :=_cgae .Seek ("\u0068\u0065\u0061\u0064");_afe !=nil {return _afe ;};_cgae .Skip (3*4);_cgb :=_cgae .ReadULong ();if _cgb !=0x5F0F3CF5{_be .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",_cgae );};_cgae .Skip (2);_cgae ._acea .UnitsPerEm =_cgae .ReadUShort ();_cgae .Skip (2*8);_cgae ._acea .Xmin =_cgae .ReadShort ();_cgae ._acea .Ymin =_cgae .ReadShort ();_cgae ._acea .Xmax =_cgae .ReadShort ();_cgae ._acea .Ymax =_cgae .ReadShort ();return nil ;};func NewStdFontByName (name StdFontName )(StdFont ,bool ){_ad ,_ga :=_fc [name ];if !_ga {return StdFont {},false ;};return _ad (),true ;};func (_daf *ttfParser )Parse ()(TtfType ,error ){_cbf ,_fbb :=_daf .ReadStr (4);if _fbb !=nil {return TtfType {},_fbb ;};if _cbf =="\u004f\u0054\u0054\u004f"{return TtfType {},_a .Errorf ("\u0066\u006f\u006e\u0074s\u0020\u0062\u0061\u0073\u0065\u0064\u0020\u006f\u006e \u0050\u006f\u0073\u0074\u0053\u0063\u0072\u0069\u0070\u0074\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065s\u0020\u0061\u0072\u0065\u0020n\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0028\u0025\u0076\u0029",_d .ErrNotSupported );};if _cbf !="\u0000\u0001\u0000\u0000"&&_cbf !="\u0074\u0072\u0075\u0065"{_be .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",_cbf );};_bgg :=int (_daf .ReadUShort ());_daf .Skip (3*2);_daf ._cggg =make (map[string ]uint32 );var _aae string ;for _cadb :=0;_cadb < _bgg ;_cadb ++{_aae ,_fbb =_daf .ReadStr (4);if _fbb !=nil {return TtfType {},_fbb ;};_daf .Skip (4);_fea :=_daf .ReadULong ();_daf .Skip (4);_daf ._cggg [_aae ]=_fea ;};_be .Log .Trace (_cc (_daf ._cggg ));if _fbb =_daf .ParseComponents ();_fbb !=nil {return TtfType {},_fbb ;};return _daf ._acea ,nil ;};var _fdd _ed .Once ;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 _cad ()StdFont {_fdd .Do (_adef );_fba :=Descriptor {Name :TimesRomanName ,Family :_cfa ,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 (_fba ,_dga );};var _bae =[]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 (_gdc *TtfType )MakeEncoder ()(_efe .SimpleEncoder ,error ){_fdb :=make (map[_efe .CharCode ]GlyphName );for _fbf :=_efe .CharCode (0);_fbf <=256;_fbf ++{_ace :=rune (_fbf );_bec ,_bgc :=_gdc .Chars [_ace ];if !_bgc {continue ;};var _agb GlyphName ;if int (_bec )>=0&&int (_bec )< len (_gdc .GlyphNames ){_agb =_gdc .GlyphNames [_bec ];}else {_bcc :=rune (_bec );if _cb ,_cgg :=_efe .RuneToGlyph (_bcc );_cgg {_agb =_cb ;};};if _agb !=""{_fdb [_fbf ]=_agb ;};};if len (_fdb )==0{_be .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]",_gdc ,_gdc .Chars );};return _efe .NewCustomSimpleTextEncoder (_fdb ,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"););func (_cba *ttfParser )ReadSByte ()(_baff int8 ){_c .Read (_cba ._age ,_c .BigEndian ,&_baff );return _baff ;};func (_ac StdFont )GetMetricsTable ()map[rune ]CharMetrics {return _ac ._aa };type GlyphName =_efe .GlyphName ;func (_bgcb *ttfParser )parseCmapFormat12 ()error {_gee :=_bgcb .ReadULong ();_be .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",_bgcb ._acea .String (),_gee );for _fgb :=uint32 (0);_fgb < _gee ;_fgb ++{_agec :=_bgcb .ReadULong ();_cgdc :=_bgcb .ReadULong ();_fbbc :=_bgcb .ReadULong ();if _agec > 0x0010FFFF||(0xD800<=_agec &&_agec <=0xDFFF){return _ab .New ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u0068\u0061\u0072\u0061c\u0074\u0065\u0072\u0073\u0020\u0063\u006f\u0064\u0065\u0073");};if _cgdc < _agec ||_cgdc > 0x0010FFFF||(0xD800<=_cgdc &&_cgdc <=0xDFFF){return _ab .New ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u0068\u0061\u0072\u0061c\u0074\u0065\u0072\u0073\u0020\u0063\u006f\u0064\u0065\u0073");};for _ggb :=uint32 (0);_ggb <=_cgdc -_agec ;_ggb ++{_eaf :=_fbbc +_ggb ;if _agec +_ggb > 0x10FFFF{_be .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");};_bgcb ._acea .Chars [rune (_fgb +_agec )]=GID (_eaf );};};return nil ;};var _daga =[]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 (_ea StdFont )Encoder ()_efe .TextEncoder {return _ea ._fcd };func _gbc (){const _edce =600;_gde =make (map[rune ]CharMetrics ,len (_gf ));for _ ,_cf :=range _gf {_gde [_cf ]=CharMetrics {Wx :_edce };};_cae =_gde ;_fcg =_gde ;_acb =_gde ;};func NewFontFile2FromPdfObject (obj _d .PdfObject )(TtfType ,error ){obj =_d .TraceToDirectObject (obj );_ddd ,_ge :=obj .(*_d .PdfObjectStream );if !_ge {_be .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 {},_d .ErrTypeError ;};_cef ,_ged :=_d .DecodeStream (_ddd );if _ged !=nil {return TtfType {},_ged ;};_beb :=ttfParser {_age :_g .NewReader (_cef )};return _beb .Parse ();};func (_cdg StdFont )Descriptor ()Descriptor {return _cdg ._ba };func _gfe ()StdFont {_dd .Do (_cgd );_aba :=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 (_aba ,_cea );};func _ega ()StdFont {_dc .Do (_gbc );_gd :=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 (_gd ,_cae );};func (_fbfd *TtfType )MakeToUnicode ()*_fe .CMap {_eb :=make (map[_fe .CharCode ]rune );if len (_fbfd .GlyphNames )==0{return _fe .NewToUnicodeCMap (_eb );};for _egeg ,_ddg :=range _fbfd .Chars {_gaff :=_fe .CharCode (_egeg );_cga :=_fbfd .GlyphNames [_ddg ];_ecg ,_cac :=_efe .GlyphToRune (_cga );if !_cac {_be .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",_egeg ,_cga );_ecg =_efe .MissingCodeRune ;};_eb [_gaff ]=_ecg ;};return _fe .NewToUnicodeCMap (_eb );};var _cbc =[]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 (_gcd *ttfParser )parseCmapSubtable31 (_deg int64 )error {_fab :=make ([]rune ,0,8);_aca :=make ([]rune ,0,8);_cca :=make ([]int16 ,0,8);_egf :=make ([]uint16 ,0,8);_gcd ._acea .Chars =make (map[rune ]GID );_gcd ._age .Seek (int64 (_gcd ._cggg ["\u0063\u006d\u0061\u0070"])+_deg ,_b .SEEK_SET );_cgce :=_gcd .ReadUShort ();if _cgce !=4{return _a .Errorf ("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\u0025v\u0029",_cgce ,_d .ErrNotSupported );};_gcd .Skip (2*2);_bffa :=int (_gcd .ReadUShort ()/2);_gcd .Skip (3*2);for _efgb :=0;_efgb < _bffa ;_efgb ++{_aca =append (_aca ,rune (_gcd .ReadUShort ()));};_gcd .Skip (2);for _cdd :=0;_cdd < _bffa ;_cdd ++{_fab =append (_fab ,rune (_gcd .ReadUShort ()));};for _aec :=0;_aec < _bffa ;_aec ++{_cca =append (_cca ,_gcd .ReadShort ());};_gced ,_ :=_gcd ._age .Seek (int64 (0),_b .SEEK_CUR );for _aef :=0;_aef < _bffa ;_aef ++{_egf =append (_egf ,_gcd .ReadUShort ());};for _cfc :=0;_cfc < _bffa ;_cfc ++{_ebe :=_fab [_cfc ];_abg :=_aca [_cfc ];_agg :=_cca [_cfc ];_gff :=_egf [_cfc ];if _gff > 0{_gcd ._age .Seek (_gced +2*int64 (_cfc )+int64 (_gff ),_b .SEEK_SET );};for _afd :=_ebe ;_afd <=_abg ;_afd ++{if _afd ==0xFFFF{break ;};var _bbdc int32 ;if _gff > 0{_bbdc =int32 (_gcd .ReadUShort ());if _bbdc > 0{_bbdc +=int32 (_agg );};}else {_bbdc =int32 (_afd )+int32 (_agg );};if _bbdc >=65536{_bbdc -=65536;};if _bbdc > 0{_gcd ._acea .Chars [_afd ]=GID (_bbdc );};};};return nil ;};func NewStdFont (desc Descriptor ,metrics map[rune ]CharMetrics )StdFont {return NewStdFontWithEncoding (desc ,metrics ,_efe .NewStandardEncoder ());};var _efgc map[rune ]CharMetrics ;func _bcb ()StdFont {_dd .Do (_cgd );_de :=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 (_de ,_ggf );};var _ceaa =[]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 _aeg =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 _cc (_cgcc map[string ]uint32 )string {var _caab []string ;for _bbc :=range _cgcc {_caab =append (_caab ,_bbc );};_ag .Slice (_caab ,func (_bce ,_eee int )bool {return _cgcc [_caab [_bce ]]< _cgcc [_caab [_eee ]]});_adf :=[]string {_a .Sprintf ("\u0054\u0072\u0075\u0065Ty\u0070\u0065\u0020\u0074\u0061\u0062\u006c\u0065\u0073\u003a\u0020\u0025\u0064",len (_cgcc ))};for _ ,_gga :=range _caab {_adf =append (_adf ,_a .Sprintf ("\u0009%\u0071\u0020\u0025\u0035\u0064",_gga ,_cgcc [_gga ]));};return _e .Join (_adf ,"\u000a");};type StdFontName string ;func (_bg CharMetrics )String ()string {return _a .Sprintf ("<\u0025\u002e\u0031\u0066\u002c\u0025\u002e\u0031\u0066\u003e",_bg .Wx ,_bg .Wy );};