// // 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 convertutils ;import (_ac "bytes";_bc "errors";_fc "fmt";_fcb "github.com/unidoc/unioffice/common/logger";_e "github.com/unidoc/unioffice/measurement";_ca "github.com/unidoc/unioffice/schema/soo/dml";_ace "github.com/unidoc/unioffice/schema/soo/dml/chart";_gdc "github.com/unidoc/unioffice/spreadsheet/format";_df "github.com/unidoc/unipdf/v3/creator";_beg "github.com/unidoc/unipdf/v3/model";_af "github.com/unidoc/unipdf/v3/render";_gg "github.com/unidoc/unitype";_ad "image";_b "math";_be "os";_d "sort";_gd "strconv";_f "strings";_g "sync";_c "unicode";);func _ebbd (_fbb ,_dfgd ,_cddb float64 )float64 {if _fbb *6< 1{return _cddb +(_dfgd -_cddb )*6*_fbb ;}else if _fbb *2< 1{return _dfgd ;}else if _fbb *3< 2{return _cddb +(_dfgd -_cddb )*(2.0/3.0-_fbb )*6;}else {return _cddb ;};};func _bdb (_aec float64 )float64 {return _aec *_e .Millimeter };func _aee (_dcb uint8 ,_eagg float64 )string {_acfe :=float64 (_dcb );return _fc .Sprintf ("\u0025\u0030\u0032\u0078",int (_acfe *_eagg ));};func GetDataFromXfrm (xfrm *_ca .CT_Transform2D )(float64 ,float64 ,float64 ,float64 ){var _deaf ,_faca ,_addg ,_ggb float64 ;if _gdf :=xfrm .Off ;_gdf !=nil {_deaf =_e .FromEMU (FromSTCoordinate (_gdf .XAttr ));_faca =_e .FromEMU (FromSTCoordinate (_gdf .YAttr ));};if _bgdf :=xfrm .Ext ;_bgdf !=nil {_addg =_e .FromEMU (_bgdf .CxAttr );_ggb =_e .FromEMU (_bgdf .CyAttr );};return _deaf ,_faca ,_addg ,_ggb ;};func GetOpacityFromColorTransform (trs []*_ca .EG_ColorTransform )float64 {for _ ,_baaf :=range trs {if _baaf !=nil {if _dbdd :=_baaf .Alpha ;_dbdd !=nil {if _adc :=_dbdd .ValAttr .ST_PositiveFixedPercentageDecimal ;_adc !=nil {return float64 (*_adc )/100000;};};};};return 1.0;};var StdFontsMap =map[string ][]string {"\u0048e\u006c\u0076\u0065\u0074\u0069\u0063a":[]string {"\u0048e\u006c\u0076\u0065\u0074\u0069\u0063a","\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061-\u0042\u006f\u006c\u0064","\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061\u002d\u004f\u0062l\u0069\u0071\u0075\u0065","H\u0065\u006c\u0076\u0065ti\u0063a\u002d\u0042\u006f\u006c\u0064O\u0062\u006c\u0069\u0071\u0075\u0065"},"\u0043o\u0075\u0072\u0069\u0065\u0072":[]string {"\u0043o\u0075\u0072\u0069\u0065\u0072","\u0043\u006f\u0075r\u0069\u0065\u0072\u002d\u0042\u006f\u006c\u0064","\u0043o\u0075r\u0069\u0065\u0072\u002d\u004f\u0062\u006c\u0069\u0071\u0075\u0065","\u0043\u006f\u0075\u0072ie\u0072\u002d\u0042\u006f\u006c\u0064\u004f\u0062\u006c\u0069\u0071\u0075\u0065"},"\u0054i\u006de\u0073\u0020\u004e\u0065\u0077\u0020\u0052\u006f\u006d\u0061\u006e":[]string {"T\u0069\u006d\u0065\u0073\u002d\u0052\u006f\u006d\u0061\u006e","\u0054\u0069\u006d\u0065\u0073\u002d\u0042\u006f\u006c\u0064","\u0054\u0069\u006de\u0073\u002d\u0049\u0074\u0061\u006c\u0069\u0063","\u0054\u0069m\u0065\u0073\u002dB\u006f\u006c\u0064\u0049\u0074\u0061\u006c\u0069\u0063"},"\u0064e\u0066\u0061\u0075\u006c\u0074":[]string {"\u0048e\u006c\u0076\u0065\u0074\u0069\u0063a","\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061-\u0042\u006f\u006c\u0064","\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061\u002d\u004f\u0062l\u0069\u0071\u0075\u0065","H\u0065\u006c\u0076\u0065ti\u0063a\u002d\u0042\u006f\u006c\u0064O\u0062\u006c\u0069\u0071\u0075\u0065"}};var _ebag =map[string ]FontStyle {"\u0052e\u0067\u0075\u006c\u0061\u0072":FontStyle_Regular ,"\u0042\u006f\u006c\u0064":FontStyle_Bold ,"\u0049\u0074\u0061\u006c\u0069\u0063":FontStyle_Italic ,"B\u006f\u006c\u0064\u0020\u0049\u0074\u0061\u006c\u0069\u0063":FontStyle_BoldItalic };type serCategory struct{_gda string ;_aafa []serValue ;};func MakeBlockFromChartSpace (cs *_ace .ChartSpace ,width ,height float64 ,theme *_ca .Theme )(*_df .Block ,error ){_dba ,_aaa :=_dee (cs ,width ,height ,theme ,false );if _aaa !=nil {return nil ,_aaa ;};_dgb ,_aaa :=GetPageFromCreator (_dba );if _aaa !=nil {return nil ,_aaa ;};_gc ,_aaa :=_df .NewBlockFromPage (_dgb );if _aaa !=nil {return nil ,_aaa ;};return _gc ,nil ;};var _fcec =_bdb (0.5);func AdjustColorByShade (colorStr string ,shade float64 )string {var _acee ,_bdde ,_gade uint8 ;_afe ,_ :=_fc .Sscanf (colorStr ,"\u0025\u0030\u0032x\u0025\u0030\u0032\u0078\u0025\u0030\u0032\u0078",&_acee ,&_bdde ,&_gade );if _afe !=3{return "";};return _aee (_acee ,shade )+_aee (_bdde ,shade )+_aee (_gade ,shade );};func DrawRectangle (c *_df .Creator ,r *Rectangle ,w float64 ,color _df .Color ){if color ==nil {return ;};DrawLine (c ,r .Left ,r .Top ,r .Right ,r .Top ,w ,color );DrawLine (c ,r .Left ,r .Top ,r .Left ,r .Bottom ,w ,color );DrawLine (c ,r .Left ,r .Bottom ,r .Right ,r .Bottom ,w ,color );DrawLine (c ,r .Right ,r .Top ,r .Right ,r .Bottom ,w ,color );};func _bead (_dcce uint8 ,_ecfa float64 )string {_ffa :=float64 (_dcce );var _dga float64 ;if _ecfa < 0{_dga =_ffa *(1+_ecfa );}else {_dga =_ffa +(255-_ffa )*_ecfa ;};return _fc .Sprintf ("\u0025\u0030\u0032\u0078",int (_dga ));};func MakeBlockFromCreator (c *_df .Creator )(*_df .Block ,error ){_eecg ,_cga :=GetPageFromCreator (c );if _cga !=nil {return nil ,_cga ;};_bfb ,_cga :=_df .NewBlockFromPage (_eecg );if _cga !=nil {return nil ,_cga ;};return _bfb ,nil ;};var _eebe =fontsMap {_feaf :&_g .Mutex {},_eefa :map[string ]map[FontStyle ]*_beg .PdfFont {}};const (FontStyle_Regular FontStyle =0;FontStyle_Bold FontStyle =1;FontStyle_Italic FontStyle =2;FontStyle_BoldItalic FontStyle =3;);func (_fdae *creatorContext )drawRectangleWithProps (_acgd *_ca .CT_ShapeProperties ,_ggca ,_ecdb ,_fabb ,_dgde float64 ,_adac bool ){_fcdg :=_fdae ._cag .NewRectangle (_ggca ,_ecdb ,_fabb ,_dgde );if _acgd ==nil {if _adac {_fcdg .SetBorderWidth (_baf );}else {return ;};}else {_dfdd :=_fdae .getPdfColorFromSolidFill (_acgd .SolidFill );if _dfdd !=nil {_fcdg .SetFillColor (_dfdd );};if _cace :=_acgd .Ln ;_cace !=nil {if _adag :=_cace .WAttr ;_adag !=nil {_dcbd :=_e .FromEMU (int64 (*_adag ));_fcdg .SetBorderWidth (_dcbd );if _bdegd :=_cace .SolidFill ;_bdegd !=nil {_fgdd :=_fdae .getPdfColorFromSolidFill (_bdegd );if _fgdd !=nil {_fcdg .SetBorderColor (_fgdd );};};}else {_fcdg .SetBorderWidth (0);};};};_fdae ._cag .Draw (_fcdg );};func _dee (_cgb *_ace .ChartSpace ,_fgb ,_aca float64 ,_fac *_ca .Theme ,_aad bool )(*_df .Creator ,error ){_edd :=1.0;if _aad {_edd =8.0;};_fadb :=&Rectangle {};_agd :=&Rectangle {Top :_fadb .Top ,Bottom :_aca -_fadb .Bottom ,Left :_fadb .Left ,Right :_fgb -_fadb .Right };_bcb :=MakeTempCreator (_fgb *_edd +1,_aca *_edd +1);_aaae :=&creatorContext {_cag :_bcb ,_fbe :_fac ,_bcfb :_edd };var _bad bool ;if _cba :=_cgb .Chart ;_cba !=nil {_cbec :=_cba .PlotArea ;if _cbec ==nil {return nil ,_bc .New ("\u004e\u006f\u0020p\u006c\u006f\u0074\u0020\u0061\u0072\u0065\u0061");};_fag :=&Rectangle {Top :_bdb (10),Bottom :_agd .Bottom -_bdb (15),Left :_bdb (10),Right :_agd .Right -_bdb (10)};var _bea *Rectangle ;_cfb :=_cba .Legend ;if _cfb !=nil {_dbb :=_cfb .Overlay !=nil &&_cfb .Overlay .ValAttr !=nil &&*_cfb .Overlay .ValAttr ;if _gdcc :=_cfb .LegendPos ;_gdcc !=nil {switch _gdcc .ValAttr {case _ace .ST_LegendPosTr :if !_dbb {_fag =&Rectangle {Top :_bdb (25),Bottom :_agd .Bottom -_bdb (10),Left :_bdb (10),Right :_agd .Right -_bdb (25)};};_bea =&Rectangle {Top :_bdb (2.5),Bottom :_bdb (22.5),Left :_agd .Right -_bdb (22.5),Right :_agd .Right -_bdb (2.5)};case _ace .ST_LegendPosT :_bea =&Rectangle {Top :_bdb (2.5),Bottom :_bdb (7.5),Left :(_agd .Right -_agd .Left )*0.25,Right :(_agd .Right -_agd .Left )*0.75};if !_dbb {_fag =&Rectangle {Top :_bdb (12.5),Bottom :_agd .Bottom -_bdb (15),Left :_bdb (10),Right :_agd .Right -_bdb (5)};};_bad =true ;case _ace .ST_LegendPosB :_bea =&Rectangle {Top :_agd .Bottom -_bdb (7.5),Bottom :_agd .Bottom -_bdb (2.5),Left :(_agd .Right -_agd .Left )*0.25,Right :(_agd .Right -_agd .Left )*0.75};if !_dbb {_fag =&Rectangle {Top :_bdb (5),Bottom :_agd .Bottom -_bdb (15),Left :_bdb (10),Right :_agd .Right -_bdb (5)};};_bad =true ;case _ace .ST_LegendPosR :_bea =&Rectangle {Top :(_agd .Bottom -_agd .Top )/2-_bdb (10),Bottom :(_agd .Bottom -_agd .Top )/2+_bdb (10),Left :_agd .Right -_bdb (22.5),Right :_agd .Right -_bdb (2.5)};if !_dbb {_fag =&Rectangle {Top :_bdb (5),Bottom :_agd .Bottom -_bdb (12.5),Left :_bdb (10),Right :_agd .Right -_bdb (25)};};case _ace .ST_LegendPosL :_bea =&Rectangle {Top :(_agd .Bottom -_agd .Top )/2-_bdb (10),Bottom :(_agd .Bottom -_agd .Top )/2+_bdb (10),Left :_bdb (2.5),Right :_bdb (22.5)};if !_dbb {_fag =&Rectangle {Top :_bdb (5),Bottom :_agd .Bottom -_bdb (12.5),Left :_bdb (30),Right :_agd .Right -_bdb (5)};};default:_bea =&Rectangle {Top :(_agd .Bottom -_agd .Top )/2-_bdb (10),Bottom :(_agd .Bottom -_agd .Top )/2+_bdb (10),Left :_agd .Right -_bdb (25),Right :_agd .Right -_bdb (5)};if !_dbb {_fag =&Rectangle {Top :_bdb (5),Bottom :_agd .Bottom -_bdb (12.5),Left :_bdb (100),Right :_agd .Right -_bdb (25)};};};};};_fag .scale (_edd );_aaae .drawBorderWithProps (_cbec .SpPr ,_fag ,_baf );_ge :=[]*legendItem {};var _fgc error ;_dgf :=_cbec .CChoice ;for _ ,_dad :=range _cbec .Choice {if _cgc :=_dad .BarChart ;_cgc !=nil {_ge ,_fgc =_aaae .drawBarChart (_cgc ,_fag ,_dgf );if _fgc !=nil {return nil ,_fgc ;};};};if _cfb !=nil {_bea .scale (_edd );_aaae .drawBorderWithProps (_cfb .SpPr ,_bea ,_baf );if len (_ge )!=0{_aaae .drawLegend (_bea ,_ge ,_bad );};};};_agd .scale (_edd );_aaae .drawBorderWithProps (_cgb .SpPr ,_agd ,_baf );return _bcb ,nil ;};func _bgd (_ageg ,_ffca ,_ebgc uint8 )(float64 ,float64 ,float64 ){_aef ,_bff ,_bbdc :=float64 (_ageg )/255,float64 (_ffca )/255,float64 (_ebgc )/255;_dfcb :=_aef ;if _bff < _dfcb {_dfcb =_bff ;};if _bbdc < _dfcb {_dfcb =_bbdc ;};var _bgc ,_cbdc bool ;_caa :=_aef ;if _bff > _caa {_caa =_bff ;_bgc =true ;};if _bbdc > _caa {_caa =_bbdc ;_bgc =false ;_cbdc =true ;};_eef :=(_dfcb +_caa )/2;var _fae float64 ;if _dfcb !=_caa {if _eef <=0.5{_fae =(_caa -_dfcb )/(_caa +_dfcb );}else {_fae =(_caa -_dfcb )/(2.0-_caa -_dfcb );};};var _daec float64 ;if _dfcb !=_caa {if _bgc {_daec =2.0+(_bbdc -_aef )/(_caa -_dfcb );}else if _cbdc {_daec =4.0+(_aef -_bff )/(_caa -_dfcb );}else {_daec =(_bff -_bbdc )/(_caa -_dfcb );};_daec *=60;if _daec < 0{_daec +=360;};};return _daec ,_fae ,_eef ;};func CropImageByRect (sourceImg _ad .Image ,rect _ad .Rectangle )_ad .Image {_fgae ,_fgcc ,_fbec ,_deab :=rect .Min .X ,rect .Min .Y ,rect .Max .X ,rect .Max .Y ;_afab :=_ad .NewNRGBA (_ad .Rect (0,0,_fbec -_fgae ,_deab -_fgcc ));for _ega :=_fgae ;_ega < _fbec ;_ega ++{for _ceda :=_fgcc ;_ceda < _deab ;_ceda ++{_afab .Set (_ega -_fgae ,_ceda -_fgcc ,sourceImg .At (_ega ,_ceda ));};};return _afab ;};func _dbf (_bgba _ca .ST_SchemeColorVal ,_fba *_ca .Theme )string {if _dgg :=_fba .ThemeElements ;_dgg !=nil {if _gff :=_dgg .ClrScheme ;_gff !=nil {switch _bgba {case _ca .ST_SchemeColorValLt1 :return GetColorStringFromDmlColor (_gff .Lt1 );case _ca .ST_SchemeColorValDk1 ,_ca .ST_SchemeColorValTx1 :return GetColorStringFromDmlColor (_gff .Dk1 );case _ca .ST_SchemeColorValLt2 :return GetColorStringFromDmlColor (_gff .Lt2 );case _ca .ST_SchemeColorValDk2 :return GetColorStringFromDmlColor (_gff .Dk2 );case _ca .ST_SchemeColorValAccent1 :return GetColorStringFromDmlColor (_gff .Accent1 );case _ca .ST_SchemeColorValAccent2 :return GetColorStringFromDmlColor (_gff .Accent2 );case _ca .ST_SchemeColorValAccent3 :return GetColorStringFromDmlColor (_gff .Accent3 );case _ca .ST_SchemeColorValAccent4 :return GetColorStringFromDmlColor (_gff .Accent4 );case _ca .ST_SchemeColorValAccent5 :return GetColorStringFromDmlColor (_gff .Accent5 );case _ca .ST_SchemeColorValAccent6 :return GetColorStringFromDmlColor (_gff .Accent6 );};};};return "";};func _cccdf (_bbe string )error {if !_f .HasSuffix (_bbe ,"\u002e\u0074\u0074\u0066"){_fcb .Log .Debug ("\u0055\u006es\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0066\u0069\u006c\u0065\u0020\u0066\u006f\u0072ma\u0074\u002e");return _fc .Errorf ("\u0055\u006e\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020f\u006f\u006e\u0074\u0020\u0066\u0069l\u0065\u0020\u0066\u006f\u0072m\u0061\u0074\u002c\u0020\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u006cy\u0020\u006f\u006e\u006c\u0079\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0020\u0054T\u0046\u0020\u0066\u006f\u006e\u0074\u0020\u0066i\u006c\u0065\u002e");};_efg ,_ggd :=_gg .ParseFile (_bbe );if _ggd !=nil {_fcb .Log .Debug ("\u0043a\u006e\u006e\u006f\u0074\u0020\u0070\u0061\u0072\u0073\u0065\u0020T\u0054\u0046\u0020\u0066\u0069\u006c\u0065\u0020\u0025\u0073",_ggd );return _ggd ;};_deb ,_ggd :=_beg .NewCompositePdfFontFromTTFFile (_bbe );if _ggd !=nil {return _ggd ;};_fed :=_efg .GetNameRecords ();for _ ,_fccf :=range _fed {_ged :=_fccf [1];if _ged ==""{return _fc .Errorf ("\u004e\u006f\u0020\u0066\u006fn\u0074\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u0069\u006e\u0066\u006fr\u006d\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0066\u0069\u006c\u0065\u0020\u0025\u0073",_bbe );};_eee :=make ([]byte ,0);for _efa :=0;_efa < len (_ged );_efa ++{if _ged [_efa ]==39||_ged [_efa ]==92{continue ;};_bbb :=4;if _efa +_bbb < len (_ged ){if _ged [_efa :_efa +_bbb ]=="\u0000"{_efa =_efa +_bbb +1;continue ;};};_eee =append (_eee ,_ged [_efa ]);};_ged =_f .Replace (string (_eee ),"\u0078\u0030\u0030","",-1);_fegc :=_fccf [2];if _fegc ==""{return _fc .Errorf ("N\u006f\u0020\u0073\u0074\u0079\u006ce\u0020\u0069\u006e\u0066\u006f\u0072m\u0061\u0074\u0069\u006f\u006e\u0020\u0069n\u0020\u0074\u0068\u0065\u0020\u0066\u0069\u006c\u0065\u0020%\u0073",_bbe );};_eee =make ([]byte ,0);for _eaaf :=0;_eaaf < len (_fegc );_eaaf ++{if _fegc [_eaaf ]==39||_fegc [_eaaf ]==92{continue ;};_ccbf :=4;if _eaaf +_ccbf < len (_fegc ){if _fegc [_eaaf :_eaaf +_ccbf ]=="\u0000"{_eaaf =_eaaf +_ccbf +1;continue ;};};_eee =append (_eee ,_fegc [_eaaf ]);};_fegc =_f .Replace (string (_eee ),"\u0078\u0030\u0030","",-1);RegisterFont (_ged ,_ebag [_fegc ],_deb );};return nil ;};func GetPageFromCreator (c *_df .Creator )(*_beg .PdfPage ,error ){_geac :=_ac .NewBuffer ([]byte {});_aeag :=c .Write (_geac );if _aeag !=nil {return nil ,_aeag ;};_fbeg :=_ac .NewReader (_geac .Bytes ());_cge ,_aeag :=_beg .NewPdfReader (_fbeg );if _aeag !=nil {return nil ,_aeag ;};return _cge .GetPage (1);};var _acf =_bdb (1.5);func (_fagg FontStyle )String ()string {return []string {"\u0052e\u0067\u0075\u006c\u0061\u0072","\u0042\u006f\u006c\u0064","\u0049\u0074\u0061\u006c\u0069\u0063","\u0042\u006f\u006c\u0064\u0049\u0074\u0061\u006c\u0069\u0063"}[int (_fagg )];};func (_aea barSerByOrder )Swap (i ,j int ){_aea [i ],_aea [j ]=_aea [j ],_aea [i ]};func MakeTempCreator (width ,height float64 )*_df .Creator {_agaf :=_df .New ();_agaf .SetPageSize (_df .PageSize {width ,height });_agaf .SetPageMargins (0,0,0,0);return _agaf ;};var _bec =_bdb (1);func RegisterFontsFromFiles (files []string )error {for _ ,_dbfd :=range files {if _f .HasSuffix (_dbfd ,"\u002e\u0074\u0074\u0066"){_dbgd :=_cccdf (_dbfd );if _dbgd !=nil {_fcb .Log .Debug ("\u0075\u006ea\u0062\u006c\u0065\u0020\u0074o\u0020\u0070\u0072\u006f\u0063e\u0073\u0073\u0020\u0061\u006e\u0064\u0020\u0072\u0065\u0067\u0069\u0073\u0074\u0065\u0072\u0020\u0066\u006f\u006e\u0074\u0020\u0066\u0072\u006f\u006d\u0020\u0054\u0054\u0046\u0020\u0066\u0069\u006c\u0065\u0020\u0025\u0073",_dbgd );continue ;};};};return nil ;};func RegisterFont (name string ,style FontStyle ,font *_beg .PdfFont ){_eebe ._feaf .Lock ();if _eebe ._eefa [name ]==nil {_eebe ._eefa [name ]=map[FontStyle ]*_beg .PdfFont {};};_eebe ._eefa [name ][style ]=font ;_eebe ._feaf .Unlock ();};const DefaultFontSize =12.0;type legendItem struct{_age string ;_eda *_ca .CT_ShapeProperties ;};func GetRegisteredFont (name string ,style FontStyle )*_beg .PdfFont {_eebe ._feaf .Lock ();defer _eebe ._feaf .Unlock ();if _abab ,_faac :=_eebe ._eefa [name ];_faac {if _dggg ,_gdef :=_abab [style ];_gdef {return _dggg ;};};return nil ;};type serValue struct{_ede string ;_dda float64 ;_cbf *_ca .CT_ShapeProperties ;};func (_cceb *Rectangle )Translate (x ,y float64 ){_cceb .Left +=x ;_cceb .Right +=x ;_cceb .Top +=y ;_cceb .Bottom +=y ;};var _gadg =_bdb (1.5);func (_dd *creatorContext )drawBarChart (_fe *_ace .CT_BarChart ,_eb *Rectangle ,_dc *_ace .CT_PlotAreaChoice1 )([]*legendItem ,error ){var _gdg bool ;if _ab :=_fe .BarDir ;_ab !=nil {_gdg =_ab .ValAttr ==_ace .ST_BarDirBar ;};_adf :=_fe .Ser ;_d .Sort (barSerByOrder (_adf ));_cg :=map[string ]serCategory {};_fb :=[]string {};_aa :=[]*legendItem {};_bce :=_b .Inf (1);_gf :=_b .Inf (-1);for _ ,_acec :=range _adf {var _bcc string ;if _fd :=_acec .Tx ;_fd !=nil {if _ggc :=_fd .Choice ;_ggc !=nil {if _ggc .V !=nil {_bcc =*_ggc .V ;}else if _bf :=_ggc .StrRef ;_bf !=nil {if _fad :=_bf .StrCache ;_fad !=nil {for _ ,_fcd :=range _fad .Pt {_bcc =_fcd .V ;};};};};};if _eac :=_acec .Cat ;_eac !=nil {if _ga :=_eac .Choice ;_ga !=nil {if _gfa :=_ga .StrRef ;_gfa !=nil {if _eg :=_gfa .StrCache ;_eg !=nil {for _ ,_fg :=range _eg .Pt {_egb :=_fg .V ;if _ ,_ff :=_cg [_egb ];!_ff {_cg [_egb ]=serCategory {_gda :_egb ,_aafa :[]serValue {}};_fb =append (_fb ,_egb );};};};}else if _ebc :=_ga .NumRef ;_ebc !=nil {if _eaf :=_ebc .NumCache ;_eaf !=nil {var _fea string ;if _eaf .FormatCode !=nil {_fea =*_eaf .FormatCode ;};for _ ,_bef :=range _eaf .Pt {var _ffe string ;if _bef .FormatCodeAttr ==nil {_ffe =_fea ;}else {_ffe =*_bef .FormatCodeAttr ;};var _aaf string ;_ffb ,_da :=_gd .ParseFloat (_bef .V ,64);if _da !=nil {_aaf =_bef .V ;}else {_aaf =_gdc .Number (_ffb ,_ffe );};if _ ,_fgf :=_cg [_aaf ];!_fgf {_cg [_aaf ]=serCategory {_gda :_aaf ,_aafa :[]serValue {}};_fb =append (_fb ,_aaf );};};};};};};if _cd :=_acec .Val ;_cd !=nil {if _ag :=_cd .Choice ;_ag !=nil {if _ebb :=_ag .NumRef ;_ebb !=nil {if _dfa :=_ebb .NumCache ;_dfa !=nil {for _begb ,_ce :=range _dfa .Pt {_ggf ,_ee :=_gd .ParseFloat (_ce .V ,64);if _ee !=nil {_ggf =0;_fcb .Log .Debug ("\u0070a\u0072s\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",_ee );};if _ggf > _gf {_gf =_ggf ;};if _ggf < _bce {_bce =_ggf ;};_gaf :=_cg [_fb [_begb ]];_gaf ._aafa =append (_gaf ._aafa ,serValue {_ede :_bcc ,_dda :_ggf ,_cbf :_acec .SpPr });_cg [_fb [_begb ]]=_gaf ;};};};};};_aa =append (_aa ,&legendItem {_age :_bcc ,_eda :_acec .SpPr });};var _aag float64 ;var _daa ,_dg float64 ;if _gf ==0&&_bce ==0{_aag =0.2;_dg =0;_daa =1;}else {var _bd float64 ;if _cac :=_b .Abs (_bce );_gf < _cac {_bd =_cac ;}else {_bd =_gf ;};_cec :=_b .Pow (10,_b .Floor (_b .Log10 (_bd )));_fef :=_bd /_cec ;if _fef >=1.715&&_fef < 4.29{_aag =0.5;}else if _fef >=4.29&&_fef < 8.58{_aag =1;}else {_aag =2;};_aag *=_cec ;if _gf <=0{_daa =0;}else {_daa =(_b .Ceil (_gf /_aag )+1)*_aag ;};if _bce >=0{_dg =0;}else {_dg =(_b .Floor (_bce /_aag )-1)*_aag ;};};_ffd :=_dd .drawAxes (_dc ,_dg ,_daa ,_aag ,_fb ,_eb ,_gdg );if _ffd !=nil {return nil ,_ffd ;};_db :=0.0;if _fe .GapWidth !=nil {if _dfg :=_fe .GapWidth .ValAttr ;_dfg !=nil {if _dca :=_dfg .ST_GapAmountUShort ;_dca !=nil {_db =float64 (*_dca )/100.0;};};};_abf :=_eb .Right -_eb .Left ;_adg :=_eb .Bottom -_eb .Top ;_bb :=float64 (len (_fb ));if _gdg {_cc :=_daa /(_daa -_dg )*_abf ;_daaf :=-_dg /(_daa -_dg )*_abf ;_faa :=_eb .Left +_daaf ;_ggcg :=_adg /_bb ;for _ae ,_dff :=range _fb {_de :=_cg [_dff ];_cb :=float64 (len (_de ._aafa ))+_db ;_befg :=_ggcg /_cb ;_cf :=_befg *_db ;_adfd :=_eb .Bottom -float64 (_ae )*_ggcg -_cf /2-_befg ;for _ ,_bg :=range _de ._aafa {if _bg ._dda ==0{continue ;};var _fca ,_ec float64 ;if _bg ._dda > 0{_ec =_bg ._dda /_daa *_cc ;_dd .drawRectangleWithProps (_bg ._cbf ,_faa ,_adfd ,_ec ,_befg ,false );}else {_ec =_bg ._dda /_dg *_daaf ;_fca =_faa -_ec ;_dd .drawRectangleWithProps (_bg ._cbf ,_fca ,_adfd ,_ec ,_befg ,false );};_adfd -=_befg ;};};}else {_ccb :=_daa /(_daa -_dg )*_adg ;_dgd :=-_dg /(_daa -_dg )*_adg ;_gdcf :=_eb .Top +_ccb ;_ba :=_abf /_bb ;for _gad ,_cdc :=range _fb {_fda :=_cg [_cdc ];_abb :=float64 (len (_fda ._aafa ))+_db ;_ed :=_ba /_abb ;_eec :=_ed *_db ;_cbe :=_eb .Left +float64 (_gad )*_ba +_eec /2;for _ ,_gga :=range _fda ._aafa {var _ced ,_gag float64 ;if _gga ._dda > 0{_gag =_gga ._dda /_daa *_ccb ;_ced =_gdcf -_gag ;_dd .drawRectangleWithProps (_gga ._cbf ,_cbe ,_ced ,_ed ,_gag ,false );}else {_gag =_gga ._dda /_dg *_dgd ;_dd .drawRectangleWithProps (_gga ._cbf ,_cbe ,_gdcf ,_ed ,_gag ,false );};_cbe +=_ed ;};};};return _aa ,nil ;};func FromSTCoordinate (st _ca .ST_Coordinate )int64 {if _ecgg :=st .ST_CoordinateUnqualified ;_ecgg !=nil {return *_ecgg ;};return 0;};func AdjustColor (colorStr string ,EG_ColorTransform []*_ca .EG_ColorTransform )string {for _ ,_cee :=range EG_ColorTransform {if _face :=_cee .Tint ;_face !=nil {if _ceaa :=_face .ValAttr .ST_PositiveFixedPercentageDecimal ;_ceaa !=nil {colorStr =AdjustColorByTint (colorStr ,float64 (*_ceaa )/100000);};};if _ggg :=_cee .Shade ;_ggg !=nil {if _cbd :=_ggg .ValAttr .ST_PositiveFixedPercentageDecimal ;_cbd !=nil {colorStr =AdjustColorByShade (colorStr ,float64 (*_cbd )/100000);};};if _bdeg :=_cee .LumMod ;_bdeg !=nil {if _cdd :=_bdeg .ValAttr .ST_PercentageDecimal ;_cdd !=nil {colorStr =AdjustColorByLumMod (colorStr ,float64 (*_cdd )/100000);};};};return colorStr ;};func FromSTCoordinate32 (st _ca .ST_Coordinate32 )int64 {if _caf :=st .ST_Coordinate32Unqualified ;_caf !=nil {return int64 (*_caf );};return 0;};var _ece =_bdb (1.5);func AdjustColorByTint (colorStr string ,tint float64 )string {var _egc ,_edff ,_acfc uint8 ;_bgg ,_ :=_fc .Sscanf (colorStr ,"\u0025\u0030\u0032x\u0025\u0030\u0032\u0078\u0025\u0030\u0032\u0078",&_egc ,&_edff ,&_acfc );if _bgg !=3{return "";};return _bead (_egc ,tint )+_bead (_edff ,tint )+_bead (_acfc ,tint );};func _ecbf (_baa *_ace .CT_DateAx )(uint32 ,_ace .ST_AxPos ,_ace .ST_TickMark ,_ace .ST_TickLblPos ,*_ace .CT_ChartLines ,uint32 ,*_ca .CT_ShapeProperties ,error ){var _cead ,_cdfg uint32 ;var _gecc _ace .ST_AxPos ;var _gde _ace .ST_TickMark ;var _geg *_ace .CT_ChartLines ;var _afge _ace .ST_TickLblPos ;if _baa .AxId ==nil {return _cead ,_gecc ,_gde ,_afge ,_geg ,_cdfg ,_baa .SpPr ,_bc .New ("\u004e\u006f\u0020x\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_cead =_baa .AxId .ValAttr ;};if _baa .AxPos ==nil {return _cead ,_gecc ,_gde ,_afge ,_geg ,_cdfg ,_baa .SpPr ,_bc .New ("\u004eo\u0020x\u0020\u0061\u0078\u0069\u0073 \u0070\u006fs\u0069\u0074\u0069\u006f\u006e");}else {_gecc =_baa .AxPos .ValAttr ;};if _baa .MajorTickMark !=nil {_gde =_baa .MajorTickMark .ValAttr ;};if _baa .TickLblPos !=nil {_afge =_baa .TickLblPos .ValAttr ;};if _baa .CrossAx ==nil {return _cead ,_gecc ,_gde ,_afge ,_geg ,_cdfg ,_baa .SpPr ,_bc .New ("\u004e\u006f \u0063\u0072\u006fs\u0073\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_cdfg =_baa .CrossAx .ValAttr ;};_geg =_baa .MajorGridlines ;return _cead ,_gecc ,_gde ,_afge ,_geg ,_cdfg ,_baa .SpPr ,nil ;};func DrawLine (c *_df .Creator ,x0 ,y0 ,x1 ,y1 ,width float64 ,color _df .Color ){if color ==nil {return ;};_bab :=c .NewLine (x0 ,y0 ,x1 ,y1 );_bab .SetLineWidth (width );_bab .SetColor (color );c .Draw (_bab );};type ImgPart byte ;const _bbg =6.0;func (_bbf barSerByOrder )Len ()int {return len (_bbf )};var _bfe =_bdb (5);func RegisterFontsFromDirectory (dirName string )error {_bfd ,_ceea :=_be .Open (dirName );if _ceea !=nil {return _ceea ;};defer _bfd .Close ();_agb ,_ceea :=_bfd .Readdirnames (0);if _ceea !=nil {return _ceea ;};for _ ,_gacd :=range _agb {if _f .HasSuffix (_gacd ,"\u002e\u0074\u0074\u0066"){_ffeb :=dirName +"\u002f"+_gacd ;_ffag :=_cccdf (_ffeb );if _ffag !=nil {_fcb .Log .Debug ("\u0075\u006ea\u0062\u006c\u0065\u0020\u0074o\u0020\u0070\u0072\u006f\u0063e\u0073\u0073\u0020\u0061\u006e\u0064\u0020\u0072\u0065\u0067\u0069\u0073\u0074\u0065\u0072\u0020\u0066\u006f\u006e\u0074\u0020\u0066\u0072\u006f\u006d\u0020\u0054\u0054\u0046\u0020\u0066\u0069\u006c\u0065\u0020\u0025\u0073",_ffag );continue ;};};};return nil ;};var _gea =_bdb (2);type fontsMap struct{_feaf *_g .Mutex ;_eefa map[string ]map[FontStyle ]*_beg .PdfFont ;};type creatorContext struct{_cag *_df .Creator ;_fbe *_ca .Theme ;_bcfb float64 ;};const (ImgPart_whole ImgPart =0;ImgPart_t ImgPart =1;ImgPart_b ImgPart =2;ImgPart_l ImgPart =3;ImgPart_r ImgPart =4;ImgPart_lt ImgPart =5;ImgPart_rt ImgPart =6;ImgPart_lb ImgPart =7;ImgPart_rb ImgPart =8;);func _gegb (_fded *_ace .CT_SerAx )(uint32 ,_ace .ST_AxPos ,_ace .ST_TickMark ,_ace .ST_TickLblPos ,*_ace .CT_ChartLines ,uint32 ,*_ca .CT_ShapeProperties ,error ){var _dffg ,_fdbf uint32 ;var _gbab _ace .ST_AxPos ;var _agab _ace .ST_TickMark ;var _ceag *_ace .CT_ChartLines ;var _cbg _ace .ST_TickLblPos ;if _fded .AxId ==nil {return _dffg ,_gbab ,_agab ,_cbg ,_ceag ,_fdbf ,_fded .SpPr ,_bc .New ("\u004e\u006f\u0020x\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_dffg =_fded .AxId .ValAttr ;};if _fded .AxPos ==nil {return _dffg ,_gbab ,_agab ,_cbg ,_ceag ,_fdbf ,_fded .SpPr ,_bc .New ("\u004eo\u0020x\u0020\u0061\u0078\u0069\u0073 \u0070\u006fs\u0069\u0074\u0069\u006f\u006e");}else {_gbab =_fded .AxPos .ValAttr ;};if _fded .MajorTickMark !=nil {_agab =_fded .MajorTickMark .ValAttr ;};if _fded .TickLblPos !=nil {_cbg =_fded .TickLblPos .ValAttr ;};if _fded .CrossAx ==nil {return _dffg ,_gbab ,_agab ,_cbg ,_ceag ,_fdbf ,_fded .SpPr ,_bc .New ("\u004e\u006f \u0063\u0072\u006fs\u0073\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_fdbf =_fded .CrossAx .ValAttr ;};_ceag =_fded .MajorGridlines ;return _dffg ,_gbab ,_agab ,_cbg ,_ceag ,_fdbf ,_fded .SpPr ,nil ;};func (_dcf *creatorContext )drawAxes (_dge *_ace .CT_PlotAreaChoice1 ,_ddd ,_adb ,_ccbc float64 ,_cbff []string ,_edbb *Rectangle ,_gcc bool )error {_gcd :=_dcf ._cag ;_ef :=_dcf ._bcfb ;if _dge ==nil {return _bc .New ("\u004e\u006f\u0020\u0061xi\u0073\u0020\u0069\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e");};if len (_dge .ValAx )==0||(len (_dge .CatAx )==0&&len (_dge .DateAx )==0&&len (_dge .SerAx )==0){return _bc .New ("\u004e\u006f\u0020\u0078\u0020\u006f\u0072\u0020\u0079 \u0061\u0078\u0069\u0073");};var _dfe ,_cfc ,_bccd ,_afd uint32 ;var _aba ,_begbc _ace .ST_AxPos ;var _gbc ,_cbeb _ace .ST_TickMark ;var _fced ,_abga *_ace .CT_ChartLines ;var _dae ,_acaf _ace .ST_TickLblPos ;var _bag ,_eae *_ca .CT_ShapeProperties ;var _ggcga error ;_bcbe :=_edbb .Right -_edbb .Left ;_feb :=_edbb .Bottom -_edbb .Top ;if len (_dge .ValAx )> 0{_cfc ,_begbc ,_cbeb ,_acaf ,_abga ,_afd ,_eae ,_ggcga =_abgd (_dge .ValAx [0]);};if _begbc !=_ace .ST_AxPosL &&_begbc !=_ace .ST_AxPosB {return _bc .New ("\u004f\u006e\u006c\u0079\u0020l\u0065\u0066\u0074\u0020\u006f\u0072\u0020\u0062\u006f\u0074\u0074\u006f\u006d \u0079\u0020\u0061\u0078\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0020\u0073\u006f\u0020\u0066\u0061\u0072");};_fcf :=_adb -_ddd ;_cecg :=int (_fcf /_ccbc )+1;var _begba ,_afb float64 ;switch _cbeb {case _ace .ST_TickMarkIn :_begba ,_afb =_bec ,0;case _ace .ST_TickMarkOut :_begba ,_afb =0,_bec ;case _ace .ST_TickMarkCross :_begba ,_afb =_bec ,_bec ;};_begba =_begba *_ef ;_afb =_afb *_ef ;var _egg *_ca .CT_ShapeProperties ;if _abga !=nil {_egg =_abga .SpPr ;};_ecf ,_gec :=_dae !=_ace .ST_TickLblPosNone ,_acaf !=_ace .ST_TickLblPosNone ;_fec :=_ddd ;if len (_dge .CatAx )> 0{_dfe ,_aba ,_gbc ,_dae ,_fced ,_bccd ,_bag ,_ggcga =_dce (_dge .CatAx [0]);}else if len (_dge .DateAx )> 0{_dfe ,_aba ,_gbc ,_dae ,_fced ,_bccd ,_bag ,_ggcga =_ecbf (_dge .DateAx [0]);}else if len (_dge .SerAx )> 0{_dfe ,_aba ,_gbc ,_dae ,_fced ,_bccd ,_bag ,_ggcga =_gegb (_dge .SerAx [0]);};if _ggcga !=nil {return _ggcga ;};if _aba !=_ace .ST_AxPosL &&_aba !=_ace .ST_AxPosB {return _bc .New ("\u004f\u006e\u006c\u0079\u0020l\u0065\u0066\u0074\u0020\u006f\u0072\u0020\u0062\u006f\u0074\u0074\u006f\u006d \u0078\u0020\u0061\u0078\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0020\u0073\u006f\u0020\u0066\u0061\u0072");};if _dfe !=_afd ||_cfc !=_bccd {return _bc .New ("a\u0078i\u0073\u0020\u0069\u0064\u0073\u0020\u0064\u006fn\u0027\u0074\u0020\u006dat\u0063\u0068");};_fgdg :=len (_cbff )+1;var _cbebc ,_bde float64 ;switch _gbc {case _ace .ST_TickMarkIn :_cbebc ,_bde =_bec ,0;case _ace .ST_TickMarkOut :_cbebc ,_bde =0,_bec ;case _ace .ST_TickMarkCross :_cbebc ,_bde =_bec ,_bec ;};_cbebc =_cbebc *_ef ;_bde =_bde *_ef ;var _ccf *_ca .CT_ShapeProperties ;if _fced !=nil {_ccf =_fced .SpPr ;};if _gcc {_ccef :=_feb /float64 (len (_cbff ));_fcg :=_edbb .Left -_ddd *_bcbe /_fcf ;_gabd :=_fcg -_gcb *_ef ;if _ecf {var _aff float64 ;for _dbc :=0;_dbc < _fgdg ;_dbc ++{_bfc :=_edbb .Bottom -float64 (_dbc )*_ccef ;if _dbc < _fgdg -1{_bafc :=_gcd .NewParagraph (_cbff [_dbc ]);_bafc .SetFontSize (_bbg *_ef );_bafc .SetPos (_gabd ,_bfc -_ccef /2-_gadg *_ef );_gcd .Draw (_bafc );_efb :=(_bafc .Width ()/1000-_gcb )*_ef ;if _efb > 0&&_efb > _aff {_aff =_efb ;};};};if _aff > 0{_edbb .Left +=_aff +_gea ;_fcg =_edbb .Left -_ddd *_bcbe /_fcf ;_bcbe =_edbb .Right -_edbb .Left ;};};_gge :=_fcg -_bde ;_affc :=_fcg +_cbebc ;_dbg :=_edbb .Left ;_cdf :=_edbb .Right ;for _bdg :=0;_bdg < _fgdg ;_bdg ++{_afbd :=_edbb .Bottom -float64 (_bdg )*_ccef ;_dcf .drawLineWithProps (_bag ,_gge ,_afbd ,_affc ,_afbd ,true );_dcf .drawLineWithProps (_ccf ,_dbg ,_afbd ,_cdf ,_afbd ,true );};_ebg :=_bcbe /_fcf ;_bac :=_edbb .Bottom -_begba ;_cbb :=_edbb .Bottom +_afb ;_fecf :=_edbb .Top ;_ecb :=_edbb .Bottom ;for _gfc :=0;_gfc < _cecg ;_gfc ++{_ecgc :=_edbb .Left +(_fec -_ddd )*_ebg ;_dcf .drawLineWithProps (_eae ,_ecgc ,_bac ,_ecgc ,_cbb ,true );_dcf .drawLineWithProps (_egg ,_ecgc ,_fecf ,_ecgc ,_ecb ,true );if _gec {_abc :=_gcd .NewParagraph (_gd .FormatFloat (_fec ,'g',-1,64));_abc .SetFontSize (_bbg *_ef );_abc .SetPos (_ecgc -_fcec *_ef ,_ecb +_acf *_ef );_gcd .Draw (_abc );};_fec +=_ccbc ;};}else {_febf :=_feb /_fcf ;_add :=_edbb .Left ;if _gec {var _bdc float64 ;for _dcc :=0;_dcc < _cecg ;_dcc ++{_fdd :=_edbb .Bottom -(_fec -_ddd )*_febf ;_ebbb :=_gcd .NewParagraph (_gd .FormatFloat (_fec ,'g',-1,64));_ebbb .SetFontSize (_bbg *_ef );_ebbb .SetPos (_add -_gcb *_ef ,_fdd -_gadg *_ef );_gcd .Draw (_ebbb );_fdb :=(_ebbb .Width ()/1000-_gcb )*_ef ;if _fdb > 0&&_fdb > _bdc {_bdc =_fdb ;};_fec +=_ccbc ;};if _bdc > 0{_edbb .Left +=_bdc +_gea ;_bcbe =_edbb .Right -_edbb .Left ;};};_fec =_ddd ;_fece :=_edbb .Left -_afb ;_cbfa :=_edbb .Left +_begba ;_add =_edbb .Left ;_feca :=_edbb .Right ;for _dac :=0;_dac < _cecg ;_dac ++{_faaf :=_edbb .Bottom -(_fec -_ddd )*_febf ;_dcf .drawLineWithProps (_eae ,_fece ,_faaf ,_cbfa ,_faaf ,true );_dcf .drawLineWithProps (_egg ,_add ,_faaf ,_feca ,_faaf ,true );_fec +=_ccbc ;};_badb :=_bcbe /float64 (len (_cbff ));_gaca :=_edbb .Bottom +_ddd *_feb /_fcf ;_eeda :=_gaca -_cbebc ;_fgbf :=_gaca +_bde ;_bfg :=_edbb .Top ;_ceg :=_edbb .Bottom ;_bfce :=_gaca +_acf *_ef ;for _dbd :=0;_dbd < _fgdg ;_dbd ++{_aga :=_edbb .Left +float64 (_dbd )*_badb ;_dcf .drawLineWithProps (_bag ,_aga ,_eeda ,_aga ,_fgbf ,true );_dcf .drawLineWithProps (_ccf ,_aga ,_bfg ,_aga ,_ceg ,true );if _ecf &&_dbd < _fgdg -1{_beff :=_gcd .NewParagraph (_cbff [_dbd ]);_beff .SetFontSize (_bbg *_ef );_beff .SetPos (_aga +_bfe *_ef ,_bfce );_gcd .Draw (_beff );};};};return nil ;};func _cfce (_fga float64 )float64 {if _fga < 0{_fga +=float64 (-int (_fga )+1);}else if _fga > 1{_fga -=float64 (int (_fga ));};return _fga ;};func PointsFromTwips (twips int64 )float64 {return float64 (int64 (float64 (twips )*_e .Twips *10+0.5))/10};func (_bfge *creatorContext )drawLineWithProps (_agdf *_ca .CT_ShapeProperties ,_gaed ,_ecc ,_cgfd ,_adbgd float64 ,_agce bool ){if _agdf !=nil {if _fab :=_agdf .Ln ;_fab !=nil {_gdda :=_bfge .getPdfColorFromSolidFill (_fab .SolidFill );if _gdda ==nil &&_agce {_gdda =_df .ColorBlack ;};if _gdda !=nil {var _acg float64 ;if _deg :=_fab .WAttr ;_deg !=nil {_acg =_e .FromEMU (int64 (*_deg ));}else {_acg =_baf ;};DrawLine (_bfge ._cag ,_gaed ,_ecc ,_cgfd ,_adbgd ,_acg ,_gdda );};};};};func _fcc (_gdd _ca .ST_SchemeColorVal ,_edf *_ca .Theme )string {if _abe :=_edf .ThemeElements ;_abe !=nil {if _cgd :=_abe .ClrScheme ;_cgd !=nil {switch _gdd {case _ca .ST_SchemeColorValLt1 :return GetColorStringFromDmlColor (_cgd .Lt1 );case _ca .ST_SchemeColorValDk1 ,_ca .ST_SchemeColorValTx1 :return GetColorStringFromDmlColor (_cgd .Dk1 );case _ca .ST_SchemeColorValLt2 :return GetColorStringFromDmlColor (_cgd .Lt2 );case _ca .ST_SchemeColorValDk2 :return GetColorStringFromDmlColor (_cgd .Dk2 );case _ca .ST_SchemeColorValAccent1 :return GetColorStringFromDmlColor (_cgd .Accent1 );case _ca .ST_SchemeColorValAccent2 :return GetColorStringFromDmlColor (_cgd .Accent2 );case _ca .ST_SchemeColorValAccent3 :return GetColorStringFromDmlColor (_cgd .Accent3 );case _ca .ST_SchemeColorValAccent4 :return GetColorStringFromDmlColor (_cgd .Accent4 );case _ca .ST_SchemeColorValAccent5 :return GetColorStringFromDmlColor (_cgd .Accent5 );case _ca .ST_SchemeColorValAccent6 :return GetColorStringFromDmlColor (_cgd .Accent6 );};};};return "";};func FromSTPercentage (st *_ca .ST_Percentage )float64 {if _agfe :=st .ST_PercentageDecimal ;_agfe !=nil {return float64 (*_agfe )/100000;};return 0;};func Lighten (clr float64 )float64 {return 0.6+0.4*clr };func GetColorStringFromDmlColor (dmlColor *_ca .CT_Color )string {var _bcf string ;if _bfa :=dmlColor .SrgbClr ;_bfa !=nil {_bcf =_bfa .ValAttr ;}else if _abdb :=dmlColor .SysClr ;_abdb !=nil {return "\u0030\u0030\u0030\u0030\u0030\u0030";};return _bcf ;};func (_abff *Rectangle )scale (_ecd float64 ){_abff .Top *=_ecd ;_abff .Bottom *=_ecd ;_abff .Left *=_ecd ;_abff .Right *=_ecd ;};func GetImage (c *_df .Creator ,goImg _ad .Image ,imgHeight ,imgWidth ,left ,top ,dividerX ,dividerY float64 ,part ImgPart )(*_df .Image ,error ){if goImg ==nil {return nil ,nil ;};_fcfe :=goImg .Bounds ().Size ();_eafg :=_fcfe .X ;_fbf :=_fcfe .Y ;if dividerX !=0{dividerX =dividerX /imgWidth *float64 (_eafg );};if dividerY !=0{dividerY =dividerY /imgHeight *float64 (_fbf );};var _edc _ad .Rectangle ;switch part {case ImgPart_t :_edc =_ad .Rect (0,0,_eafg ,int (dividerY ));case ImgPart_b :_edc =_ad .Rect (0,int (dividerY ),_eafg ,_fbf );case ImgPart_l :_edc =_ad .Rect (0,0,int (dividerX ),_fbf );case ImgPart_r :_edc =_ad .Rect (int (dividerX ),0,_eafg ,_fbf );case ImgPart_lt :_edc =_ad .Rect (0,0,int (dividerX ),int (dividerY ));case ImgPart_rt :_edc =_ad .Rect (int (dividerX ),0,_eafg ,int (dividerY ));case ImgPart_lb :_edc =_ad .Rect (0,int (dividerY ),int (dividerX ),_fbf );case ImgPart_rb :_edc =_ad .Rect (int (dividerX ),int (dividerY ),_eafg ,_fbf );default:_edc =_ad .Rect (0,0,_eafg ,_fbf );};_gcdf :=CropImageByRect (goImg ,_edc );_bfcf ,_fddc :=c .NewImageFromGoImage (_gcdf );if _fddc !=nil {return nil ,_fddc ;};_bfcf .Scale (imgWidth /float64 (_eafg ),imgHeight /float64 (_fbf ));_bfcf .SetPos (left ,top );return _bfcf ,nil ;};type barSerByOrder []*_ace .CT_BarSer ;func (_cce barSerByOrder )Less (i ,j int )bool {return _cce [i ].Order .ValAttr < _cce [j ].Order .ValAttr };func (_aaeg *creatorContext )getPdfColorFromSolidFill (_gace *_ca .CT_SolidColorFillProperties )_df .Color {if _gace ==nil {return nil ;};_eebg :="";if _aged :=_gace .SrgbClr ;_aged !=nil {_eebg =_aged .ValAttr ;}else if _afa :=_gace .SchemeClr ;_afa !=nil {_eebg =_dbf (_afa .ValAttr ,_aaeg ._fbe );};if _eebg ==""{return nil ;};return _df .ColorRGBFromHex ("\u0023"+_eebg );};func MakeImageFromChartSpace (cs *_ace .ChartSpace ,width ,height float64 ,theme *_ca .Theme )(_ad .Image ,error ){_fce ,_eba :=_dee (cs ,width ,height ,theme ,true );if _eba !=nil {return nil ,_eba ;};_cad ,_eba :=GetPageFromCreator (_fce );if _eba !=nil {return nil ,_eba ;};return _af .NewImageDevice ().Render (_cad );};type FontStyle byte ;func AssignStdFontByName (style _df .TextStyle ,fontName string )*_beg .PdfFont {_bacb :=_beg .StdFontName (fontName );return _beg .NewStandard14FontMustCompile (_bacb );};func (_gba *creatorContext )drawLegend (_ccc *Rectangle ,_aae []*legendItem ,_fgd bool ){_bcbc :=_gba ._bcfb ;_cea :=_bdb (2.5)*_bcbc ;_cfa :=_ece *_bcbc ;_eacg :=(_cea -_cfa )/2;_agc :=float64 (len (_aae ));if _fgd {_dfd :=&Rectangle {Top :_ccc .Top +_bdb (1)*_bcbc ,Bottom :_ccc .Bottom -_bdb (1)*_bcbc ,Left :_ccc .Left +_bdb (2.5)*_bcbc ,Right :_ccc .Right -_bdb (2.5)*_bcbc };var _agf float64 ;if _agc > 1{_agf =(_dfd .Right -_dfd .Left )/_agc ;};_abg :=_dfd .Left ;_fde :=_dfd .Top ;for _ ,_dcd :=range _aae {if _ffdc :=_dcd ._eda ;_ffdc !=nil {_gba .drawRectangleWithProps (_ffdc ,_abg ,_fde +_eacg ,_cfa ,_cfa ,false );_eaa :=_abg +_cfa *2;_feg :=_gba ._cag .NewStyledParagraph ();_feg .SetPos (_eaa ,_fde );_eed :=_feg .Append (_dcd ._age );_gab ,_eag :=_beg .NewStandard14Font (_beg .HelveticaName );if _eag ==nil {_eed .Style =_df .TextStyle {FontSize :_cea ,Font :_gab ,TextRise :0.4};_gba ._cag .Draw (_feg );};};_abg +=_agf ;};}else {_gae :=&Rectangle {Top :_ccc .Top +_bdb (2.5)*_bcbc ,Bottom :_ccc .Bottom -_bdb (2.5)*_bcbc ,Left :_ccc .Left +_bdb (2.5)*_bcbc ,Right :_ccc .Right -_bdb (2.5)*_bcbc };var _cccd float64 ;if _agc > 1{_cccd =(_gae .Bottom -_gae .Top -_cea )/(_agc -1);};_dfc :=_gae .Top ;_edb :=_gae .Left ;_bgb :=_edb +_cfa *2;for _ ,_adfa :=range _aae {if _fcae :=_adfa ._eda ;_fcae !=nil {_gba .drawRectangleWithProps (_fcae ,_edb ,_dfc +_eacg ,_cfa ,_cfa ,false );_fge :=_gba ._cag .NewStyledParagraph ();_fge .SetPos (_bgb ,_dfc );_cgf :=_fge .Append (_adfa ._age );_ada ,_cada :=_beg .NewStandard14Font (_beg .HelveticaName );if _cada ==nil {_cgf .Style =_df .TextStyle {FontSize :_cea ,Font :_ada ,TextRise :0.4};_gba ._cag .Draw (_fge );};};_dfc +=_cccd ;};};};func TwipsFromPoints (points float64 )float64 {return points /_e .Twips };func _abgd (_egd *_ace .CT_ValAx )(uint32 ,_ace .ST_AxPos ,_ace .ST_TickMark ,_ace .ST_TickLblPos ,*_ace .CT_ChartLines ,uint32 ,*_ca .CT_ShapeProperties ,error ){var _gead ,_dbdg uint32 ;var _ccbb _ace .ST_AxPos ;var _egbd _ace .ST_TickMark ;var _adfc *_ace .CT_ChartLines ;var _cca _ace .ST_TickLblPos ;if _egd .AxId ==nil {return _gead ,_ccbb ,_egbd ,_cca ,_adfc ,_dbdg ,_egd .SpPr ,_bc .New ("\u004e\u006f\u0020x\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_gead =_egd .AxId .ValAttr ;};if _egd .AxPos ==nil {return _gead ,_ccbb ,_egbd ,_cca ,_adfc ,_dbdg ,_egd .SpPr ,_bc .New ("\u004eo\u0020x\u0020\u0061\u0078\u0069\u0073 \u0070\u006fs\u0069\u0074\u0069\u006f\u006e");}else {_ccbb =_egd .AxPos .ValAttr ;};if _egd .MajorTickMark !=nil {_egbd =_egd .MajorTickMark .ValAttr ;};if _egd .TickLblPos !=nil {_cca =_egd .TickLblPos .ValAttr ;};if _egd .CrossAx ==nil {return _gead ,_ccbb ,_egbd ,_cca ,_adfc ,_dbdg ,_egd .SpPr ,_bc .New ("\u004e\u006f \u0063\u0072\u006fs\u0073\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_dbdg =_egd .CrossAx .ValAttr ;};_adfc =_egd .MajorGridlines ;return _gead ,_ccbb ,_egbd ,_cca ,_adfc ,_dbdg ,_egd .SpPr ,nil ;};var _gcb =_bdb (7.5);type BorderPosition byte ;type Rectangle struct{Top float64 ;Bottom float64 ;Left float64 ;Right float64 ;};func _gdeb (_gbcc ,_fdc ,_dcab float64 )(uint8 ,uint8 ,uint8 ){var _gced float64 ;if _dcab < 0.5{_gced =_dcab *(1+_fdc );}else {_gced =_dcab +_fdc -_dcab *_fdc ;};_dbbc :=_dcab *2-_gced ;_gbcc /=360.0;_adbg :=_cfce (_gbcc +1.0/3.0);_dcg :=_cfce (_gbcc );_fdeda :=_cfce (_gbcc -1.0/3.0);_gaff :=_ebbd (_adbg ,_gced ,_dbbc );_eafb :=_ebbd (_dcg ,_gced ,_dbbc );_bcd :=_ebbd (_fdeda ,_gced ,_dbbc );return uint8 (255*_gaff ),uint8 (255*_eafb ),uint8 (255*_bcd );};const (BorderPositionTop BorderPosition =0;BorderPositionLeft BorderPosition =1;BorderPositionBottom BorderPosition =2;BorderPositionRight BorderPosition =3;);func _dce (_bbd *_ace .CT_CatAx )(uint32 ,_ace .ST_AxPos ,_ace .ST_TickMark ,_ace .ST_TickLblPos ,*_ace .CT_ChartLines ,uint32 ,*_ca .CT_ShapeProperties ,error ){var _bcg ,_bdgc uint32 ;var _eeg _ace .ST_AxPos ;var _afbb _ace .ST_TickMark ;var _ffc *_ace .CT_ChartLines ;var _fdbg _ace .ST_TickLblPos ;if _bbd .AxId ==nil {return _bcg ,_eeg ,_afbb ,_fdbg ,_ffc ,_bdgc ,_bbd .SpPr ,_bc .New ("\u004e\u006f\u0020x\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_bcg =_bbd .AxId .ValAttr ;};if _bbd .AxPos ==nil {return _bcg ,_eeg ,_afbb ,_fdbg ,_ffc ,_bdgc ,_bbd .SpPr ,_bc .New ("\u004eo\u0020x\u0020\u0061\u0078\u0069\u0073 \u0070\u006fs\u0069\u0074\u0069\u006f\u006e");}else {_eeg =_bbd .AxPos .ValAttr ;};if _bbd .MajorTickMark !=nil {_afbb =_bbd .MajorTickMark .ValAttr ;};if _bbd .TickLblPos !=nil {_fdbg =_bbd .TickLblPos .ValAttr ;};if _bbd .CrossAx ==nil {return _bcg ,_eeg ,_afbb ,_fdbg ,_ffc ,_bdgc ,_bbd .SpPr ,_bc .New ("\u004e\u006f \u0063\u0072\u006fs\u0073\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_bdgc =_bbd .CrossAx .ValAttr ;};_ffc =_bbd .MajorGridlines ;return _bcg ,_eeg ,_afbb ,_fdbg ,_ffc ,_bdgc ,_bbd .SpPr ,nil ;};func IsNoSpaceLanguage (symbol string )bool {for _ ,_aeaf :=range symbol {if _c .Is (_c .Han ,_aeaf ){return true ;};};return false ;};var _baf =_bdb (0.125);func (_daafc *creatorContext )drawBorderWithProps (_ceaaa *_ca .CT_ShapeProperties ,_cbffb *Rectangle ,_bga float64 ){if _cbffb !=nil &&_ceaaa !=nil &&_ceaaa .Ln !=nil &&_ceaaa .Ln .SolidFill !=nil {_caca :=_daafc .getPdfColorFromSolidFill (_ceaaa .Ln .SolidFill );DrawRectangle (_daafc ._cag ,_cbffb ,_bga ,_caca );};};func AdjustColorByLumMod (colorStr string ,lum float64 )string {var _gbf ,_eca ,_bda uint8 ;_ggac ,_ :=_fc .Sscanf (colorStr ,"\u0025\u0030\u0032x\u0025\u0030\u0032\u0078\u0025\u0030\u0032\u0078",&_gbf ,&_eca ,&_bda );if _ggac !=3{return "";};_bbfe ,_deeg ,_bace :=_bgd (_gbf ,_eca ,_bda );_bace =lum *_bace ;_gbf ,_eca ,_bda =_gdeb (_bbfe ,_deeg ,_bace );return _fc .Sprintf ("\u0025\u0030\u0032x\u0025\u0030\u0032\u0078\u0025\u0030\u0032\u0078",_gbf ,_eca ,_bda );};