unioffice/presentation/presentation.go
2023-05-26 09:49:04 +00:00

364 lines
78 KiB
Go

//
// 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 presentation ;import (_cg "archive/zip";_bd "bytes";_cf "encoding/xml";_gg "errors";_da "fmt";_gb "github.com/unidoc/unioffice";_ea "github.com/unidoc/unioffice/common";_e "github.com/unidoc/unioffice/common/logger";_gcb "github.com/unidoc/unioffice/common/tempstorage";_ed "github.com/unidoc/unioffice/drawing";_b "github.com/unidoc/unioffice/internal/license";_acb "github.com/unidoc/unioffice/measurement";_fd "github.com/unidoc/unioffice/schema/soo/dml";_a "github.com/unidoc/unioffice/schema/soo/dml/chart";_cb "github.com/unidoc/unioffice/schema/soo/ofc/sharedTypes";_d "github.com/unidoc/unioffice/schema/soo/pkg/relationships";_cc "github.com/unidoc/unioffice/schema/soo/pml";_gc "github.com/unidoc/unioffice/zippkg";_ab "image";_bb "image/jpeg";_ad "io";_cgg "math";_ada "os";_f "path";_ff "sort";_ac "strconv";_g "strings";);func _cgab (_ggb []*_cc .CT_GroupShapeChoice )[]*_cc .CT_GroupShapeChoice {var _edb []*_cc .CT_GroupShapeChoice ;for _ ,_gcec :=range _ggb {if len (_gcec .Pic )==0{_edb =append (_edb ,_gcec );};};return _edb ;};
// X returns the inner wrapped XML type.
func (_bgg PlaceHolder )X ()*_cc .CT_Shape {return _bgg ._gdg };
// SlideLayouts returns the slide layouts defined in the presentation.
func (_gaf *Presentation )SlideLayouts ()[]SlideLayout {_egc :=[]SlideLayout {};for _ ,_fdf :=range _gaf ._geg {_egc =append (_egc ,SlideLayout {_fdf });};return _egc ;};
// LastViewAttr returns the LastViewAttr property.
func (_fgaaf ViewProperties )LastViewAttr ()_cc .ST_ViewType {return _fgaaf ._gdaf .LastViewAttr };
// TextItem is used for keeping text with references to a paragraph and run, a shape or a table, a row and a cell where it is located.
type TextItem struct{Text string ;Presentation *Presentation ;Shape *_cc .CT_Shape ;GraphicFrame *_cc .CT_GraphicalObjectFrame ;Paragraph *_fd .CT_TextParagraph ;Run *_fd .CT_RegularTextRun ;TableInfo *TableInfo ;_be []rectangle ;_abf int ;_ccgb int ;};
// AddTable adds an empty table to a slide.
func (_caac Slide )AddTable ()*_ea .Table {_fgaa :=_cc .NewCT_GroupShapeChoice ();_caac ._bffe .CSld .SpTree .Choice =append (_caac ._bffe .CSld .SpTree .Choice ,_fgaa );_ffagf :=_cc .NewCT_GraphicalObjectFrame ();_fgaa .GraphicFrame =append (_fgaa .GraphicFrame ,_ffagf );_ffagf .Xfrm .Off =_fd .NewCT_Point2D ();_abbaa :=int64 (1);_ffagf .Xfrm .Off .XAttr =_fd .ST_Coordinate {ST_CoordinateUnqualified :&_abbaa };_ffagf .Xfrm .Off .YAttr =_fd .ST_Coordinate {ST_CoordinateUnqualified :&_abbaa };_cdbc :=_ffagf .Graphic .CT_GraphicalObject .GraphicData ;_cdbc .UriAttr ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u006dl/\u0032\u0030\u0030\u0036\u002f\u0074\u0061\u0062\u006c\u0065";_fcce :=_ea .NewTableWithXfrm (_ffagf .Xfrm );_cdbc .Any =append (_cdbc .Any ,_fcce .X ());return _fcce ;};
// Open opens and reads a document from a file (.pptx).
func Open (filename string )(*Presentation ,error ){_dff ,_fba :=_ada .Open (filename );if _fba !=nil {return nil ,_da .Errorf ("e\u0072r\u006f\u0072\u0020\u006f\u0070\u0065\u006e\u0069n\u0067\u0020\u0025\u0073: \u0025\u0073",filename ,_fba );};defer _dff .Close ();_aba ,_fba :=_ada .Stat (filename );if _fba !=nil {return nil ,_da .Errorf ("e\u0072r\u006f\u0072\u0020\u006f\u0070\u0065\u006e\u0069n\u0067\u0020\u0025\u0073: \u0025\u0073",filename ,_fba );};_ =_aba ;return Read (_dff ,_aba .Size ());};
// GetImageByRelID returns an ImageRef with the associated relation ID in the
// document.
func (_ded *Presentation )GetImageByRelID (relID string )(_ea .ImageRef ,bool ){for _ ,_gef :=range _ded .Images {if _gef .RelID ()==relID {return _gef ,true ;};};return _ea .ImageRef {},false ;};func (_bdc *chart )Target ()string {return _bdc ._abd };
// SlideSize returns presentation slide size.
func (_dag *Presentation )SlideSize ()SlideSize {if _dag ._bbf .SldSz ==nil {_dag ._bbf .SldSz =_cc .NewCT_SlideSize ();};return SlideSize {_dag ._bbf .SldSz ,_dag };};
// GridSpacing returns the GridSpacing property.
func (_edac ViewProperties )GridSpacing ()*_fd .CT_PositiveSize2D {return _edac ._gdaf .GridSpacing };
// ClearAll completely clears a placeholder. To be useable, at least one
// paragraph must be added after ClearAll via AddParagraph.
func (_bfd PlaceHolder )ClearAll (){_bfd ._gdg .SpPr =_fd .NewCT_ShapeProperties ();_bfd ._gdg .TxBody =_fd .NewCT_TextBody ();_bfd ._gdg .TxBody .LstStyle =_fd .NewCT_TextListStyle ();};const _fcac float64 =500000;
// Presentation is the a presentation base document.
type Presentation struct{_ea .DocBase ;_bbf *_cc .Presentation ;_cbdb _ea .Relationships ;_aab []*_cc .Sld ;_abba []_ea .Relationships ;_fda []*_cc .SldMaster ;_dde []_ea .Relationships ;_geg []*_cc .SldLayout ;_bgf []_ea .Relationships ;_gfb []*_fd .Theme ;_gbf []_ea .Relationships ;_ace _ea .TableStyles ;_cbde PresentationProperties ;_cfe ViewProperties ;_gced []*_fd .CT_Hyperlink ;_eab []*chart ;_acea []*_cc .HandoutMaster ;_gaa []*_cc .NotesMaster ;_gaaa []*_gb .XSDAny ;_fed map[string ]string ;_aec string ;};
// AddTextBox adds an empty textbox to a slide.
func (_ggg Slide )AddTextBox ()TextBox {_feac :=_cc .NewCT_GroupShapeChoice ();_ggg ._bffe .CSld .SpTree .Choice =append (_ggg ._bffe .CSld .SpTree .Choice ,_feac );_fgag :=_cc .NewCT_Shape ();_feac .Sp =append (_feac .Sp ,_fgag );_fgag .SpPr =_fd .NewCT_ShapeProperties ();_fgag .SpPr .Xfrm =_fd .NewCT_Transform2D ();_fgag .SpPr .PrstGeom =_fd .NewCT_PresetGeometry2D ();_fgag .SpPr .PrstGeom .PrstAttr =_fd .ST_ShapeTypeRect ;_fgag .NvSpPr =_cc .NewCT_ShapeNonVisual ();_fgag .NvSpPr .CNvSpPr =_fd .NewCT_NonVisualDrawingShapeProps ();_bedb :=true ;_fgag .NvSpPr .CNvSpPr .TxBoxAttr =&_bedb ;_fgag .TxBody =_fd .NewCT_TextBody ();_fgag .TxBody .BodyPr =_fd .NewCT_TextBodyProperties ();_fgag .TxBody .BodyPr .WrapAttr =_fd .ST_TextWrappingTypeSquare ;_fgag .TxBody .BodyPr .SpAutoFit =_fd .NewCT_TextShapeAutofit ();_bdac :=TextBox {_fgag };_bdac .Properties ().SetWidth (3*_acb .Inch );_bdac .Properties ().SetHeight (1*_acb .Inch );_bdac .Properties ().SetPosition (0,0);return _bdac ;};
// Type returns the type of the slide layout.
func (_eca SlideLayout )Type ()_cc .ST_SlideLayoutType {return _eca ._aecga .TypeAttr };
// Width returns slide screen size width in EMU units.
func (_dffa *SlideScreenSize )Width ()int32 {return _dffa [0]};
// Read reads a document from an io.Reader.
func Read (r _ad .ReaderAt ,size int64 )(*Presentation ,error ){const _dfc ="\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e:\u0052\u0065\u0061\u0064";if !_b .GetLicenseKey ().IsLicensed ()&&!_cgac {_da .Println ("\u0055\u006e\u006ci\u0063\u0065\u006e\u0073e\u0064\u0020\u0076\u0065\u0072\u0073\u0069o\u006e\u0020\u006f\u0066\u0020\u0055\u006e\u0069\u004f\u0066\u0066\u0069\u0063\u0065");_da .Println ("\u002d\u0020\u0047e\u0074\u0020\u0061\u0020\u0074\u0072\u0069\u0061\u006c\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");return nil ,_gg .New ("\u0075\u006e\u0069\u006f\u0066\u0066\u0069\u0063\u0065\u0020\u006ci\u0063\u0065\u006e\u0073\u0065\u0020\u0072\u0065\u0071\u0075i\u0072\u0065\u0064");};_adaa :=_ccf ();_dec ,_bef :=_b .GenRefId ("\u0070\u0072");if _bef !=nil {_e .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bef );return nil ,_bef ;};_adaa ._aec =_dec ;if _fdcc :=_b .Track (_adaa ._aec ,_dfc );_fdcc !=nil {_e .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdcc );return nil ,_fdcc ;};_dga ,_bef :=_gcb .TempDir ("\u0075\u006e\u0069\u006f\u0066\u0066\u0069\u0063\u0065-\u0070\u0070\u0074\u0078");if _bef !=nil {return nil ,_bef ;};_adaa .TmpPath =_dga ;_eeee ,_bef :=_cg .NewReader (r ,size );if _bef !=nil {return nil ,_da .Errorf ("\u0070a\u0072s\u0069\u006e\u0067\u0020\u007a\u0069\u0070\u003a\u0020\u0025\u0073",_bef );};_edcc :=[]*_cg .File {};_edcc =append (_edcc ,_eeee .File ...);_cgeb :=false ;for _ ,_ccd :=range _edcc {if _ccd .FileHeader .Name =="\u0064\u006f\u0063\u0050ro\u0070\u0073\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u002e\u0078\u006d\u006c"{_cgeb =true ;break ;};};if _cgeb {_adaa .CreateCustomProperties ();};_abg :=_gc .DecodeMap {};_abg .SetOnNewRelationshipFunc (_adaa .onNewRelationship );_abg .AddTarget (_gb .ContentTypesFilename ,_adaa .ContentTypes .X (),"",0);_abg .AddTarget (_gb .BaseRelsFilename ,_adaa .Rels .X (),"",0);if _cdg :=_abg .Decode (_edcc );_cdg !=nil {return nil ,_cdg ;};for _ ,_agbce :=range _edcc {if _agbce ==nil {continue ;};if _cgbe :=_adaa .AddExtraFileFromZip (_agbce );_cgbe !=nil {return nil ,_cgbe ;};};if _cgeb {_gba :=false ;for _ ,_ecda :=range _adaa .Rels .X ().Relationship {if _ecda .TargetAttr =="\u0064\u006f\u0063\u0050ro\u0070\u0073\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u002e\u0078\u006d\u006c"{_gba =true ;break ;};};if !_gba {_adaa .AddCustomRelationships ();};};return _adaa ,nil ;};
// SetOffsetY sets vertical offset of text box in distance units (see measurement package).
func (_dbce TextBox )SetOffsetY (offY float64 ){_fggca :=_dbce .getOff ();_acf :=_acb .ToEMU (offY );_fggca .YAttr =_fd .ST_Coordinate {ST_CoordinateUnqualified :&_acf };};
// AddDefaultSlideWithLayout tries to replicate what PowerPoint does when
// inserting a slide with a new style by clearing placeholder content and removing
// some placeholders. Use AddSlideWithLayout if you need more control.
func (_edba *Presentation )AddDefaultSlideWithLayout (l SlideLayout )(Slide ,error ){_aad ,_cecac :=_edba .AddSlideWithLayout (l );for _ ,_afaf :=range _aad .PlaceHolders (){_afaf .Clear ();switch _afaf .Type (){case _cc .ST_PlaceholderTypeFtr ,_cc .ST_PlaceholderTypeDt ,_cc .ST_PlaceholderTypeSldNum :_afaf .Remove ();};};return _aad ,_cecac ;};func _fb (_ee *Presentation ,_ffa []*_cc .CT_GroupShapeChoice ,_caf []rectangle ,_bf []*TextItem )[]*TextItem {for _ ,_af :=range _ffa {_aeg :=append ([]rectangle {},_caf ...);for _ ,_bed :=range _af .Sp {_bf =append (_bf ,_eed (_ee ,_bed ,nil ,nil ,_bed .SpPr .Xfrm ,0,_caf ,_bed .TxBody .P )...);};for _ ,_edg :=range _af .GraphicFrame {if _edg !=nil &&_edg .Graphic !=nil &&_edg .Graphic .GraphicData !=nil {_cba :=_edg .Xfrm ;for _ ,_fa :=range _edg .Graphic .GraphicData .Any {if _bff ,_agb :=_fa .(*_fd .Tbl );_agb {_cga :=&_bff .CT_Table ;_fac :=0;for _fab ,_dcf :=range _bff .Tr {for _bba ,_dg :=range _dcf .Tc {_dgd :=&TableInfo {Table :_cga ,Row :_dcf ,Cell :_dg ,RowIndex :_fab ,ColIndex :_bba };_bf =append (_bf ,_eed (_ee ,nil ,_edg ,_dgd ,_cba ,_fac ,_caf ,_dg .TxBody .P )...);_fac ++;};};};};};};for _ ,_beg :=range _af .GrpSp {if _beg .GrpSpPr !=nil {_bbb :=_beg .GrpSpPr .Xfrm ;var _dacb ,_bg int64 ;if _bbb .Off !=nil {_dgde ,_agc :=_bbb .Off .XAttr .ST_CoordinateUnqualified ,_bbb .Off .YAttr .ST_CoordinateUnqualified ;if _dgde !=nil &&_agc !=nil {if _edc :=_bbb .Ext ;_edc !=nil {_dacb ,_bg =_edc .CxAttr ,_edc .CyAttr ;};_aeg =append (_aeg ,rectangle {_dc :*_dgde ,_bec :*_agc ,_ec :*_dgde +_dacb ,_ca :*_agc +_bg });};};};_bf =_fb (_ee ,_beg .Choice ,_aeg ,_bf );};};return _bf ;};
// Properties returns the properties of the TextBox.
func (_bgeg TextBox )Properties ()_ed .ShapeProperties {if _bgeg ._abde .SpPr ==nil {_bgeg ._abde .SpPr =_fd .NewCT_ShapeProperties ();};return _ed .MakeShapeProperties (_bgeg ._abde .SpPr );};
// SaveToFileAsTemplate writes the Presentation out to a file as a template.
func (_edd *Presentation )SaveToFileAsTemplate (path string )error {return _edd .saveToFile (path ,true )};
// GetTableStyleById returns *dml.CT_TableStyle by its style id.
func (_aaag *Presentation )GetTableStyleById (id string )*_fd .CT_TableStyle {_afbg :=_aaag ._ace .TblStyle ();for _ ,_acg :=range _afbg {if _acg .StyleIdAttr ==id {return _acg ;};};return nil ;};
// Name returns the name of the slide layout.
func (_dfgb SlideLayout )Name ()string {if _dfgb ._aecga .CSld !=nil &&_dfgb ._aecga .CSld .NameAttr !=nil {return *_dfgb ._aecga .CSld .NameAttr ;};return "";};
// SlideText is an array of extracted text items which has some methods for representing extracted text from a slide.
type SlideText struct{Items []*TextItem ;};
// Text returns text from a slide as one string separated with line breaks.
func (_ced *SlideText )Text ()string {_bdb :=_bd .NewBuffer ([]byte {});for _ ,_fca :=range _ced .Items {if _fca .Text !=""{_bdb .WriteString (_fca .Text );_bdb .WriteString ("\u000a");};};return _bdb .String ();};
// PresentationText is an array of extracted text items which has some methods for representing extracted text.
type PresentationText struct{Slides []*SlideText ;};func (_cecaa *Slide )getSlideRels ()_ea .Relationships {_edf :=_cecaa ._gag ;for _eggb ,_fcee :=range _edf .Slides (){if *_cecaa ._bffe ==*_fcee ._bffe {return _edf ._abba [len (_edf ._abba )-_eggb -1];};};return _ea .Relationships {};};
// Paragraphs returns the paragraphs defined in the placeholder.
func (_eac PlaceHolder )Paragraphs ()[]_ed .Paragraph {_fae :=[]_ed .Paragraph {};for _ ,_fga :=range _eac ._gdg .TxBody .P {_fae =append (_fae ,_ed .MakeParagraph (_fga ));};return _fae ;};
// X returns the inner wrapped XML type.
func (_acege ViewProperties )X ()*_cc .ViewPr {return _acege ._gdaf };
// AddImage adds an image to the document package, returning a reference that
// can be used to add the image to a run and place it in the document contents.
func (_dcfa *Presentation )AddImage (i _ea .Image )(_ea .ImageRef ,error ){_egb :=_ea .MakeImageRef (i ,&_dcfa .DocBase ,_dcfa ._cbdb );if i .Data ==nil &&i .Path ==""{return _egb ,_gg .New ("\u0069\u006d\u0061\u0067\u0065\u0020\u006d\u0075\u0073\u0074 \u0068\u0061\u0076\u0065\u0020\u0064\u0061t\u0061\u0020\u006f\u0072\u0020\u0061\u0020\u0070\u0061\u0074\u0068");};if i .Format ==""{return _egb ,_gg .New ("\u0069\u006d\u0061\u0067\u0065\u0020\u006d\u0075\u0073\u0074 \u0068\u0061\u0076\u0065\u0020\u0061\u0020v\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if i .Size .X ==0||i .Size .Y ==0{return _egb ,_gg .New ("\u0069\u006d\u0061\u0067e\u0020\u006d\u0075\u0073\u0074\u0020\u0068\u0061\u0076\u0065 \u0061 \u0076\u0061\u006c\u0069\u0064\u0020\u0073i\u007a\u0065");};if i .Path !=""{_edaf :=_gcb .Add (i .Path );if _edaf !=nil {return _egb ,_edaf ;};};_dcfa .Images =append (_dcfa .Images ,_egb );_dcfa .ContentTypes .EnsureDefault ("\u0070\u006e\u0067","\u0069m\u0061\u0067\u0065\u002f\u0070\u006eg");_dcfa .ContentTypes .EnsureDefault ("\u006a\u0070\u0065\u0067","\u0069\u006d\u0061\u0067\u0065\u002f\u006a\u0070\u0065\u0067");_dcfa .ContentTypes .EnsureDefault ("\u006a\u0070\u0067","\u0069\u006d\u0061\u0067\u0065\u002f\u006a\u0070\u0065\u0067");_dcfa .ContentTypes .EnsureDefault ("\u0077\u006d\u0066","i\u006d\u0061\u0067\u0065\u002f\u0078\u002d\u0077\u006d\u0066");_dcfa .ContentTypes .EnsureDefault (i .Format ,"\u0069\u006d\u0061\u0067\u0065\u002f"+i .Format );return _egb ,nil ;};
// Size returns slide size value as SlideScreenSize.
func (_cdc *SlideSize )Size ()SlideScreenSize {return SlideScreenSize {_cdc ._daef .CxAttr ,_cdc ._daef .CyAttr };};
// SlideMasters returns the slide masters defined in the presentation.
func (_gda *Presentation )SlideMasters ()[]SlideMaster {_gcd :=[]SlideMaster {};for _gdaa ,_cafd :=range _gda ._fda {_gcd =append (_gcd ,SlideMaster {_gda ,_gda ._dde [_gdaa ],_cafd });};return _gcd ;};
// NotesViewPr returns the NotesViewPr property.
func (_cbb ViewProperties )NotesViewPr ()*_cc .CT_NotesViewProperties {return _cbb ._gdaf .NotesViewPr };
// GetColorBySchemeColor returns *dml.CT_Color mapped to scheme colors like dk1, lt1 etc. depending on what theme is used in the presentation.
func (_bbfeb *Presentation )GetColorBySchemeColor (schClr _fd .ST_SchemeColorVal )*_fd .CT_Color {if len (_bbfeb ._fda )==0||len (_bbfeb ._gfb )==0{return nil ;};var _dcfd _fd .ST_ColorSchemeIndex ;_aecg :=_bbfeb ._fda [0];_dad :=_aecg .ClrMap ;switch schClr .String (){case "\u0062\u0067\u0031":_dcfd =_dad .Bg1Attr ;case "\u0062\u0067\u0032":_dcfd =_dad .Bg2Attr ;case "\u0074\u0078\u0031":_dcfd =_dad .Tx1Attr ;case "\u0074\u0078\u0032":_dcfd =_dad .Tx2Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0031":_dcfd =_dad .Accent1Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0032":_dcfd =_dad .Accent2Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0033":_dcfd =_dad .Accent3Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0034":_dcfd =_dad .Accent4Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0035":_dcfd =_dad .Accent5Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0036":_dcfd =_dad .Accent6Attr ;case "\u0068\u006c\u0069n\u006b":_dcfd =_dad .HlinkAttr ;case "\u0066\u006f\u006c\u0048\u006c\u0069\u006e\u006b":_dcfd =_dad .FolHlinkAttr ;case "\u0064\u006b\u0031":_dcfd =_fd .ST_ColorSchemeIndexDk1 ;case "\u0064\u006b\u0032":_dcfd =_fd .ST_ColorSchemeIndexDk2 ;case "\u006c\u0074\u0031":_dcfd =_fd .ST_ColorSchemeIndexLt1 ;case "\u006c\u0074\u0032":_dcfd =_fd .ST_ColorSchemeIndexLt2 ;default:_dcfd =_fd .ST_ColorSchemeIndexUnset ;};_eddg :=_bbfeb ._gfb [0];_bfc :=_eddg .ThemeElements ;if _bfc ==nil {return nil ;};var _edge *_fd .CT_Color ;_fceb :=_bfc .ClrScheme ;switch _dcfd .String (){case "\u0064\u006b\u0031":_edge =_fceb .Dk1 ;case "\u0064\u006b\u0032":_edge =_fceb .Dk2 ;case "\u006c\u0074\u0031":_edge =_fceb .Lt1 ;case "\u006c\u0074\u0032":_edge =_fceb .Lt2 ;case "\u0061c\u0063\u0065\u006e\u0074\u0031":_edge =_fceb .Accent1 ;case "\u0061c\u0063\u0065\u006e\u0074\u0032":_edge =_fceb .Accent2 ;case "\u0061c\u0063\u0065\u006e\u0074\u0033":_edge =_fceb .Accent3 ;case "\u0061c\u0063\u0065\u006e\u0074\u0034":_edge =_fceb .Accent4 ;case "\u0061c\u0063\u0065\u006e\u0074\u0035":_edge =_fceb .Accent5 ;case "\u0061c\u0063\u0065\u006e\u0074\u0036":_edge =_fceb .Accent6 ;case "\u0068\u006c\u0069n\u006b":_edge =_fceb .Hlink ;case "\u0066\u006f\u006c\u0048\u006c\u0069\u006e\u006b":_edge =_fceb .FolHlink ;default:return nil ;};return _edge ;};
// ExtractText returns text from a presentation as a PresentationText object.
func (_fg *Presentation )ExtractText ()*PresentationText {_ag :=[]*SlideText {};for _ ,_age :=range _fg .Slides (){_ga :=_age .ExtractText ();if _ga !=nil {_ag =append (_ag ,_ga );};};return &PresentationText {Slides :_ag };};
// HtmlPubPr returns the HtmlPubPr property.
func (_ebe PresentationProperties )HtmlPubPr ()*_cc .CT_HtmlPublishProperties {return _ebe ._cfbe .HtmlPubPr ;};
// AddSlide adds a new slide to the presentation.
func (_cbag *Presentation )AddSlide ()Slide {_aef :=_cc .NewCT_SlideIdListEntry ();_aef .IdAttr =_cbag .nextSlideID ();_cbag ._bbf .SldIdLst .SldId =append (_cbag ._bbf .SldIdLst .SldId ,_aef );_aee :=_cc .NewSld ();_aee .CSld .SpTree .NvGrpSpPr .CNvPr .IdAttr =1;_aee .CSld .SpTree .GrpSpPr .Xfrm =_fd .NewCT_GroupTransform2D ();_aee .CSld .SpTree .GrpSpPr .Xfrm .Off =_fd .NewCT_Point2D ();_aee .CSld .SpTree .GrpSpPr .Xfrm .Off .XAttr .ST_CoordinateUnqualified =_gb .Int64 (0);_aee .CSld .SpTree .GrpSpPr .Xfrm .Off .YAttr .ST_CoordinateUnqualified =_gb .Int64 (0);_aee .CSld .SpTree .GrpSpPr .Xfrm .Ext =_fd .NewCT_PositiveSize2D ();_aee .CSld .SpTree .GrpSpPr .Xfrm .Ext .CxAttr =int64 (0*_acb .Point );_aee .CSld .SpTree .GrpSpPr .Xfrm .Ext .CyAttr =int64 (0*_acb .Point );_aee .CSld .SpTree .GrpSpPr .Xfrm .ChOff =_aee .CSld .SpTree .GrpSpPr .Xfrm .Off ;_aee .CSld .SpTree .GrpSpPr .Xfrm .ChExt =_aee .CSld .SpTree .GrpSpPr .Xfrm .Ext ;_cbag ._aab =append (_cbag ._aab ,_aee );_fff :=_cbag ._cbdb .AddAutoRelationship (_gb .DocTypePresentation ,_gb .OfficeDocumentType ,len (_cbag ._aab ),_gb .SlideType );_aef .RIdAttr =_fff .ID ();_fee :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .SlideType ,len (_cbag ._aab ));_cbag .ContentTypes .AddOverride (_fee ,_gb .SlideContentType );_cfda :=_ea .NewRelationships ();_cbag ._abba =append (_cbag ._abba ,_cfda );_cfda .AddAutoRelationship (_gb .DocTypePresentation ,_gb .SlideType ,len (_cbag ._geg ),_gb .SlideLayoutType );return Slide {_aef ,_aee ,_cbag ,nil };};func (_acc *Presentation )save (_fgdd _ad .Writer ,_efa bool )error {const _cadg ="\u0050\u0072\u0065\u0073en\u0074\u0061\u0074\u0069\u006f\u006e\u003a\u0070\u002e\u0053\u0061\u0076\u0065";if _dca :=_acc ._bbf .Validate ();_dca !=nil {_e .Log .Debug ("\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006f\u006e\u0020\u0065\u0072\u0072\u006fr\u0020i\u006e\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0073",_dca );};if !_b .GetLicenseKey ().IsLicensed ()&&!_cgac {_da .Println ("\u0055\u006e\u006ci\u0063\u0065\u006e\u0073e\u0064\u0020\u0076\u0065\u0072\u0073\u0069o\u006e\u0020\u006f\u0066\u0020\u0055\u006e\u0069\u004f\u0066\u0066\u0069\u0063\u0065");_da .Println ("\u002d\u0020\u0047e\u0074\u0020\u0061\u0020\u0074\u0072\u0069\u0061\u006c\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");return _gg .New ("\u0075\u006e\u0069\u006f\u0066\u0066\u0069\u0063\u0065\u0020\u006ci\u0063\u0065\u006e\u0073\u0065\u0020\u0072\u0065\u0071\u0075i\u0072\u0065\u0064");};if len (_acc ._aec )==0{_dbb ,_fcf :=_b .GenRefId ("\u0070\u0077");if _fcf !=nil {_e .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fcf );return _fcf ;};_acc ._aec =_dbb ;};if _dgc :=_b .Track (_acc ._aec ,_cadg );_dgc !=nil {_e .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgc );return _dgc ;};if _efa {_acc .ContentTypes .RemoveOverride ("\u0061\u0070\u0070\u006c\u0069\u0063\u0061t\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006ff\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u006d\u006c\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u002e\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");_acc .ContentTypes .EnsureOverride ("/\u0070\u0070\u0074\u002fpr\u0065s\u0065\u006e\u0074\u0061\u0074i\u006f\u006e\u002e\u0078\u006d\u006c","\u0061\u0070pl\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074s\u002d\u006f\u0066\u0066ic\u0065\u0064o\u0063u\u006d\u0065\u006e\u0074\u002e\u0070r\u0065\u0073\u0065n\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065.\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");}else {_acc .ContentTypes .RemoveOverride ("\u0061\u0070pl\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074s\u002d\u006f\u0066\u0066ic\u0065\u0064o\u0063u\u006d\u0065\u006e\u0074\u002e\u0070r\u0065\u0073\u0065n\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065.\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");_acc .ContentTypes .EnsureOverride ("/\u0070\u0070\u0074\u002fpr\u0065s\u0065\u006e\u0074\u0061\u0074i\u006f\u006e\u002e\u0078\u006d\u006c","\u0061\u0070\u0070\u006c\u0069\u0063\u0061t\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006ff\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u006d\u006c\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u002e\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");};_cea :=_gb .DocTypePresentation ;_eg :=_cg .NewWriter (_fgdd );defer _eg .Close ();if _bad :=_gc .MarshalXML (_eg ,_gb .BaseRelsFilename ,_acc .Rels .X ());_bad !=nil {return _bad ;};if _bcf :=_gc .MarshalXMLByType (_eg ,_cea ,_gb .ExtendedPropertiesType ,_acc .AppProperties .X ());_bcf !=nil {return _bcf ;};if _adab :=_gc .MarshalXMLByType (_eg ,_cea ,_gb .CorePropertiesType ,_acc .CoreProperties .X ());_adab !=nil {return _adab ;};if _agea :=_gc .MarshalXMLByType (_eg ,_cea ,_gb .PresentationPropertiesType ,_acc ._cbde .X ());_agea !=nil {return _agea ;};if _ddc :=_gc .MarshalXMLByType (_eg ,_cea ,_gb .ViewPropertiesType ,_acc ._cfe .X ());_ddc !=nil {return _ddc ;};if _eeb :=_gc .MarshalXMLByType (_eg ,_cea ,_gb .TableStylesType ,_acc ._ace .X ());_eeb !=nil {return _eeb ;};if _acc .CustomProperties .X ()!=nil {if _fdab :=_gc .MarshalXMLByType (_eg ,_cea ,_gb .CustomPropertiesType ,_acc .CustomProperties .X ());_fdab !=nil {return _fdab ;};};if _acc .Thumbnail !=nil {_aaa ,_adabc :=_eg .Create ("\u0064\u006f\u0063Pr\u006f\u0070\u0073\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061\u0069\u006c\u002e\u006a\u0070\u0065\u0067");if _adabc !=nil {return _adabc ;};if _adaf :=_bb .Encode (_aaa ,_acc .Thumbnail ,nil );_adaf !=nil {return _adaf ;};};_fbeag :=_gb .AbsoluteFilename (_cea ,_gb .OfficeDocumentType ,0);if _dea :=_gc .MarshalXML (_eg ,_fbeag ,_acc ._bbf );_dea !=nil {return _dea ;};if _cac :=_gc .MarshalXML (_eg ,_gc .RelationsPathFor (_fbeag ),_acc ._cbdb .X ());_cac !=nil {return _cac ;};for _abeb ,_fbc :=range _acc ._aab {_eec :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .SlideType ,_abeb +1);_gc .MarshalXML (_eg ,_eec ,_fbc );if !_acc ._abba [_abeb ].IsEmpty (){_gea :=_gc .RelationsPathFor (_eec );_gc .MarshalXML (_eg ,_gea ,_acc ._abba [_abeb ].X ());};};for _bfb ,_edgg :=range _acc ._fda {_cge :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .SlideMasterType ,_bfb +1);_gc .MarshalXML (_eg ,_cge ,_edgg );if !_acc ._dde [_bfb ].IsEmpty (){_gfee :=_gc .RelationsPathFor (_cge );_gc .MarshalXML (_eg ,_gfee ,_acc ._dde [_bfb ].X ());};};for _gde ,_aege :=range _acc ._geg {_fdd :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .SlideLayoutType ,_gde +1);_gc .MarshalXML (_eg ,_fdd ,_aege );if !_acc ._bgf [_gde ].IsEmpty (){_cffc :=_gc .RelationsPathFor (_fdd );_gc .MarshalXML (_eg ,_cffc ,_acc ._bgf [_gde ].X ());};};for _eae ,_fea :=range _acc ._gfb {_efe :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .ThemeType ,_eae +1);_gc .MarshalXML (_eg ,_efe ,_fea );if !_acc ._gbf [_eae ].IsEmpty (){_adg :=_gc .RelationsPathFor (_efe );_gc .MarshalXML (_eg ,_adg ,_acc ._gbf [_eae ].X ());};};for _fbeb ,_acbf :=range _acc ._eab {_caba :=_gb .AbsoluteFilename (_cea ,_gb .ChartType ,_fbeb +1);_gc .MarshalXML (_eg ,_caba ,_acbf );};for _feg ,_dcfg :=range _acc ._acea {_dfa :=_gb .AbsoluteFilename (_cea ,_gb .HandoutMasterType ,_feg +1);_gc .MarshalXML (_eg ,_dfa ,_dcfg );};for _eba ,_bdfd :=range _acc ._gaa {_bgfc :=_gb .AbsoluteFilename (_cea ,_gb .NotesMasterType ,_eba +1);_gc .MarshalXML (_eg ,_bgfc ,_bdfd );};for _bca ,_ffaa :=range _acc ._gaaa {_aga :=_gb .AbsoluteFilename (_cea ,_gb .CustomXMLType ,_bca +1);_gc .MarshalXML (_eg ,_aga ,_ffaa );};for _fbgb ,_ege :=range _acc .Images {if _bda :=_ea .AddImageToZip (_eg ,_ege ,_fbgb +1,_gb .DocTypePresentation );_bda !=nil {return _bda ;};};_acc .ContentTypes .EnsureDefault ("\u0070\u006e\u0067","\u0069m\u0061\u0067\u0065\u002f\u0070\u006eg");_acc .ContentTypes .EnsureDefault ("\u006a\u0070\u0065\u0067","\u0069\u006d\u0061\u0067\u0065\u002f\u006a\u0070\u0065\u0067");_acc .ContentTypes .EnsureDefault ("\u006a\u0070\u0067","\u0069\u006d\u0061\u0067\u0065\u002f\u006a\u0070\u0065\u0067");_acc .ContentTypes .EnsureDefault ("\u0077\u006d\u0066","i\u006d\u0061\u0067\u0065\u002f\u0078\u002d\u0077\u006d\u0066");if _gcc :=_gc .MarshalXML (_eg ,_gb .ContentTypesFilename ,_acc .ContentTypes .X ());_gcc !=nil {return _gcc ;};if _cbae :=_acc .WriteExtraFiles (_eg );_cbae !=nil {return _cbae ;};return nil ;};func (_acgd TextBox )getOff ()*_fd .CT_Point2D {if _acgd ._abde .SpPr ==nil {_acgd ._abde .SpPr =_fd .NewCT_ShapeProperties ();};if _acgd ._abde .SpPr .Xfrm ==nil {_acgd ._abde .SpPr .Xfrm =_fd .NewCT_Transform2D ();};if _acgd ._abde .SpPr .Xfrm .Off ==nil {_acgd ._abde .SpPr .Xfrm .Off =_fd .NewCT_Point2D ();};return _acgd ._abde .SpPr .Xfrm .Off ;};
// X returns the inner wrapped XML type.
func (_cbd PresentationProperties )X ()*_cc .PresentationPr {return _cbd ._cfbe };
// GetChartSpaceByRelId returns a *crt.ChartSpace with the associated relation ID in the
// slide.
func (_agdd *Slide )GetChartSpaceByRelId (relId string )*_a .ChartSpace {_egbe :=_agdd .getSlideRels ();if (_egbe ==_ea .Relationships {}){return nil ;};_bbfabc :=_egbe .GetTargetByRelId (relId );for _ ,_ccfdd :=range _agdd ._gag ._eab {if _bbfabc ==_ccfdd .Target (){return _ccfdd ._eda ;};};return nil ;};
// X returns the inner wrapped XML type.
func (_adfb *SlideSize )X ()*_cc .CT_SlideSize {return _adfb ._daef };
// OpenTemplate opens a template file.
func OpenTemplate (fn string )(*Presentation ,error ){_ge ,_bge :=Open (fn );if _bge !=nil {return nil ,_bge ;};return _ge ,nil ;};
// X returns the inner wrapped XML type.
func (_eaec SlideMaster )X ()*_cc .SldMaster {return _eaec ._bffb };
// SaveToFile writes the Presentation out to a file.
func (_acbb *Presentation )SaveToFile (path string )error {return _acbb .saveToFile (path ,false )};func (_ddf *Presentation )nextSlideID ()uint32 {_gec :=uint32 (256);for _ ,_facb :=range _ddf ._bbf .SldIdLst .SldId {if _facb .IdAttr >=_gec {_gec =_facb .IdAttr +1;};};return _gec ;};
// SaveAsTemplate writes the presentation out to a writer in the Zip package format as a template
func (_cbfc *Presentation )SaveAsTemplate (w _ad .Writer )error {return _cbfc .save (w ,true )};func (_dae sort2d )Len ()int {return len (_dae )};
// TextBox is a text box within a slide.
type TextBox struct{_abde *_cc .CT_Shape };
// Save writes the presentation out to a writer in the Zip package format
func (_cda *Presentation )Save (w _ad .Writer )error {return _cda .save (w ,false )};
// GetColorBySchemeColor returns *dml.CT_Color mapped to scheme colors like dk1, lt1 etc. depending on what theme is used in the presentation.
func (_gca *Slide )GetColorBySchemeColor (schClr _fd .ST_SchemeColorVal )*_fd .CT_Color {_gca .ensureClrMap ();_bcb :=_gca ._dcee ;if _bcb ==nil {return nil ;};var _babd _fd .ST_ColorSchemeIndex ;switch schClr .String (){case "\u0062\u0067\u0031":_babd =_bcb .Bg1Attr ;case "\u0062\u0067\u0032":_babd =_bcb .Bg2Attr ;case "\u0074\u0078\u0031":_babd =_bcb .Tx1Attr ;case "\u0074\u0078\u0032":_babd =_bcb .Tx2Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0031":_babd =_bcb .Accent1Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0032":_babd =_bcb .Accent2Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0033":_babd =_bcb .Accent3Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0034":_babd =_bcb .Accent4Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0035":_babd =_bcb .Accent5Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0036":_babd =_bcb .Accent6Attr ;case "\u0068\u006c\u0069n\u006b":_babd =_bcb .HlinkAttr ;case "\u0066\u006f\u006c\u0048\u006c\u0069\u006e\u006b":_babd =_bcb .FolHlinkAttr ;case "\u0064\u006b\u0031":_babd =_fd .ST_ColorSchemeIndexDk1 ;case "\u0064\u006b\u0032":_babd =_fd .ST_ColorSchemeIndexDk2 ;case "\u006c\u0074\u0031":_babd =_fd .ST_ColorSchemeIndexLt1 ;case "\u006c\u0074\u0032":_babd =_fd .ST_ColorSchemeIndexLt2 ;default:_babd =_fd .ST_ColorSchemeIndexUnset ;};_gfab :=_gca ._gag ._gfb [0];_daea :=_gfab .ThemeElements ;if _daea ==nil {return nil ;};var _bbff *_fd .CT_Color ;_eaef :=_daea .ClrScheme ;switch _babd .String (){case "\u0064\u006b\u0031":_bbff =_eaef .Dk1 ;case "\u0064\u006b\u0032":_bbff =_eaef .Dk2 ;case "\u006c\u0074\u0031":_bbff =_eaef .Lt1 ;case "\u006c\u0074\u0032":_bbff =_eaef .Lt2 ;case "\u0061c\u0063\u0065\u006e\u0074\u0031":_bbff =_eaef .Accent1 ;case "\u0061c\u0063\u0065\u006e\u0074\u0032":_bbff =_eaef .Accent2 ;case "\u0061c\u0063\u0065\u006e\u0074\u0033":_bbff =_eaef .Accent3 ;case "\u0061c\u0063\u0065\u006e\u0074\u0034":_bbff =_eaef .Accent4 ;case "\u0061c\u0063\u0065\u006e\u0074\u0035":_bbff =_eaef .Accent5 ;case "\u0061c\u0063\u0065\u006e\u0074\u0036":_bbff =_eaef .Accent6 ;case "\u0068\u006c\u0069n\u006b":_bbff =_eaef .Hlink ;case "\u0066\u006f\u006c\u0048\u006c\u0069\u006e\u006b":_bbff =_eaef .FolHlink ;default:return nil ;};return _bbff ;};
// SetSize sets the slide size, take argument of SlideScreenSize.
func (_adb *SlideSize )SetSize (sz SlideScreenSize ){_adb ._daef .CxAttr =sz [0];_adb ._daef .CyAttr =sz [1];};func (_cdba *Presentation )onNewRelationship (_efee *_gc .DecodeMap ,_cca ,_fag string ,_aaec []*_cg .File ,_ccge *_d .Relationship ,_bdcc _gc .Target )error {_dcd :=_gb .DocTypePresentation ;switch _fag {case _gb .OfficeDocumentType :_cdba ._bbf =_cc .NewPresentation ();_efee .AddTarget (_cca ,_cdba ._bbf ,_fag ,0);_efee .AddTarget (_gc .RelationsPathFor (_cca ),_cdba ._cbdb .X (),_fag ,0);_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,0);case _gb .CorePropertiesType :_efee .AddTarget (_cca ,_cdba .CoreProperties .X (),_fag ,0);_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,0);case _gb .CustomPropertiesType :_efee .AddTarget (_cca ,_cdba .CustomProperties .X (),_fag ,0);_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,0);case _gb .PresentationPropertiesType :_efee .AddTarget (_cca ,_cdba ._cbde .X (),_fag ,0);_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,0);case _gb .ViewPropertiesType :_efee .AddTarget (_cca ,_cdba ._cfe .X (),_fag ,0);_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,0);case _gb .TableStylesType :_efee .AddTarget (_cca ,_cdba ._ace .X (),_fag ,0);_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,0);case _gb .HyperLinkType :_dda :=_fd .NewCT_Hyperlink ();_afe :=uint32 (len (_cdba ._gced ));_efee .AddTarget (_cca ,_dda ,_fag ,_afe );_cdba ._gced =append (_cdba ._gced ,_dda );case _gb .CustomXMLType :_bfdb :=&_gb .XSDAny {};_caca :=uint32 (len (_cdba ._gaaa ));_efee .AddTarget (_cca ,_bfdb ,_fag ,_caca );_cdba ._gaaa =append (_cdba ._gaaa ,_bfdb );_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,len (_cdba ._gaaa ));case _gb .ChartType :_adgd :=chart {_eda :_a .NewChartSpace ()};_ega :=uint32 (len (_cdba ._eab ));_efee .AddTarget (_cca ,_adgd ._eda ,_fag ,_ega );_cdba ._eab =append (_cdba ._eab ,&_adgd );_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,len (_cdba ._eab ));_adgd ._abd =_ccge .TargetAttr ;case _gb .HandoutMasterType :_aag :=_cc .NewHandoutMaster ();_cef :=uint32 (len (_cdba ._acea ));_efee .AddTarget (_cca ,_aag ,_fag ,_cef );_cdba ._acea =append (_cdba ._acea ,_aag );_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,len (_cdba ._acea ));case _gb .NotesMasterType :_eff :=_cc .NewNotesMaster ();_egg :=uint32 (len (_cdba ._gaa ));_efee .AddTarget (_cca ,_eff ,_fag ,_egg );_cdba ._gaa =append (_cdba ._gaa ,_eff );_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,len (_cdba ._gaa ));case _gb .ExtendedPropertiesType :_efee .AddTarget (_cca ,_cdba .AppProperties .X (),_fag ,0);_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,0);case _gb .SlideType :_cgaf :=_cc .NewSld ();_cdba ._aab =append (_cdba ._aab ,_cgaf );_efee .AddTarget (_cca ,_cgaf ,_fag ,uint32 (len (_cdba ._aab )));_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,len (_cdba ._aab ));_gfec :=_ea .NewRelationships ();_efee .AddTarget (_gc .RelationsPathFor (_cca ),_gfec .X (),_fag ,0);_cdba ._abba =append (_cdba ._abba ,_gfec );case _gb .SlideMasterType :_eag :=_cc .NewSldMaster ();if !_efee .AddTarget (_cca ,_eag ,_fag ,uint32 (len (_cdba ._fda )+1)){return nil ;};_cdba ._fda =append (_cdba ._fda ,_eag );_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,len (_cdba ._fda ));_fadb :=_ea .NewRelationships ();_efee .AddTarget (_gc .RelationsPathFor (_cca ),_fadb .X (),_fag ,0);_cdba ._dde =append (_cdba ._dde ,_fadb );case _gb .SlideLayoutType :_dced :=_cc .NewSldLayout ();if !_efee .AddTarget (_cca ,_dced ,_fag ,uint32 (len (_cdba ._geg )+1)){return nil ;};_cdba ._geg =append (_cdba ._geg ,_dced );_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,len (_cdba ._geg ));_agfb :=_ea .NewRelationships ();_efee .AddTarget (_gc .RelationsPathFor (_cca ),_agfb .X (),_fag ,0);_cdba ._bgf =append (_cdba ._bgf ,_agfb );case _gb .ThumbnailType :for _abdf ,_gaag :=range _aaec {if _gaag ==nil {continue ;};if _gaag .Name ==_cca {_bbbb ,_ffgg :=_gaag .Open ();if _ffgg !=nil {return _da .Errorf ("e\u0072\u0072\u006f\u0072\u0020\u0072e\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0068\u0075m\u0062\u006e\u0061i\u006c:\u0020\u0025\u0073",_ffgg );};_cdba .Thumbnail ,_ ,_ffgg =_ab .Decode (_bbbb );_bbbb .Close ();if _ffgg !=nil {return _da .Errorf ("\u0065\u0072\u0072\u006fr\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020t\u0068u\u006d\u0062\u006e\u0061\u0069\u006c\u003a \u0025\u0073",_ffgg );};_aaec [_abdf ]=nil ;};};case _gb .ThemeType :_gab :=_fd .NewTheme ();if !_efee .AddTarget (_cca ,_gab ,_fag ,uint32 (len (_cdba ._gfb )+1)){return nil ;};_cdba ._gfb =append (_cdba ._gfb ,_gab );_ccge .TargetAttr =_gb .RelativeFilename (_dcd ,_bdcc .Typ ,_fag ,len (_cdba ._gfb ));_aeca :=_ea .NewRelationships ();_efee .AddTarget (_gc .RelationsPathFor (_cca ),_aeca .X (),_fag ,0);_cdba ._gbf =append (_cdba ._gbf ,_aeca );case _gb .ImageType :_cca =_f .Clean (_cca );if _bbfb ,_fge :=_cdba ._fed [_cca ];_fge {_ccge .TargetAttr =_bbfb ;return nil ;};_bag :="";for _bbfa ,_gcf :=range _aaec {if _gcf ==nil {continue ;};if _gcf .Name ==_cca {_cgafc ,_fgg :=_gc .ExtractToDiskTmp (_gcf ,_cdba .TmpPath );if _fgg !=nil {return _fgg ;};_ebeb ,_fgg :=_ea .ImageFromStorage (_cgafc );if _fgg !=nil {return _fgg ;};_bag =_ebeb .Format ;_cgcc :=_ea .MakeImageRef (_ebeb ,&_cdba .DocBase ,_cdba ._cbdb );_cgcc .SetTarget ("\u002e\u002e\u002f"+_cca [4:]);_cdba .Images =append (_cdba .Images ,_cgcc );_aaec [_bbfa ]=nil ;_efee .RecordIndex (_cca ,len (_cdba .Images ));break ;};};_geaa :=_efee .IndexFor (_cca );_ccge .TargetAttr =_gb .RelativeImageFilename (_dcd ,_bdcc .Typ ,_fag ,_geaa ,_bag );_cdba ._fed [_cca ]=_ccge .TargetAttr ;default:_e .Log .Debug ("\u0075\u006e\u0073\u0075\u0070p\u006f\u0072\u0074\u0065\u0064\u0020\u0072\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068\u0069\u0070\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0073\u0020\u0074\u0067\u0074\u003a\u0020\u0025\u0073",_fag ,_cca );};return nil ;};
// Remove removes a placeholder from a presentation.
func (_dba PlaceHolder )Remove ()error {for _fce ,_aea :=range _dba ._cdf .CSld .SpTree .Choice {for _ ,_daec :=range _aea .Sp {if _daec ==_dba ._gdg {copy (_dba ._cdf .CSld .SpTree .Choice [_fce :],_dba ._cdf .CSld .SpTree .Choice [_fce +1:]);_dba ._cdf .CSld .SpTree .Choice =_dba ._cdf .CSld .SpTree .Choice [0:len (_dba ._cdf .CSld .SpTree .Choice )-1];return nil ;};};};return _gg .New ("\u0070\u006c\u0061\u0063\u0065\u0068\u006f\u006c\u0064\u0065r\u0020\u006e\u006f\u0074\u0020\u0066\u006fu\u006e\u0064\u0020\u0069\u006e\u0020\u0073\u006c\u0069\u0064\u0065");};
// ViewProperties contains presentation specific properties.
type ViewProperties struct{_gdaf *_cc .ViewPr };func (_cbf *chart )RelId ()string {return _cbf ._ccg };
// SetTextAnchor controls the text anchoring
func (_egefe TextBox )SetTextAnchor (a _fd .ST_TextAnchoringType ){_egefe ._abde .TxBody .BodyPr =_fd .NewCT_TextBodyProperties ();_egefe ._abde .TxBody .BodyPr .AnchorAttr =a ;};
// Text returns text from a presentation as one string separated with line breaks.
func (_agf *PresentationText )Text ()string {_eadd :=_bd .NewBuffer ([]byte {});for _ ,_gfa :=range _agf .Slides {_eadd .WriteString (_gfa .Text ());};return _eadd .String ();};func _ccf ()*Presentation {_ffc :=&Presentation {_bbf :_cc .NewPresentation ()};_ffc ._bbf .SldIdLst =_cc .NewCT_SlideIdList ();_ffc ._bbf .ConformanceAttr =_cb .ST_ConformanceClassTransitional ;_ffc .AppProperties =_ea .NewAppProperties ();_ffc .CoreProperties =_ea .NewCoreProperties ();_ffc ._ace =_ea .NewTableStyles ();_ffc .ContentTypes =_ea .NewContentTypes ();_ffc .Rels =_ea .NewRelationships ();_ffc ._cbdb =_ea .NewRelationships ();_ffc ._cbde =NewPresentationProperties ();_ffc ._cfe =NewViewProperties ();_ffc ._fed =map[string ]string {};return _ffc ;};
// OutlineViewPr returns the OutlineViewPr property.
func (_cagd ViewProperties )OutlineViewPr ()*_cc .CT_OutlineViewProperties {return _cagd ._gdaf .OutlineViewPr ;};
// SlideSize represents a slide size of a presentation.
type SlideSize struct{_daef *_cc .CT_SlideSize ;_afbb *Presentation ;};
// Themes returns an array of presentation themes.
func (_cffa *Presentation )Themes ()[]*_fd .Theme {return _cffa ._gfb };
// NewSlideScreenSizeWithValue returns slide screen size with given width and height.
// Width and Height value is in EMU units, use our measurement.ToEMU to convert the -
// width and height value.
func NewSlideScreenSizeWithValue (width ,height int32 )SlideScreenSize {return SlideScreenSize {width ,height };};
// AddImage adds an image textbox to a slide.
func (_cgacf Slide )AddImage (img _ea .ImageRef )Image {_ccfd :=_cc .NewCT_GroupShapeChoice ();_cgacf ._bffe .CSld .SpTree .Choice =append (_cgacf ._bffe .CSld .SpTree .Choice ,_ccfd );_aaagd :=_cc .NewCT_Picture ();_ccfd .Pic =append (_ccfd .Pic ,_aaagd );_aaagd .NvPicPr .CNvPicPr =_fd .NewCT_NonVisualPictureProperties ();_aaagd .NvPicPr .CNvPicPr .PicLocks =_fd .NewCT_PictureLocking ();_aaagd .NvPicPr .CNvPicPr .PicLocks .NoChangeAspectAttr =_gb .Bool (true );_aaagd .BlipFill =_fd .NewCT_BlipFillProperties ();_aaagd .BlipFill .Blip =_fd .NewCT_Blip ();_dee :=_cgacf .AddImageToRels (img );_aaagd .BlipFill .Blip .EmbedAttr =_gb .String (_dee );_aaagd .BlipFill .Stretch =_fd .NewCT_StretchInfoProperties ();_aaagd .BlipFill .Stretch .FillRect =_fd .NewCT_RelativeRect ();_aaagd .SpPr =_fd .NewCT_ShapeProperties ();_aaagd .SpPr .PrstGeom =_fd .NewCT_PresetGeometry2D ();_aaagd .SpPr .PrstGeom .PrstAttr =_fd .ST_ShapeTypeRect ;_fecg :=Image {_aaagd };_dbag :=img .Size ();_fecg .Properties ().SetWidth (_acb .Distance (_dbag .X )*_acb .Pixel72 );_fecg .Properties ().SetHeight (_acb .Distance (_dbag .Y )*_acb .Pixel72 );_fecg .Properties ().SetPosition (0,0);return _fecg ;};func (_ccbb *Slide )ensureClrMap (){if len (_ccbb ._gag ._fda )==0||len (_ccbb ._gag ._gfb )==0{return ;};_dded :=_ccbb ._gag ._fda [0];_gdeg :=_dded .ClrMap ;if _eaedc :=_ccbb ._bffe .ClrMapOvr ;_eaedc !=nil {if _bccc :=_eaedc .Choice ;_bccc !=nil {if _bccc .MasterClrMapping ==nil {if _dbbg :=_bccc .OverrideClrMapping ;_dbbg !=nil {if _dbbg .Bg1Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Bg1Attr =_dbbg .Bg1Attr ;};if _dbbg .Tx1Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Tx1Attr =_dbbg .Tx1Attr ;};if _dbbg .Bg2Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Bg2Attr =_dbbg .Bg2Attr ;};if _dbbg .Tx2Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Tx2Attr =_dbbg .Tx2Attr ;};if _dbbg .Accent1Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Accent1Attr =_dbbg .Accent1Attr ;};if _dbbg .Accent2Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Accent2Attr =_dbbg .Accent2Attr ;};if _dbbg .Accent3Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Accent3Attr =_dbbg .Accent3Attr ;};if _dbbg .Accent4Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Accent4Attr =_dbbg .Accent4Attr ;};if _dbbg .Accent5Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Accent5Attr =_dbbg .Accent5Attr ;};if _dbbg .Accent6Attr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .Accent6Attr =_dbbg .Accent6Attr ;};if _dbbg .HlinkAttr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .HlinkAttr =_dbbg .HlinkAttr ;};if _dbbg .FolHlinkAttr !=_fd .ST_ColorSchemeIndexUnset {_gdeg .FolHlinkAttr =_dbbg .FolHlinkAttr ;};};};};};_ccbb ._dcee =_gdeg ;};func (_cbg sort2d )Swap (i ,j int ){_cbg [i ],_cbg [j ]=_cbg [j ],_cbg [i ]};type chart struct{_eda *_a .ChartSpace ;_ccg string ;_abd string ;};
// SetWidth sets width of slide screen size with given value in EMU units.
func (_ebad *SlideScreenSize )SetWidth (val int32 ){_ebad [0]=val };
// ShowCommentsAttr returns the WebPr property.
func (_cbef ViewProperties )ShowCommentsAttr ()*bool {return _cbef ._gdaf .ShowCommentsAttr };
// GetImageByRelID returns an ImageRef with the associated relation ID in the
// slide.
func (_gee *Slide )GetImageByRelID (relID string )(_ea .ImageRef ,bool ){_face :=_gee .getSlideRels ();if (_face ==_ea .Relationships {}){return _ea .ImageRef {},false ;};var _efd string ;for _ ,_cabf :=range _face .X ().Relationship {if _cabf .IdAttr ==relID {_efd =_cabf .TargetAttr ;break ;};};for _ ,_cgde :=range _gee ._gag .Images {if _cgde .Target ()==_efd {return _cgde ,true ;};};return _ea .ImageRef {},false ;};
// PlaceHolders returns all of the content place holders within a given slide.
func (_aeea Slide )PlaceHolders ()[]PlaceHolder {_bbfab :=[]PlaceHolder {};for _ ,_gccd :=range _aeea ._bffe .CSld .SpTree .Choice {for _ ,_fccf :=range _gccd .Sp {if _fccf .NvSpPr !=nil &&_fccf .NvSpPr .NvPr !=nil &&_fccf .NvSpPr .NvPr .Ph !=nil {_bbfab =append (_bbfab ,PlaceHolder {_fccf ,_aeea ._bffe });};};};return _bbfab ;};
// PrnPr returns the PrnPr property.
func (_gce PresentationProperties )PrnPr ()*_cc .CT_PrintProperties {return _gce ._cfbe .PrnPr };
// X returns the inner wrapped XML type.
func (_aafe *Presentation )X ()*_cc .Presentation {return _aafe ._bbf };
// ClrMru returns the ClrMru property.
func (_fbea PresentationProperties )ClrMru ()*_fd .CT_ColorMRU {return _fbea ._cfbe .ClrMru };
// X returns TextBox's underlying *pml.CT_Shape.
func (_egef TextBox )X ()*_cc .CT_Shape {return _egef ._abde };
// NewPresentationProperties constructs a new PresentationProperties.
func NewPresentationProperties ()PresentationProperties {return PresentationProperties {_cfbe :_cc .NewPresentationPr ()};};
// Properties returns the properties of the TextBox.
func (_cdd Image )Properties ()_ed .ShapeProperties {if _cdd ._cag .SpPr ==nil {_cdd ._cag .SpPr =_fd .NewCT_ShapeProperties ();};return _ed .MakeShapeProperties (_cdd ._cag .SpPr );};
// NewSlideScreenSize returns slide screen size with default MS PowerPoint slide screen size 16x9.
func NewSlideScreenSize ()SlideScreenSize {return NewSlideScreenSizeWithValue (SlideScreenSize16x9 [0],SlideScreenSize16x9 [1]);};
// AddParagraph adds a paragraph to the text box
func (_bgb TextBox )AddParagraph ()_ed .Paragraph {_ddee :=_fd .NewCT_TextParagraph ();_bgb ._abde .TxBody .P =append (_bgb ._abde .TxBody .P ,_ddee );return _ed .MakeParagraph (_ddee );};
// GetPlaceholder returns a placeholder given its type. If there are multiplace
// placeholders of the same type, this method returns the first one. You must use the
// PlaceHolders() method to access the others.
func (_fddc Slide )GetPlaceholder (t _cc .ST_PlaceholderType )(PlaceHolder ,error ){for _ ,_aaecb :=range _fddc ._bffe .CSld .SpTree .Choice {for _ ,_gcee :=range _aaecb .Sp {if _gcee .NvSpPr !=nil &&_gcee .NvSpPr .NvPr !=nil &&_gcee .NvSpPr .NvPr .Ph !=nil {if _gcee .NvSpPr .NvPr .Ph .TypeAttr ==t {return PlaceHolder {_gcee ,_fddc ._bffe },nil ;};};};};return PlaceHolder {},_gg .New ("\u0075\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0066i\u006e\u0064\u0020\u0070\u006c\u0061\u0063\u0065\u0068\u006fl\u0064\u0065\u0072");};
// GetTextBoxes returns a list of all text boxes from a slide.
func (_fddf Slide )GetTextBoxes ()[]*TextBox {_bcff :=[]*TextBox {};_edea :=_fddf ._bffe .CSld .SpTree .Choice ;for _ ,_ggf :=range _edea {for _ ,_cffe :=range _ggf .Sp {if _cffe .NvSpPr .CNvSpPr .TxBoxAttr !=nil &&*_cffe .NvSpPr .CNvSpPr .TxBoxAttr {_bcff =append (_bcff ,&TextBox {_cffe });};};};return _bcff ;};
// GetLayoutByName retrieves a slide layout given a layout name.
func (_gdb *Presentation )GetLayoutByName (name string )(SlideLayout ,error ){for _ ,_gdgc :=range _gdb ._geg {if _gdgc .CSld .NameAttr !=nil &&name ==*_gdgc .CSld .NameAttr {return SlideLayout {_gdgc },nil ;};};return SlideLayout {},_gg .New ("\u0075\u006eab\u006c\u0065\u0020t\u006f\u0020\u0066\u0069nd \u006cay\u006f\u0075\u0074\u0020\u0077\u0069\u0074h \u0074\u0068\u0061\u0074\u0020\u006e\u0061m\u0065");};
// ValidateWithPath validates the slide passing path informaton for a better
// error message.
func (_gdgg Slide )ValidateWithPath (path string )error {if _dgded :=_gdgg ._bffe .ValidateWithPath (path );_dgded !=nil {return _dgded ;};for _ ,_badd :=range _gdgg ._bffe .CSld .SpTree .Choice {for _ ,_cee :=range _badd .Sp {if _cee .TxBody !=nil {if len (_cee .TxBody .P )==0{return _gg .New (path +"\u0020\u003a \u0073\u006c\u0069\u0064\u0065 \u0073\u0068\u0061\u0070\u0065 \u0077\u0069\u0074\u0068\u0020\u0061\u0020\u0074\u0078\u0062\u006f\u0064\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0070\u0061\u0072\u0061\u0067\u0072\u0061\u0070\u0068\u0073");};};};};return nil ;};
// SlideViewPr returns the SlideViewPr property.
func (_fdb ViewProperties )SlideViewPr ()*_cc .CT_SlideViewProperties {return _fdb ._gdaf .SlideViewPr };
// SetOffsetX sets horizontal offset of text box in distance units (see measurement package).
func (_dbagg TextBox )SetOffsetX (offX float64 ){_dgb :=_dbagg .getOff ();_egcb :=_acb .ToEMU (offX );_dgb .XAttr =_fd .ST_Coordinate {ST_CoordinateUnqualified :&_egcb };};var (SlideScreenSize16x9 =SlideScreenSize {12192000,6858000};SlideScreenSize4x3 =SlideScreenSize {9144000,6858000};SlideScreenSizeA4 =SlideScreenSize {9906000,6858000};);
// NewViewProperties constructs a new ViewProperties.
func NewViewProperties ()ViewProperties {return ViewProperties {_gdaf :_cc .NewViewPr ()}};var _cgac =false ;
// ExtLst returns the ExtLst property.
func (_aeb PresentationProperties )ExtLst ()*_cc .CT_ExtensionList {return _aeb ._cfbe .ExtLst };
// SlideLayout is a layout from which slides can be created.
type SlideLayout struct{_aecga *_cc .SldLayout };
// SlideMaster is the slide master for a presentation.
type SlideMaster struct{_cffd *Presentation ;_fgff _ea .Relationships ;_bffb *_cc .SldMaster ;};
// AddParagraph adds a new paragraph to a placeholder.
func (_bab PlaceHolder )AddParagraph ()_ed .Paragraph {_dge :=_ed .MakeParagraph (_fd .NewCT_TextParagraph ());_bab ._gdg .TxBody .P =append (_bab ._gdg .TxBody .P ,_dge .X ());return _dge ;};
// New initializes and reurns a new presentation
func New ()*Presentation {_caab :=_ccf ();_caab .ContentTypes .AddOverride ("/\u0070\u0070\u0074\u002fpr\u0065s\u0065\u006e\u0074\u0061\u0074i\u006f\u006e\u002e\u0078\u006d\u006c","\u0061\u0070\u0070\u006c\u0069\u0063\u0061t\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006ff\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u006d\u006c\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u002e\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");_caab .Rels .AddRelationship ("\u0064\u006f\u0063\u0050\u0072\u006f\u0070\u0073\u002f\u0063\u006f\u0072e\u002e\u0078\u006d\u006c","\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0070\u0061\u0063\u006ba\u0067\u0065\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065\u0074\u0061\u0064\u0061\u0074\u0061/\u0063\u006f\u0072\u0065\u002d\u0070\u0072\u006f\u0070e\u0072\u0074i\u0065\u0073");_caab .Rels .AddRelationship ("\u0064\u006fc\u0050\u0072\u006fp\u0073\u002f\u0061\u0070\u0070\u002e\u0078\u006d\u006c","\u0068t\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069p\u0073\u002f\u0065x\u0074\u0065\u006e\u0064\u0065d\u002d\u0070\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_caab .Rels .AddRelationship ("p\u0070t\u002f\u0070\u0072\u0065\u0073\u0065\u006e\u0074a\u0074\u0069\u006f\u006e.x\u006d\u006c","\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072g\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006fc\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074");_caab .Rels .AddRelationship ("\u0070\u0070\u0074\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c","ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070\u0073");_caab .Rels .AddRelationship ("\u0070\u0070\u0074\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c","ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070\u0073");_caab .Rels .AddRelationship ("\u0070\u0070\u0074\u002fta\u0062\u006c\u0065\u0053\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c","\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0074\u0061\u0062\u006c\u0065\u0053\u0074\u0079\u006ce\u0073");_caab ._bbf .SldMasterIdLst =_cc .NewCT_SlideMasterIdList ();_bdg :=_cc .NewSldMaster ();_bdg .ClrMap .Bg1Attr =_fd .ST_ColorSchemeIndexLt1 ;_bdg .ClrMap .Bg2Attr =_fd .ST_ColorSchemeIndexLt2 ;_bdg .ClrMap .Tx1Attr =_fd .ST_ColorSchemeIndexDk1 ;_bdg .ClrMap .Tx2Attr =_fd .ST_ColorSchemeIndexDk2 ;_bdg .ClrMap .Accent1Attr =_fd .ST_ColorSchemeIndexAccent1 ;_bdg .ClrMap .Accent2Attr =_fd .ST_ColorSchemeIndexAccent2 ;_bdg .ClrMap .Accent3Attr =_fd .ST_ColorSchemeIndexAccent3 ;_bdg .ClrMap .Accent4Attr =_fd .ST_ColorSchemeIndexAccent4 ;_bdg .ClrMap .Accent5Attr =_fd .ST_ColorSchemeIndexAccent5 ;_bdg .ClrMap .Accent6Attr =_fd .ST_ColorSchemeIndexAccent6 ;_bdg .ClrMap .HlinkAttr =_fd .ST_ColorSchemeIndexHlink ;_bdg .ClrMap .FolHlinkAttr =_fd .ST_ColorSchemeIndexFolHlink ;_caab ._fda =append (_caab ._fda ,_bdg );_ef :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .SlideMasterType ,1);_caab .ContentTypes .AddOverride (_ef ,_gb .SlideMasterContentType );_aece :=_caab ._cbdb .AddAutoRelationship (_gb .DocTypePresentation ,_gb .OfficeDocumentType ,1,_gb .SlideMasterType );_abef :=_cc .NewCT_SlideMasterIdListEntry ();_abef .IdAttr =_gb .Uint32 (2147483648);_abef .RIdAttr =_aece .ID ();_caab ._bbf .SldMasterIdLst .SldMasterId =append (_caab ._bbf .SldMasterIdLst .SldMasterId ,_abef );_ccb :=_ea .NewRelationships ();_caab ._dde =append (_caab ._dde ,_ccb );_cad :=_cc .NewSldLayout ();_fgd :=_ccb .AddAutoRelationship (_gb .DocTypePresentation ,_gb .SlideMasterType ,1,_gb .SlideLayoutType );_aaf :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .SlideLayoutType ,1);_caab .ContentTypes .AddOverride (_aaf ,_gb .SlideLayoutContentType );_ccb .AddAutoRelationship (_gb .DocTypePresentation ,_gb .SlideMasterType ,1,_gb .ThemeType );_caab ._geg =append (_caab ._geg ,_cad );_bdg .SldLayoutIdLst =_cc .NewCT_SlideLayoutIdList ();_gge :=_cc .NewCT_SlideLayoutIdListEntry ();_gge .IdAttr =_gb .Uint32 (2147483649);_gge .RIdAttr =_fgd .ID ();_bdg .SldLayoutIdLst .SldLayoutId =append (_bdg .SldLayoutIdLst .SldLayoutId ,_gge );_fgc :=_ea .NewRelationships ();_caab ._bgf =append (_caab ._bgf ,_fgc );_fgc .AddAutoRelationship (_gb .DocTypePresentation ,_gb .SlideType ,1,_gb .SlideMasterType );_caab ._bbf .NotesSz .CxAttr =6858000;_caab ._bbf .NotesSz .CyAttr =9144000;_fdg :=_fd .NewTheme ();_fdg .NameAttr =_gb .String ("\u0075n\u0069o\u0066\u0066\u0069\u0063\u0065\u0020\u0054\u0068\u0065\u006d\u0065");_fdg .ThemeElements .ClrScheme .NameAttr ="\u004f\u0066\u0066\u0069\u0063\u0065";_fdg .ThemeElements .ClrScheme .Dk1 .SysClr =_fd .NewCT_SystemColor ();_fdg .ThemeElements .ClrScheme .Dk1 .SysClr .LastClrAttr =_gb .String ("\u0030\u0030\u0030\u0030\u0030\u0030");_fdg .ThemeElements .ClrScheme .Dk1 .SysClr .ValAttr =_fd .ST_SystemColorValWindowText ;_fdg .ThemeElements .ClrScheme .Lt1 .SysClr =_fd .NewCT_SystemColor ();_fdg .ThemeElements .ClrScheme .Lt1 .SysClr .LastClrAttr =_gb .String ("\u0066\u0066\u0066\u0066\u0066\u0066");_fdg .ThemeElements .ClrScheme .Lt1 .SysClr .ValAttr =_fd .ST_SystemColorValWindow ;_fdg .ThemeElements .ClrScheme .Dk2 .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .Dk2 .SrgbClr .ValAttr ="\u0034\u0034\u0035\u0034\u0036\u0061";_fdg .ThemeElements .ClrScheme .Lt2 .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .Lt2 .SrgbClr .ValAttr ="\u0065\u0037\u0065\u0037\u0065\u0036";_fdg .ThemeElements .ClrScheme .Accent1 .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .Accent1 .SrgbClr .ValAttr ="\u0034\u0034\u0037\u0032\u0063\u0034";_fdg .ThemeElements .ClrScheme .Accent2 .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .Accent2 .SrgbClr .ValAttr ="\u0065\u0064\u0037\u0064\u0033\u0031";_fdg .ThemeElements .ClrScheme .Accent3 .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .Accent3 .SrgbClr .ValAttr ="\u0061\u0035\u0061\u0035\u0061\u0035";_fdg .ThemeElements .ClrScheme .Accent4 .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .Accent4 .SrgbClr .ValAttr ="\u0066\u0066\u0063\u0030\u0030\u0030";_fdg .ThemeElements .ClrScheme .Accent5 .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .Accent5 .SrgbClr .ValAttr ="\u0035\u0062\u0039\u0062\u0064\u0035";_fdg .ThemeElements .ClrScheme .Accent6 .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .Accent6 .SrgbClr .ValAttr ="\u0037\u0030\u0061\u0064\u0034\u0037";_fdg .ThemeElements .ClrScheme .Hlink .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .Hlink .SrgbClr .ValAttr ="\u0030\u0035\u0036\u0033\u0063\u0031";_fdg .ThemeElements .ClrScheme .FolHlink .SrgbClr =_fd .NewCT_SRgbColor ();_fdg .ThemeElements .ClrScheme .FolHlink .SrgbClr .ValAttr ="\u0039\u0035\u0034\u0066\u0037\u0032";_fdg .ThemeElements .FontScheme .NameAttr ="\u004f\u0066\u0066\u0069\u0063\u0065";_fdg .ThemeElements .FontScheme .MajorFont .Latin .TypefaceAttr ="\u0043\u0061\u006c\u0069\u0062\u0072\u0069\u0020\u004c\u0069\u0067\u0068\u0074";_fdg .ThemeElements .FontScheme .MinorFont .Latin .TypefaceAttr ="\u0043a\u006c\u0069\u0062\u0072\u0069";_fdg .ThemeElements .FmtScheme .NameAttr =_gb .String ("\u004f\u0066\u0066\u0069\u0063\u0065");_dbc :=_fd .NewEG_FillProperties ();_fdg .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties =append (_fdg .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties ,_dbc );_dbc .SolidFill =&_fd .CT_SolidColorFillProperties {SchemeClr :&_fd .CT_SchemeColor {ValAttr :_fd .ST_SchemeColorValPhClr }};_dbc =_fd .NewEG_FillProperties ();_fdg .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties =append (_fdg .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties ,_dbc );_fdg .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties =append (_fdg .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties ,_dbc );_dbc .GradFill =&_fd .CT_GradientFillProperties {RotWithShapeAttr :_gb .Bool (true ),GsLst :&_fd .CT_GradientStopList {},Lin :&_fd .CT_LinearShadeProperties {}};_dbc .GradFill .Lin .AngAttr =_gb .Int32 (5400000);_dbc .GradFill .Lin .ScaledAttr =_gb .Bool (false );_bac :=_fd .NewCT_GradientStop ();_bac .PosAttr .ST_PositiveFixedPercentageDecimal =_gb .Int32 (0);_bac .SchemeClr =&_fd .CT_SchemeColor {ValAttr :_fd .ST_SchemeColorValPhClr };_dbc .GradFill .GsLst .Gs =append (_dbc .GradFill .GsLst .Gs ,_bac );_bac =_fd .NewCT_GradientStop ();_bac .PosAttr .ST_PositiveFixedPercentageDecimal =_gb .Int32 (50000);_bac .SchemeClr =&_fd .CT_SchemeColor {ValAttr :_fd .ST_SchemeColorValPhClr };_dbc .GradFill .GsLst .Gs =append (_dbc .GradFill .GsLst .Gs ,_bac );_fdg .ThemeElements .FmtScheme .LnStyleLst =_fd .NewCT_LineStyleList ();for _gdc :=0;_gdc < 3;_gdc ++{_ggea :=_fd .NewCT_LineProperties ();_ggea .WAttr =_gb .Int32 (int32 (6350*(_gdc +1)));_ggea .CapAttr =_fd .ST_LineCapFlat ;_ggea .CmpdAttr =_fd .ST_CompoundLineSng ;_ggea .AlgnAttr =_fd .ST_PenAlignmentCtr ;_fdg .ThemeElements .FmtScheme .LnStyleLst .Ln =append (_fdg .ThemeElements .FmtScheme .LnStyleLst .Ln ,_ggea );};_fdg .ThemeElements .FmtScheme .EffectStyleLst =_fd .NewCT_EffectStyleList ();for _gfe :=0;_gfe < 3;_gfe ++{_aegc :=_fd .NewCT_EffectStyleItem ();_aegc .EffectLst =_fd .NewCT_EffectList ();_fdg .ThemeElements .FmtScheme .EffectStyleLst .EffectStyle =append (_fdg .ThemeElements .FmtScheme .EffectStyleLst .EffectStyle ,_aegc );};_bggc :=_fd .NewEG_FillProperties ();_bggc .SolidFill =&_fd .CT_SolidColorFillProperties {SchemeClr :&_fd .CT_SchemeColor {ValAttr :_fd .ST_SchemeColorValPhClr }};_fdg .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties =append (_fdg .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties ,_bggc );_fdg .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties =append (_fdg .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties ,_bggc );_fdg .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties =append (_fdg .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties ,_dbc );_caab ._gfb =append (_caab ._gfb ,_fdg );_efb :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .ThemeType ,1);_caab .ContentTypes .AddOverride (_efb ,_gb .ThemeContentType );_caab ._cbdb .AddAutoRelationship (_gb .DocTypePresentation ,_gb .OfficeDocumentType ,1,_gb .ThemeType );_dffd :=_ea .NewRelationships ();_caab ._gbf =append (_caab ._gbf ,_dffd );return _caab ;};
// SetText sets the text of a placeholder for the initial paragraph. This is a
// shortcut method that is useful for things like titles which only contain a
// single paragraph.
func (_cced PlaceHolder )SetText (text string ){_cced .Clear ();_cgcda :=_fd .NewEG_TextRun ();_cgcda .R =_fd .NewCT_RegularTextRun ();_cgcda .R .T =text ;if len (_cced ._gdg .TxBody .P )==0{_cced ._gdg .TxBody .P =append (_cced ._gdg .TxBody .P ,_fd .NewCT_TextParagraph ());};_cced ._gdg .TxBody .P [0].EG_TextRun =nil ;_cced ._gdg .TxBody .P [0].EG_TextRun =append (_cced ._gdg .TxBody .P [0].EG_TextRun ,_cgcda );};
// PresentationProperties contains document specific properties.
type PresentationProperties struct{_cfbe *_cc .PresentationPr };
// TableInfo is used for keep information about a table, a row and a cell where the text is located.
type TableInfo struct{Table *_fd .CT_Table ;Row *_fd .CT_TableRow ;Cell *_fd .CT_TableCell ;RowIndex int ;ColIndex int ;};func _eed (_de *Presentation ,_cgd *_cc .CT_Shape ,_eb *_cc .CT_GraphicalObjectFrame ,_cfd *TableInfo ,_cd *_fd .CT_Transform2D ,_db int ,_dgg []rectangle ,_ebd []*_fd .CT_TextParagraph )[]*TextItem {_bdf :=[]*TextItem {};var _gf ,_ffag ,_cce ,_cfb ,_ffd ,_cgff int64 ;_afa :=_cd ==nil ;_fbe :=0;for _ ,_dcb :=range _ebd {for _ ,_agbc :=range _dcb .EG_TextRun {if _bfe :=_agbc .R ;_bfe !=nil {if !_afa {if _cd .Off !=nil {if _fc :=_cd .Ext ;_fc !=nil {_ffd ,_cgff =_fc .CxAttr ,_fc .CyAttr ;};if _cff :=_cd .Off .XAttr .ST_CoordinateUnqualified ;_cff !=nil {_gf =*_cff ;_ffag =_gf +_ffd ;_afa =true ;};if _cgc :=_cd .Off .YAttr .ST_CoordinateUnqualified ;_cgc !=nil {_cce =*_cgc ;_cfb =_cce +_cgff ;_afa =true ;};};};_ead :=append ([]rectangle {},_dgg ...);_ead =append (_ead ,rectangle {_dc :_gf ,_ec :_ffag ,_bec :_cce ,_ca :_cfb });_bdf =append (_bdf ,&TextItem {Presentation :_de ,Shape :_cgd ,GraphicFrame :_eb ,TableInfo :_cfd ,Paragraph :_dcb ,Run :_bfe ,Text :_bfe .T ,_be :_ead ,_abf :_db ,_ccgb :_fbe });_fbe ++;};};};return _bdf ;};
// ShowPr returns the ShowPr property.
func (_abb PresentationProperties )ShowPr ()*_cc .CT_ShowProperties {return _abb ._cfbe .ShowPr };
// X returns the inner wrapped XML type.
func (_agbac SlideLayout )X ()*_cc .SldLayout {return _agbac ._aecga };type rectangle struct{_dc int64 ;_bec int64 ;_ec int64 ;_ca int64 ;};
// WebPr returns the WebPr property.
func (_ffagg PresentationProperties )WebPr ()*_cc .CT_WebProperties {return _ffagg ._cfbe .WebPr };
// Less is for implementing sorting of two locations. Symbols share the same location if they are in the same paragraph or table. One location is 'less' than another first by y coordinate, if y coordinates are equal or differ by less than yEpsilon, then x coordinates are compared, then if they are also equal, indexes of locations in the table are compared, then positions of locations in a paragraph.
func (_cgb sort2d )Less (i ,j int )bool {_cgcd ,_dab :=_cgb [i ],_cgb [j ];_ceca ,_abdc :=_cgcd ._be ,_dab ._be ;_aa ,_ceb :=len (_ceca )-1,len (_abdc )-1;_df ,_abfe :=0,0;for {_agec ,_ecf ,_ecd ,_ba ,_bc ,_gbc ,_cedc ,_gad :=_ceca [_df ]._bec ,_abdc [_abfe ]._bec ,_ceca [_df ]._ca ,_abdc [_abfe ]._ca ,_ceca [_df ]._dc ,_abdc [_abfe ]._dc ,_ceca [_df ]._ec ,_abdc [_abfe ]._ec ;if _agec ==_ecf ||((_cgg .Abs (float64 (_agec )-float64 (_ecf ))< _fcac )&&((_agec >=_ecf &&_agec <=_ba )||(_ecf >=_agec &&_ecf <=_ecd ))&&(_cedc < _gbc ||_bc > _gad )){if _bc ==_gbc {if _df < _aa &&_abfe < _ceb {_df ++;_abfe ++;continue ;};if _df >=_aa &&_abfe >=_ceb {break ;};return _df >=_aa ;}else {return _bc < _gbc ;};}else {return _agec < _ecf ;};};_cdb ,_aae ,_gfc ,_fdc :=_cgcd ._abf ,_dab ._abf ,_cgcd ._ccgb ,_dab ._ccgb ;if _cdb ==_aae {return _gfc <=_fdc ;};return _cdb < _aae ;};
// SlideScreenSize represents the slide screen size as a 2 element array
// representing the width and height in EMU units.
type SlideScreenSize [2]int32 ;
// SorterViewPr returns the SorterViewPr property.
func (_ddaf ViewProperties )SorterViewPr ()*_cc .CT_SlideSorterViewProperties {return _ddaf ._gdaf .SorterViewPr ;};
// Clear clears the placeholder contents and adds a single empty paragraph. The
// empty paragrah is required by PowerPoint or it will report the file as being
// invalid.
func (_becb PlaceHolder )Clear (){_becb .ClearAll ();_fgf :=_fd .NewCT_TextParagraph ();_becb ._gdg .TxBody .P =[]*_fd .CT_TextParagraph {_fgf };_fgf .EndParaRPr =_fd .NewCT_TextCharacterProperties ();_fgf .EndParaRPr .LangAttr =_gb .String ("\u0065\u006e\u002dU\u0053");};
// GetPlaceholderByIndex returns a placeholder given its index. If there are multiplace
// placeholders of the same index, this method returns the first one. You must use the
// PlaceHolders() method to access the others.
func (_gbb Slide )GetPlaceholderByIndex (idx uint32 )(PlaceHolder ,error ){for _ ,_ggaf :=range _gbb ._bffe .CSld .SpTree .Choice {for _ ,_agba :=range _ggaf .Sp {if _agba .NvSpPr !=nil &&_agba .NvSpPr .NvPr !=nil &&_agba .NvSpPr .NvPr .Ph !=nil {if (idx ==0&&_agba .NvSpPr .NvPr .Ph .IdxAttr ==nil )||(_agba .NvSpPr .NvPr .Ph .IdxAttr !=nil &&*_agba .NvSpPr .NvPr .Ph .IdxAttr ==idx ){return PlaceHolder {_agba ,_gbb ._bffe },nil ;};};};};return PlaceHolder {},_gg .New ("\u0075\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0066i\u006e\u0064\u0020\u0070\u006c\u0061\u0063\u0065\u0068\u006fl\u0064\u0065\u0072");};
// NormalViewPr returns the NormalViewPr property.
func (_effg ViewProperties )NormalViewPr ()*_cc .CT_NormalViewProperties {return _effg ._gdaf .NormalViewPr ;};
// AddTable adds a new table to a placeholder.
func (_caa PlaceHolder )AddTable ()*_ea .Table {_caa .Clear ();_fbg :=_cc .NewCT_GroupShapeChoice ();_caa ._cdf .CSld .SpTree .Choice =append (_caa ._cdf .CSld .SpTree .Choice ,_fbg );_ggd :=_cc .NewCT_GraphicalObjectFrame ();_fbg .GraphicFrame =append (_fbg .GraphicFrame ,_ggd );_ggd .Xfrm .Off =_fd .NewCT_Point2D ();_gbe :=int64 (1);_ggd .Xfrm .Off .XAttr =_fd .ST_Coordinate {ST_CoordinateUnqualified :&_gbe };_ggd .Xfrm .Off .YAttr =_fd .ST_Coordinate {ST_CoordinateUnqualified :&_gbe };_bbc :=_ggd .Graphic .CT_GraphicalObject .GraphicData ;_bbc .UriAttr ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u006dl/\u0032\u0030\u0030\u0036\u002f\u0074\u0061\u0062\u006c\u0065";_agcf :=_ea .NewTableWithXfrm (_ggd .Xfrm );_bbc .Any =append (_bbc .Any ,_agcf .X ());return _agcf ;};
// Close closes the presentation, removing any temporary files that might have been
// created when opening a document.
func (_eaed *Presentation )Close ()error {if _eaed .TmpPath !=""{return _gcb .RemoveAll (_eaed .TmpPath );};return nil ;};
// SlideLayouts returns a slice of all layouts in SlideMaster.
func (_dgf SlideMaster )SlideLayouts ()[]SlideLayout {_bbd :=map[string ]int {};_add :=[]SlideLayout {};for _ ,_bde :=range _dgf ._fgff .Relationships (){_afeg :=_g .Replace (_bde .Target (),".\u002e\u002f\u0073\u006c\u0069\u0064e\u004c\u0061\u0079\u006f\u0075\u0074\u0073\u002f\u0073l\u0069\u0064\u0065L\u0061y\u006f\u0075\u0074","",-1);_afeg =_g .Replace (_afeg ,"\u002e\u0078\u006d\u006c","",-1);if _adff ,_dabe :=_ac .ParseInt (_afeg ,10,32);_dabe ==nil {_bbd [_bde .ID ()]=int (_adff );};};for _ ,_bee :=range _dgf ._bffb .SldLayoutIdLst .SldLayoutId {if _ddcf ,_aada :=_bbd [_bee .RIdAttr ];_aada {_feace :=_dgf ._cffd ._geg [_ddcf -1];_add =append (_add ,SlideLayout {_feace });};};return _add ;};func (_abe *chart )X ()*_a .ChartSpace {return _abe ._eda };
// RemoveSlide removes a slide from a presentation.
func (_gga *Presentation )RemoveSlide (s Slide )error {_faca :=false ;_afb :=0;for _cbac ,_caae :=range _gga ._aab {if _caae ==s ._bffe {if _gga ._bbf .SldIdLst .SldId [_cbac ]!=s ._egf {return _gg .New ("i\u006e\u0063\u006f\u006e\u0073\u0069s\u0074\u0065\u006e\u0063\u0079\u0020i\u006e\u0020\u0073\u006c\u0069\u0064\u0065s\u0020\u0061\u006e\u0064\u0020\u0049\u0044\u0020\u006c\u0069s\u0074");};copy (_gga ._aab [_cbac :],_gga ._aab [_cbac +1:]);_gga ._aab =_gga ._aab [0:len (_gga ._aab )-1];copy (_gga ._abba [_cbac :],_gga ._abba [_cbac +1:]);_gga ._abba =_gga ._abba [0:len (_gga ._abba )-1];copy (_gga ._bbf .SldIdLst .SldId [_cbac :],_gga ._bbf .SldIdLst .SldId [_cbac +1:]);_gga ._bbf .SldIdLst .SldId =_gga ._bbf .SldIdLst .SldId [0:len (_gga ._bbf .SldIdLst .SldId )-1];_faca =true ;_afb =_cbac ;};};if !_faca {return _gg .New ("u\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0066i\u006e\u0064\u0020\u0073li\u0064\u0065");};_bcc :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .SlideType ,0);return _gga .ContentTypes .RemoveOverrideByIndex (_bcc ,_afb );};
// SetHeight sets height of slide screen size with given value in EMU units.
func (_bbcg *SlideScreenSize )SetHeight (val int32 ){_bbcg [1]=val };
// Slides returns the slides in the presentation.
func (_bbcb *Presentation )Slides ()[]Slide {_edbb :=[]Slide {};for _egd ,_gcbd :=range _bbcb ._aab {_edbb =append (_edbb ,Slide {_bbcb ._bbf .SldIdLst .SldId [_egd ],_gcbd ,_bbcb ,nil });};return _edbb ;};
// AddImageToRels adds an image relationship to a slide without putting image on the slide.
func (_gbfa Slide )AddImageToRels (img _ea .ImageRef )string {_ffgb :=0;for _dedf ,_gfd :=range _gbfa ._gag .Images {if _gfd ==img {_ffgb =_dedf +1;break ;};};var _baf string ;for _ccfg ,_efc :=range _gbfa ._gag .Slides (){if _efc ._bffe ==_gbfa ._bffe {_bdgf :=_da .Sprintf ("\u002e\u002e\u002f\u006ded\u0069\u0061\u002f\u0069\u006d\u0061\u0067\u0065\u0025\u0064\u002e\u0025\u0073",_ffgb ,img .Format ());_geae :=_gbfa ._gag ._abba [_ccfg ].AddRelationship (_bdgf ,_gb .ImageType );_baf =_geae .ID ();};};return _baf ;};
// Type returns the placeholder type
func (_dcba PlaceHolder )Type ()_cc .ST_PlaceholderType {return _dcba ._gdg .NvSpPr .NvPr .Ph .TypeAttr };
// NotesTextViewPr returns the NotesTextViewPr property.
func (_abdb ViewProperties )NotesTextViewPr ()*_cc .CT_NotesTextViewProperties {return _abdb ._gdaf .NotesTextViewPr ;};
// ExtLst returns the ExtLst property.
func (_bea ViewProperties )ExtLst ()*_cc .CT_ExtensionList {return _bea ._gdaf .ExtLst };
// Presentation returns a slide's presentation.
func (_begc Slide )Presentation ()*Presentation {return _begc ._gag };func (_edeg *Presentation )saveToFile (_bffg string ,_bfbc bool )error {_edcb ,_bce :=_ada .Create (_bffg );if _bce !=nil {return _bce ;};defer _edcb .Close ();return _edeg .save (_edcb ,_bfbc );};
// GetSlideLayout returns a slide layout related to the slide.
func (_fbf *Slide )GetSlideLayout ()*_cc .SldLayout {for _cgcb ,_gdec :=range _fbf ._gag .Slides (){if *_fbf ==_gdec {return _fbf ._gag ._geg [len (_fbf ._gag .Slides ())-_cgcb -1];};};return nil ;};
// Height returns slide screen size height in EMU units.
func (_daae *SlideScreenSize )Height ()int32 {return _daae [1]};
// X returns the inner wrapped XML type.
func (_fggc Slide )X ()*_cc .Sld {return _fggc ._bffe };
// PlaceHolder is a place holder from a slide.
type PlaceHolder struct{_gdg *_cc .CT_Shape ;_cdf *_cc .Sld ;};
// ExtractText returns text from a slide as a SlideText object.
func (_cgf *Slide )ExtractText ()*SlideText {_ae :=_fb (_cgf ._gag ,_cgf ._bffe .CSld .SpTree .Choice ,[]rectangle {},[]*TextItem {});_ff .Sort (sort2d (_ae ));return &SlideText {Items :_ae };};
// AddSlideWithLayout adds a new slide with content copied from a layout. Normally you should
// use AddDefaultSlideWithLayout as it will do some post processing similar to PowerPoint to
// clear place holder text, etc.
func (_dggd *Presentation )AddSlideWithLayout (l SlideLayout )(Slide ,error ){_gfbe :=_cc .NewCT_SlideIdListEntry ();_gfbe .IdAttr =256;for _ ,_ffff :=range _dggd ._bbf .SldIdLst .SldId {if _ffff .IdAttr >=_gfbe .IdAttr {_gfbe .IdAttr =_ffff .IdAttr +1;};};_dggd ._bbf .SldIdLst .SldId =append (_dggd ._bbf .SldIdLst .SldId ,_gfbe );_ede :=_cc .NewSld ();_cdfd :=_bd .Buffer {};_ebef :=_cf .NewEncoder (&_cdfd );_eaca :=_cf .StartElement {Name :_cf .Name {Local :"\u0073\u006c\u0069d\u0065"}};_eaca .Attr =append (_eaca .Attr ,_cf .Attr {Name :_cf .Name {Local :"\u0078\u006d\u006cn\u0073"},Value :"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002f\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069o\u006e\u006d\u006c\u002f\u0032\u00300\u0036\u002f\u006da\u0069\u006e"});_eaca .Attr =append (_eaca .Attr ,_cf .Attr {Name :_cf .Name {Local :"\u0078m\u006c\u006e\u0073\u003a\u0061"},Value :"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065m\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006cf\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067m\u006c\u002f\u0032\u0030\u0030\u0036\u002f\u006d\u0061\u0069\u006e"});_eaca .Attr =append (_eaca .Attr ,_cf .Attr {Name :_cf .Name {Local :"\u0078m\u006c\u006e\u0073\u003a\u0070"},Value :"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002f\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069o\u006e\u006d\u006c\u002f\u0032\u00300\u0036\u002f\u006da\u0069\u006e"});_eaca .Attr =append (_eaca .Attr ,_cf .Attr {Name :_cf .Name {Local :"\u0078m\u006c\u006e\u0073\u003a\u0072"},Value :"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069c\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073"});_eaca .Attr =append (_eaca .Attr ,_cf .Attr {Name :_cf .Name {Local :"\u0078\u006d\u006c\u006e\u0073\u003a\u0073\u0068"},Value :"\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065m\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067/\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0073\u0068\u0061\u0072e\u0064\u0054\u0079\u0070\u0065\u0073"});_eaca .Attr =append (_eaca .Attr ,_cf .Attr {Name :_cf .Name {Local :"\u0078m\u006c\u006e\u0073\u003a\u0078\u006dl"},Value :"\u0068\u0074tp\u003a\u002f\u002fw\u0077\u0077\u002e\u00773.o\u0072g/\u0058\u004d\u004c\u002f\u0031\u0039\u00398/\u006e\u0061\u006d\u0065\u0073\u0070\u0061c\u0065"});if _eaa :=l ._aecga .CSld .MarshalXML (_ebef ,_eaca );_eaa !=nil {return Slide {},_eaa ;};_ebef .Flush ();_fec :=_cf .NewDecoder (&_cdfd );_ede .CSld =_cc .NewCT_CommonSlideData ();if _dce :=_fec .Decode (_ede .CSld );_dce !=nil {return Slide {},_dce ;};_ede .CSld .NameAttr =nil ;_ede .CSld .SpTree .Choice =_cgab (_ede .CSld .SpTree .Choice );_dggd ._aab =append (_dggd ._aab ,_ede );_dcfe :=_dggd ._cbdb .AddAutoRelationship (_gb .DocTypePresentation ,_gb .OfficeDocumentType ,len (_dggd ._aab ),_gb .SlideType );_gfbe .RIdAttr =_dcfe .ID ();_aafb :=_gb .AbsoluteFilename (_gb .DocTypePresentation ,_gb .SlideType ,len (_dggd ._aab ));_dggd .ContentTypes .AddOverride (_aafb ,_gb .SlideContentType );_agd :=_ea .NewRelationships ();_dggd ._abba =append (_dggd ._abba ,_agd );_daa :=len (_dggd ._abba )-1;for _baa ,_dfg :=range _dggd ._geg {if _dfg ==l .X (){_eaab :=_dggd ._bgf [_baa ];for _ ,_dffc :=range _eaab .X ().Relationship {if _dffc .TypeAttr !=_gb .SlideMasterType {_dggd ._abba [_daa ].X ().Relationship =append (_dggd ._abba [_daa ].X ().Relationship ,_dffc );};};_agd .AddAutoRelationship (_gb .DocTypePresentation ,_gb .SlideType ,_baa +1,_gb .SlideLayoutType );};};_gbfd :=Slide {_gfbe ,_ede ,_dggd ,nil };return _gbfd ,nil ;};type sort2d []*TextItem ;func (_gege *Presentation )Validate ()error {if _fega :=_gege ._bbf .Validate ();_fega !=nil {return _fega ;};for _bbfe ,_fedc :=range _gege .Slides (){if _aegg :=_fedc .ValidateWithPath (_da .Sprintf ("\u0053l\u0069\u0064\u0065\u005b\u0025\u0064]",_bbfe ));_aegg !=nil {return _aegg ;};};for _ccc ,_eee :=range _gege ._fda {if _ffg :=_eee .ValidateWithPath (_da .Sprintf ("\u0053l\u0069d\u0065\u004d\u0061\u0073\u0074\u0065\u0072\u005b\u0025\u0064\u005d",_ccc ));_ffg !=nil {return _ffg ;};};for _bfg ,_faa :=range _gege ._geg {if _aac :=_faa .ValidateWithPath (_da .Sprintf ("\u0053l\u0069d\u0065\u004c\u0061\u0079\u006f\u0075\u0074\u005b\u0025\u0064\u005d",_bfg ));_aac !=nil {return _aac ;};};return nil ;};
// Slide represents a slide of a presentation.
type Slide struct{_egf *_cc .CT_SlideIdListEntry ;_bffe *_cc .Sld ;_gag *Presentation ;_dcee *_fd .CT_ColorMapping ;};
// Index returns the placeholder index
func (_fad PlaceHolder )Index ()uint32 {if _fad ._gdg .NvSpPr .NvPr .Ph .IdxAttr ==nil {return 0;};return *_fad ._gdg .NvSpPr .NvPr .Ph .IdxAttr ;};
// Image is an image within a slide.
type Image struct{_cag *_cc .CT_Picture };