github.com/unidoc/unipdf/v3@v3.55.0/model/mdp/mdp.go (about) 1 // 2 // Copyright 2020 FoxyUtils ehf. All rights reserved. 3 // 4 // This is a commercial product and requires a license to operate. 5 // A trial license can be obtained at https://unidoc.io 6 // 7 // DO NOT EDIT: generated by unitwist Go source code obfuscator. 8 // 9 // Use of this source code is governed by the UniDoc End User License Agreement 10 // terms that can be accessed at https://unidoc.io/eula/ 11 12 package mdp ;import (_ae "errors";_e "fmt";_g "github.com/unidoc/unipdf/v3/core";);func (_gbg *DiffResults )addWarningWithDescription (_cec int ,_fdea string ){if _gbg .Warnings ==nil {_gbg .Warnings =make ([]*DiffResult ,0);};_gbg .Warnings =append (_gbg .Warnings ,&DiffResult {Revision :_cec ,Description :_fdea }); 13 };func (_ce *defaultDiffPolicy )compareRevisions (_ab *_g .PdfParser ,_abe *_g .PdfParser )(*DiffResults ,error ){var _bg error ;_ce ._c ,_bg =_abe .GetUpdatedObjects (_ab );if _bg !=nil {return &DiffResults {},_bg ;};if len (_ce ._c )==0{return &DiffResults {},nil ; 14 };_fga :=_abe .GetRevisionNumber ();_gb ,_de :=_g .GetIndirect (_g .ResolveReference (_ab .GetTrailer ().Get ("\u0052\u006f\u006f\u0074")));_da ,_ef :=_g .GetIndirect (_g .ResolveReference (_abe .GetTrailer ().Get ("\u0052\u006f\u006f\u0074")));if !_de ||!_ef {return &DiffResults {},_ae .New ("\u0065\u0072\u0072o\u0072\u0020\u0077\u0068i\u006c\u0065\u0020\u0067\u0065\u0074\u0074i\u006e\u0067\u0020\u0072\u006f\u006f\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074"); 15 };_bgc ,_de :=_g .GetDict (_g .ResolveReference (_gb .PdfObject ));_efa ,_ef :=_g .GetDict (_g .ResolveReference (_da .PdfObject ));if !_de ||!_ef {return &DiffResults {},_ae .New ("\u0065\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0067e\u0074\u0074\u0069\u006e\u0067\u0020a\u0020\u0072\u006f\u006f\u0074\u0027\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079"); 16 };if _fef ,_be :=_g .GetIndirect (_efa .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d"));_be {_ga ,_bf :=_g .GetDict (_fef );if !_bf {return &DiffResults {},_ae .New ("\u0065\u0072\u0072\u006f\u0072 \u0077\u0068\u0069\u006c\u0065\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067 \u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0027\u0073\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); 17 };_bb :=make ([]_g .PdfObject ,0);if _daf ,_bd :=_g .GetIndirect (_bgc .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d"));_bd {if _dc ,_ad :=_g .GetDict (_daf );_ad {if _feb ,_cdc :=_g .GetArray (_dc .Get ("\u0046\u0069\u0065\u006c\u0064\u0073")); 18 _cdc {_bb =_feb .Elements ();};};};_ac ,_bf :=_g .GetArray (_ga .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"));if !_bf {return &DiffResults {},_ae .New ("\u0065\u0072r\u006f\u0072\u0020\u0077h\u0069\u006ce\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067 \u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0027\u0073\u0020\u0066i\u0065\u006c\u0064\u0073"); 19 };if _db :=_ce .compareFields (_fga ,_bb ,_ac .Elements ());_db !=nil {return &DiffResults {},_db ;};};_acd ,_fa :=_g .GetIndirect (_efa .Get ("\u0050\u0061\u0067e\u0073"));if !_fa {return &DiffResults {},_ae .New ("\u0065\u0072\u0072\u006f\u0072\u0020w\u0068\u0069\u006c\u0065\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020p\u0061\u0067\u0065\u0073\u0027\u0020\u006fb\u006a\u0065\u0063\u0074"); 20 };_ca ,_fa :=_g .GetIndirect (_bgc .Get ("\u0050\u0061\u0067e\u0073"));if !_fa {return &DiffResults {},_ae .New ("\u0065\u0072\u0072\u006f\u0072\u0020w\u0068\u0069\u006c\u0065\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020p\u0061\u0067\u0065\u0073\u0027\u0020\u006fb\u006a\u0065\u0063\u0074"); 21 };if _ed :=_ce .comparePages (_fga ,_ca ,_acd );_ed !=nil {return &DiffResults {},_ed ;};return _ce ._f ,nil ;};func (_egc *defaultDiffPolicy )comparePages (_afb int ,_ega ,_eda *_g .PdfIndirectObject )error {if _ ,_efc :=_egc ._c [_eda .ObjectNumber ]; 22 _efc {_egc ._f .addErrorWithDescription (_afb ,"\u0050a\u0067e\u0073\u0020\u0077\u0065\u0072e\u0020\u0063h\u0061\u006e\u0067\u0065\u0064");};_ggg ,_baa :=_g .GetDict (_eda .PdfObject );_gge ,_fda :=_g .GetDict (_ega .PdfObject );if !_baa ||!_fda {return _ae .New ("\u0075n\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0050\u0061g\u0065\u0073\u0027\u0020\u006f\u0062\u006a\u0065\u0063\u0074"); 23 };_ffb ,_baa :=_g .GetArray (_ggg .Get ("\u004b\u0069\u0064\u0073"));_ea ,_fda :=_g .GetArray (_gge .Get ("\u004b\u0069\u0064\u0073"));if !_baa ||!_fda {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0050\u0061\u0067\u0065s\u0027 \u0064\u0069\u0063\u0074\u0069\u006f\u006ea\u0072\u0079"); 24 };_dbf :=_ffb .Len ();if _dbf > _ea .Len (){_dbf =_ea .Len ();};for _babe :=0;_babe < _dbf ;_babe ++{_cga ,_dafa :=_g .GetIndirect (_g .ResolveReference (_ea .Get (_babe )));_fgc ,_gggg :=_g .GetIndirect (_g .ResolveReference (_ffb .Get (_babe )));if !_dafa ||!_gggg {return _ae .New ("\u0075\u006e\u0065\u0078pe\u0063\u0074\u0065\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006f\u0062\u006a\u0065c\u0074"); 25 };if _cga .ObjectNumber !=_fgc .ObjectNumber {_egc ._f .addErrorWithDescription (_afb ,_e .Sprintf ("p\u0061\u0067\u0065\u0020#%\u0064 \u0077\u0061\u0073\u0020\u0072e\u0070\u006c\u0061\u0063\u0065\u0064",_babe ));};_ee ,_dafa :=_g .GetDict (_fgc );_fbg ,_gggg :=_g .GetDict (_cga ); 26 if !_dafa ||!_gggg {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0070\u0061\u0067\u0065'\u0073 \u0064\u0069\u0063\u0074\u0069\u006f\u006ea\u0072\u0079");};_bdc ,_aef :=_ecd (_ee .Get ("\u0041\u006e\u006e\u006f\u0074\u0073")); 27 if _aef !=nil {return _aef ;};_eac ,_aef :=_ecd (_fbg .Get ("\u0041\u006e\u006e\u006f\u0074\u0073"));if _aef !=nil {return _aef ;};if _ddg :=_egc .compareAnnots (_afb ,_eac ,_bdc );_ddg !=nil {return _ddg ;};};for _df :=_dbf +1;_df <=_ffb .Len ();_df ++{_egc ._f .addErrorWithDescription (_afb ,_e .Sprintf ("\u0070a\u0067e\u0020\u0023\u0025\u0064\u0020w\u0061\u0073 \u0061\u0064\u0064\u0065\u0064",_df )); 28 };for _gdb :=_dbf +1;_gdb <=_ea .Len ();_gdb ++{_egc ._f .addErrorWithDescription (_afb ,_e .Sprintf ("p\u0061g\u0065\u0020\u0023\u0025\u0064\u0020\u0077\u0061s\u0020\u0072\u0065\u006dov\u0065\u0064",_gdb ));};return nil ;}; 29 30 // DocMDPPermission is values for set up access permissions for DocMDP. 31 // (Section 12.8.2.2, Table 254 - Entries in a signature dictionary p. 471 in PDF32000_2008). 32 type DocMDPPermission int64 ;func (_bda *DiffResults )addErrorWithDescription (_fba int ,_gcf string ){if _bda .Errors ==nil {_bda .Errors =make ([]*DiffResult ,0);};_bda .Errors =append (_bda .Errors ,&DiffResult {Revision :_fba ,Description :_gcf }); 33 }; 34 35 // DiffResults describes the results of the DiffPolicy. 36 type DiffResults struct{Warnings []*DiffResult ;Errors []*DiffResult ;}; 37 38 // String returns the state of the warning. 39 func (_fagf *DiffResult )String ()string {return _e .Sprintf ("\u0025\u0073\u0020\u0069n \u0072\u0065\u0076\u0069\u0073\u0069\u006f\u006e\u0073\u0020\u0023\u0025\u0064",_fagf .Description ,_fagf .Revision );};func _ecd (_gfa _g .PdfObject )([]_g .PdfObject ,error ){_aed :=make ([]_g .PdfObject ,0); 40 if _gfa !=nil {_bbc :=_gfa ;if _fgb ,_aa :=_g .GetIndirect (_gfa );_aa {_bbc =_fgb .PdfObject ;};if _agb ,_bcc :=_g .GetArray (_bbc );_bcc {_aed =_agb .Elements ();}else {return nil ,_ae .New ("\u0075n\u0065\u0078\u0070\u0065c\u0074\u0065\u0064\u0020\u0061n\u006eo\u0074s\u0027\u0020\u006f\u0062\u006a\u0065\u0063t"); 41 };};return _aed ,nil ;};func (_dce *defaultDiffPolicy )compareFields (_cb int ,_ag ,_af []_g .PdfObject )error {_ge :=make (map[int64 ]*_g .PdfObjectDictionary );for _ ,_gee :=range _ag {_gc ,_fc :=_g .GetIndirect (_gee );if !_fc {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006cd\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065"); 42 };_agf ,_fc :=_g .GetDict (_gc .PdfObject );if !_fc {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_ge [_gc .ObjectNumber ]=_agf ; 43 };for _ ,_ada :=range _af {_efg ,_fag :=_g .GetIndirect (_ada );if !_fag {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006cd\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_cbg ,_fag :=_g .GetDict (_efg .PdfObject ); 44 if !_fag {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006cd\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};T :=_cbg .Get ("\u0054");if _ ,_fb :=_dce ._c [_efg .ObjectNumber ];_fb {switch _dce ._fe {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_dce ._f .addWarningWithDescription (_cb ,_e .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",T )); 45 default:_dce ._f .addErrorWithDescription (_cb ,_e .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",T ));};};if _ ,_bag :=_ge [_efg .ObjectNumber ];!_bag {switch _dce ._fe {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_dce ._f .addWarningWithDescription (_cb ,_e .Sprintf ("\u0046i\u0065l\u0064\u0020\u0025\u0073\u0020w\u0061\u0073 \u0061\u0064\u0064\u0065\u0064",_cbg .Get ("\u0054"))); 46 default:_dce ._f .addErrorWithDescription (_cb ,_e .Sprintf ("\u0046i\u0065l\u0064\u0020\u0025\u0073\u0020w\u0061\u0073 \u0061\u0064\u0064\u0065\u0064",_cbg .Get ("\u0054")));};}else {delete (_ge ,_efg .ObjectNumber );if _ ,_def :=_dce ._c [_efg .ObjectNumber ]; 47 _def {switch _dce ._fe {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_dce ._f .addWarningWithDescription (_cb ,_e .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",_cbg .Get ("\u0054"))); 48 default:_dce ._f .addErrorWithDescription (_cb ,_e .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",_cbg .Get ("\u0054")));};};};if FT ,_efgd :=_g .GetNameVal (_cbg .Get ("\u0046\u0054"));_efgd {if FT =="\u0053\u0069\u0067"{if _caf ,_cg :=_g .GetIndirect (_cbg .Get ("\u0056")); 49 _cg {if _ ,_dd :=_dce ._c [_caf .ObjectNumber ];_dd {switch _dce ._fe {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_dce ._f .addWarningWithDescription (_cb ,_e .Sprintf ("\u0053\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0066\u006f\u0072\u0020%\u0073 \u0066i\u0065l\u0064\u0020\u0077\u0061\u0073\u0020\u0063\u0068\u0061\u006e\u0067\u0065\u0064",T )); 50 default:_dce ._f .addErrorWithDescription (_cb ,_e .Sprintf ("\u0053\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0066\u006f\u0072\u0020%\u0073 \u0066i\u0065l\u0064\u0020\u0077\u0061\u0073\u0020\u0063\u0068\u0061\u006e\u0067\u0065\u0064",T ));};};};};}; 51 };for _ ,_abf :=range _ge {switch _dce ._fe {case NoRestrictions :_dce ._f .addWarningWithDescription (_cb ,_e .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0072\u0065\u006dov\u0065\u0064",_abf .Get ("\u0054")));default:_dce ._f .addErrorWithDescription (_cb ,_e .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0072\u0065\u006dov\u0065\u0064",_abf .Get ("\u0054"))); 52 };};return nil ;}; 53 54 // IsPermitted returns true if changes permitted. 55 func (_fgcf *DiffResults )IsPermitted ()bool {return len (_fgcf .Errors )==0}; 56 57 // MDPParameters describes parameters for the MDP checks (now only DocMDP). 58 type MDPParameters struct{DocMDPLevel DocMDPPermission ;};func NewDefaultDiffPolicy ()DiffPolicy {return &defaultDiffPolicy {_c :nil ,_f :&DiffResults {},_fe :0};};func (_efgg *DiffResults )addWarning (_bed *DiffResult ){if _efgg .Warnings ==nil {_efgg .Warnings =make ([]*DiffResult ,0); 59 };_efgg .Warnings =append (_efgg .Warnings ,_bed );};const (NoRestrictions DocMDPPermission =0;NoChanges DocMDPPermission =1;FillForms DocMDPPermission =2;FillFormsAndAnnots DocMDPPermission =3;); 60 61 // DiffResult describes the warning or the error for the DiffPolicy results. 62 type DiffResult struct{Revision int ;Description string ;}; 63 64 // ReviewFile implementation of DiffPolicy interface 65 // The default policy only checks the next types of objects: 66 // Page, Pages (container for page objects), Annot, Annots (container for annotation objects), Field. 67 // It checks adding, removing and modifying objects of these types. 68 func (_eg *defaultDiffPolicy )ReviewFile (oldParser *_g .PdfParser ,newParser *_g .PdfParser ,params *MDPParameters )(*DiffResults ,error ){if oldParser .GetRevisionNumber ()> newParser .GetRevisionNumber (){return nil ,_ae .New ("\u006f\u006c\u0064\u0020\u0072\u0065\u0076\u0069\u0073\u0069\u006f\u006e\u0020\u0067\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061n\u0020\u006e\u0065\u0077\u0020r\u0065\u0076i\u0073\u0069\u006f\u006e"); 69 };if oldParser .GetRevisionNumber ()==newParser .GetRevisionNumber (){if oldParser !=newParser {return nil ,_ae .New ("\u0073\u0061m\u0065\u0020\u0072\u0065v\u0069\u0073i\u006f\u006e\u0073\u002c\u0020\u0062\u0075\u0074 \u0064\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0074\u0020\u0070\u0061r\u0073\u0065\u0072\u0073"); 70 };return &DiffResults {},nil ;};if params ==nil {_eg ._fe =NoRestrictions ;}else {_eg ._fe =params .DocMDPLevel ;};_b :=&DiffResults {};for _gf :=oldParser .GetRevisionNumber ()+1;_gf <=newParser .GetRevisionNumber ();_gf ++{_d ,_fg :=newParser .GetRevision (_gf -1); 71 if _fg !=nil {return nil ,_fg ;};_cd ,_fg :=newParser .GetRevision (_gf );if _fg !=nil {return nil ,_fg ;};_ba ,_fg :=_eg .compareRevisions (_d ,_cd );if _fg !=nil {return nil ,_fg ;};_b .Warnings =append (_b .Warnings ,_ba .Warnings ...);_b .Errors =append (_b .Errors ,_ba .Errors ...); 72 };return _b ,nil ;};type defaultDiffPolicy struct{_c map[int64 ]_g .PdfObject ;_f *DiffResults ;_fe DocMDPPermission ;}; 73 74 // DiffPolicy interface for comparing two revisions of the Pdf document. 75 type DiffPolicy interface{ 76 77 // ReviewFile should check the revisions of the old and new parsers 78 // and evaluate the differences between the revisions. 79 // Each implementation of this interface must decide 80 // how to handle cases where there are multiple revisions between the old and new revisions. 81 ReviewFile (_bfg *_g .PdfParser ,_bff *_g .PdfParser ,_ffed *MDPParameters )(*DiffResults ,error );};func (_cgaf *DiffResults )addError (_abg *DiffResult ){if _cgaf .Errors ==nil {_cgaf .Errors =make ([]*DiffResult ,0);};_cgaf .Errors =append (_cgaf .Errors ,_abg ); 82 };func (_eef *defaultDiffPolicy )compareAnnots (_geg int ,_eee ,_ffbb []_g .PdfObject )error {_ece :=make (map[int64 ]*_g .PdfObjectDictionary );for _ ,_ace :=range _eee {_afe ,_ggea :=_g .GetIndirect (_ace );if !_ggea {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065"); 83 };_geb ,_ggea :=_g .GetDict (_afe .PdfObject );if !_ggea {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_ece [_afe .ObjectNumber ]=_geb ; 84 };for _ ,_fac :=range _ffbb {_fca ,_bc :=_g .GetIndirect (_fac );if !_bc {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_age ,_bc :=_g .GetDict (_fca .PdfObject ); 85 if !_bc {return _ae .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_bge ,_ :=_g .GetStringVal (_age .Get ("\u0054"));_gac ,_ :=_g .GetNameVal (_age .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")); 86 if _ ,_gege :=_ece [_fca .ObjectNumber ];!_gege {switch _eef ._fe {case NoRestrictions ,FillFormsAndAnnots :_eef ._f .addWarningWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_gac ,_bge )); 87 default:_faa ,_fdg :=_g .GetDict (_fca .PdfObject );if !_fdg {return _ae .New ("u\u006ed\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0061n\u006e\u006f\u0074\u0061ti\u006f\u006e");};_edaf ,_fdg :=_g .GetNameVal (_faa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")); 88 if !_fdg {return _ae .New ("\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0027\u0073\u0020\u0073\u0075\u0062\u0074\u0079\u0070\u0065");};if _edaf =="\u0057\u0069\u0064\u0067\u0065\u0074"{switch _eef ._fe {case NoRestrictions ,FillFormsAndAnnots ,FillForms :_eef ._f .addWarningWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_gac ,_bge )); 89 default:_eef ._f .addErrorWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_gac ,_bge ));};}else {_eef ._f .addErrorWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_gac ,_bge )); 90 };};}else {delete (_ece ,_fca .ObjectNumber );if _ffe ,_bae :=_eef ._c [_fca .ObjectNumber ];_bae {switch _eef ._fe {case NoRestrictions ,FillFormsAndAnnots :_eef ._f .addWarningWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_gac ,_bge )); 91 default:_bgef ,_adc :=_g .GetIndirect (_ffe );if !_adc {return _ae .New ("u\u006ed\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0061n\u006e\u006f\u0074\u0061ti\u006f\u006e");};_cda ,_adc :=_g .GetDict (_bgef .PdfObject );if !_adc {return _ae .New ("u\u006ed\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0061n\u006e\u006f\u0074\u0061ti\u006f\u006e"); 92 };_fdb ,_adc :=_g .GetNameVal (_cda .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_adc {return _ae .New ("\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0027\u0073\u0020\u0073\u0075\u0062\u0074\u0079\u0070\u0065"); 93 };if _fdb =="\u0057\u0069\u0064\u0067\u0065\u0074"{switch _eef ._fe {case NoRestrictions ,FillFormsAndAnnots ,FillForms :_eef ._f .addWarningWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_gac ,_bge )); 94 default:_eef ._f .addErrorWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_gac ,_bge ));};}else {_eef ._f .addErrorWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_gac ,_bge )); 95 };};};};};for _ ,_fec :=range _ece {_beg ,_ :=_g .GetStringVal (_fec .Get ("\u0054"));_dcf ,_ :=_g .GetNameVal (_fec .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));switch _eef ._fe {case NoRestrictions ,FillFormsAndAnnots :_eef ._f .addWarningWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0072\u0065\u006d\u006fv\u0065\u0064",_dcf ,_beg )); 96 default:_eef ._f .addErrorWithDescription (_geg ,_e .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0072\u0065\u006d\u006fv\u0065\u0064",_dcf ,_beg ));};};return nil ;};