2020-10-19 10:58:10 +00:00

12 lines
39 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 document ;import (_g "encoding/binary";_ed "fmt";_gc "github.com/unidoc/unipdf/v3/common";_gcb "github.com/unidoc/unipdf/v3/internal/bitwise";_f "github.com/unidoc/unipdf/v3/internal/jbig2/basic";_edc "github.com/unidoc/unipdf/v3/internal/jbig2/bitmap";_cc "github.com/unidoc/unipdf/v3/internal/jbig2/document/segments";_b "github.com/unidoc/unipdf/v3/internal/jbig2/encoder/classer";_cf "github.com/unidoc/unipdf/v3/internal/jbig2/errors";_c "io";_d "math";_de "runtime/debug";);func (_gec *Document )GetGlobalSegment (i int )(*_cc .Header ,error ){_ddg ,_ged :=_gec .GlobalSegments .GetSegment (i );if _ged !=nil {return nil ,_cf .Wrap (_ged ,"\u0047\u0065t\u0047\u006c\u006fb\u0061\u006c\u0053\u0065\u0067\u006d\u0065\u006e\u0074","");};return _ddg ,nil ;};func (_ebf *Page )collectPageStripes ()(_fdf []_cc .Segmenter ,_degg error ){const _cfca ="\u0063o\u006cl\u0065\u0063\u0074\u0050\u0061g\u0065\u0053t\u0072\u0069\u0070\u0065\u0073";var _dcb _cc .Segmenter ;for _ ,_ddc :=range _ebf .Segments {switch _ddc .Type {case 6,7,22,23,38,39,42,43:_dcb ,_degg =_ddc .GetSegmentData ();if _degg !=nil {return nil ,_cf .Wrap (_degg ,_cfca ,"");};_fdf =append (_fdf ,_dcb );case 50:_dcb ,_degg =_ddc .GetSegmentData ();if _degg !=nil {return nil ,_degg ;};_gge ,_fcdc :=_dcb .(*_cc .EndOfStripe );if !_fcdc {return nil ,_cf .Errorf (_cfca ,"\u0045\u006e\u0064\u004f\u0066\u0053\u0074\u0072\u0069\u0070\u0065\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u006f\u0066\u0020\u0076\u0061l\u0069\u0064\u0020\u0074\u0079p\u0065\u003a \u0027\u0025\u0054\u0027",_dcb );};_fdf =append (_fdf ,_gge );_ebf .FinalHeight =_gge .LineNumber ();};};return _fdf ,nil ;};func (_cged *Page )GetResolutionX ()(int ,error ){return _cged .getResolutionX ()};func (_edgg *Document )Encode ()(_bga []byte ,_eaac error ){const _dce ="\u0044o\u0063u\u006d\u0065\u006e\u0074\u002e\u0045\u006e\u0063\u006f\u0064\u0065";var _fab ,_gfce int ;if _edgg .FullHeaders {if _fab ,_eaac =_edgg .encodeFileHeader (_edgg ._fe );_eaac !=nil {return nil ,_cf .Wrap (_eaac ,_dce ,"");};};var (_fea bool ;_baeg *_cc .Header ;_eeec *Page ;);if _eaac =_edgg .completeClassifiedPages ();_eaac !=nil {return nil ,_cf .Wrap (_eaac ,_dce ,"");};if _eaac =_edgg .produceClassifiedPages ();_eaac !=nil {return nil ,_cf .Wrap (_eaac ,_dce ,"");};if _edgg .GlobalSegments !=nil {for _ ,_baeg =range _edgg .GlobalSegments .Segments {if _eaac =_edgg .encodeSegment (_baeg ,&_fab );_eaac !=nil {return nil ,_cf .Wrap (_eaac ,_dce ,"");};};};for _baf :=1;_baf <=int (_edgg .NumberOfPages );_baf ++{if _eeec ,_fea =_edgg .Pages [_baf ];!_fea {return nil ,_cf .Errorf (_dce ,"p\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020n\u006f\u0074\u0020\u0066ou\u006e\u0064",_baf );};for _ ,_baeg =range _eeec .Segments {if _eaac =_edgg .encodeSegment (_baeg ,&_fab );_eaac !=nil {return nil ,_cf .Wrap (_eaac ,_dce ,"");};};};if _edgg .FullHeaders {if _gfce ,_eaac =_edgg .encodeEOFHeader (_edgg ._fe );_eaac !=nil {return nil ,_cf .Wrap (_eaac ,_dce ,"");};_fab +=_gfce ;};_bga =_edgg ._fe .Data ();if len (_bga )!=_fab {_gc .Log .Debug ("\u0042\u0079\u0074\u0065\u0073 \u0077\u0072\u0069\u0074\u0074\u0065\u006e \u0028\u006e\u0029\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0065\u0071\u0075\u0061\u006c\u0020\u0074\u006f\u0020\u0074\u0068\u0065\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006f\u0066\u0020t\u0068\u0065\u0020\u0064\u0061\u0074\u0061\u0020\u0065\u006e\u0063\u006fd\u0065\u0064\u003a\u0020\u0027\u0025d\u0027",_fab ,len (_bga ));};return _bga ,nil ;};func (_afd *Page )createPage (_eea *_cc .PageInformationSegment )error {var _bfcb error ;if !_eea .IsStripe ||_eea .PageBMHeight !=-1{_bfcb =_afd .createNormalPage (_eea );}else {_bfcb =_afd .createStripedPage (_eea );};return _bfcb ;};func (_abf *Page )getResolutionY ()(int ,error ){const _dccb ="\u0067\u0065\u0074\u0052\u0065\u0073\u006f\u006c\u0075t\u0069\u006f\u006e\u0059";if _abf .ResolutionY !=0{return _abf .ResolutionY ,nil ;};_ggfc :=_abf .getPageInformationSegment ();if _ggfc ==nil {return 0,_cf .Error (_dccb ,"n\u0069l\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006d\u0061ti\u006f\u006e");};_ecg ,_bfga :=_ggfc .GetSegmentData ();if _bfga !=nil {return 0,_cf .Wrap (_bfga ,_dccb ,"");};_bdeb ,_aaag :=_ecg .(*_cc .PageInformationSegment );if !_aaag {return 0,_cf .Errorf (_dccb ,"\u0070\u0061\u0067\u0065\u0020\u0069\u006e\u0066o\u0072\u006d\u0061ti\u006f\u006e\u0020\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u0069\u0073\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0074\u0079\u0070\u0065\u003a\u0027%\u0054\u0027",_ecg );};_abf .ResolutionY =_bdeb .ResolutionY ;return _abf .ResolutionY ,nil ;};func (_gfb *Page )GetWidth ()(int ,error ){return _gfb .getWidth ()};func (_ggg *Page )AddGenericRegion (bm *_edc .Bitmap ,xloc ,yloc ,template int ,tp _cc .Type ,duplicateLineRemoval bool )error {const _gdg ="P\u0061\u0067\u0065\u002eAd\u0064G\u0065\u006e\u0065\u0072\u0069c\u0052\u0065\u0067\u0069\u006f\u006e";_aaee :=&_cc .GenericRegion {};if _gedg :=_aaee .InitEncode (bm ,xloc ,yloc ,template ,duplicateLineRemoval );_gedg !=nil {return _cf .Wrap (_gedg ,_gdg ,"");};_cge :=&_cc .Header {Type :_cc .TImmediateGenericRegion ,PageAssociation :_ggg .PageNumber ,SegmentData :_aaee };_ggg .Segments =append (_ggg .Segments ,_cge );return nil ;};func (_abc *Page )addTextRegionSegment (_gbd []*_cc .Header ,_ccf ,_bfc map[int ]int ,_aba []int ,_bbb *_edc .Points ,_fge *_edc .Bitmaps ,_ggga *_f .IntSlice ,_eged *_edc .Boxes ,_ede ,_fbg int ){_gbdg :=&_cc .TextRegion {NumberOfSymbols :uint32 (_fbg )};_gbdg .InitEncode (_ccf ,_bfc ,_aba ,_bbb ,_fge ,_ggga ,_eged ,_abc .FinalWidth ,_abc .FinalHeight ,_ede );_egbf :=&_cc .Header {RTSegments :_gbd ,SegmentData :_gbdg ,PageAssociation :_abc .PageNumber ,Type :_cc .TImmediateTextRegion };_egbc :=_cc .TPageInformation ;if _bfc !=nil {_egbc =_cc .TSymbolDictionary ;};var _ffbd int ;for ;_ffbd < len (_abc .Segments );_ffbd ++{if _abc .Segments [_ffbd ].Type ==_egbc {_ffbd ++;break ;};};_abc .Segments =append (_abc .Segments ,nil );copy (_abc .Segments [_ffbd +1:],_abc .Segments [_ffbd :]);_abc .Segments [_ffbd ]=_egbf ;};func (_abe *Document )isFileHeaderPresent ()(bool ,error ){_abe .InputStream .Mark ();for _ ,_egb :=range _a {_ffbb ,_cedd :=_abe .InputStream .ReadByte ();if _cedd !=nil {return false ,_cedd ;};if _egb !=_ffbb {_abe .InputStream .Reset ();return false ,nil ;};};_abe .InputStream .Reset ();return true ,nil ;};func (_gcef *Page )getResolutionX ()(int ,error ){const _agfg ="\u0067\u0065\u0074\u0052\u0065\u0073\u006f\u006c\u0075t\u0069\u006f\u006e\u0058";if _gcef .ResolutionX !=0{return _gcef .ResolutionX ,nil ;};_dddc :=_gcef .getPageInformationSegment ();if _dddc ==nil {return 0,_cf .Error (_agfg ,"n\u0069l\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006d\u0061ti\u006f\u006e");};_bba ,_cdff :=_dddc .GetSegmentData ();if _cdff !=nil {return 0,_cf .Wrap (_cdff ,_agfg ,"");};_ggd ,_bfg :=_bba .(*_cc .PageInformationSegment );if !_bfg {return 0,_cf .Errorf (_agfg ,"\u0070\u0061\u0067\u0065\u0020\u0069n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0069\u0073 \u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0079\u0070e\u003a \u0027\u0025\u0054\u0027",_bba );};_gcef .ResolutionX =_ggd .ResolutionX ;return _gcef .ResolutionX ,nil ;};const (GenericEM EncodingMethod =iota ;CorrelationEM ;RankHausEM ;);func (_gad *Document )encodeFileHeader (_dccc _gcb .BinaryWriter )(_ecfd int ,_fdccc error ){const _fag ="\u0065\u006ec\u006f\u0064\u0065F\u0069\u006c\u0065\u0048\u0065\u0061\u0064\u0065\u0072";_ecfd ,_fdccc =_dccc .Write (_a );if _fdccc !=nil {return _ecfd ,_cf .Wrap (_fdccc ,_fag ,"\u0069\u0064");};if _fdccc =_dccc .WriteByte (0x01);_fdccc !=nil {return _ecfd ,_cf .Wrap (_fdccc ,_fag ,"\u0066\u006c\u0061g\u0073");};_ecfd ++;_gfg :=make ([]byte ,4);_g .BigEndian .PutUint32 (_gfg ,_gad .NumberOfPages );_fdg ,_fdccc :=_dccc .Write (_gfg );if _fdccc !=nil {return _fdg ,_cf .Wrap (_fdccc ,_fag ,"p\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072");};_ecfd +=_fdg ;return _ecfd ,nil ;};type Globals struct{Segments []*_cc .Header ;};func _bbd (_ggf int )int {_fa :=0;_fb :=(_ggf &(_ggf -1))==0;_ggf >>=1;for ;_ggf !=0;_ggf >>=1{_fa ++;};if _fb {return _fa ;};return _fa +1;};func (_gdba *Page )AddEndOfPageSegment (){_dea :=&_cc .Header {Type :_cc .TEndOfPage ,PageAssociation :_gdba .PageNumber };_gdba .Segments =append (_gdba .Segments ,_dea );};func (_fdga *Page )String ()string {return _ed .Sprintf ("\u0050\u0061\u0067\u0065\u0020\u0023\u0025\u0064",_fdga .PageNumber );};type Page struct{Segments []*_cc .Header ;PageNumber int ;Bitmap *_edc .Bitmap ;FinalHeight int ;FinalWidth int ;ResolutionX int ;ResolutionY int ;IsLossless bool ;Document *Document ;FirstSegmentNumber int ;EncodingMethod EncodingMethod ;};func (_bgd *Document )nextSegmentNumber ()uint32 {_ffbg :=_bgd .CurrentSegmentNumber ;_bgd .CurrentSegmentNumber ++;return _ffbg ;};func (_ffbe *Globals )AddSegment (segment *_cc .Header ){_ffbe .Segments =append (_ffbe .Segments ,segment );};func (_dcff *Page )fitsPage (_cff *_cc .PageInformationSegment ,_dceb *_edc .Bitmap )bool {return _dcff .countRegions ()==1&&_cff .DefaultPixelValue ()==0&&_cff .PageBMWidth ==_dceb .Width &&_cff .PageBMHeight ==_dceb .Height ;};func (_cab *Globals )GetSymbolDictionary ()(*_cc .Header ,error ){const _gce ="G\u006c\u006f\u0062\u0061\u006c\u0073.\u0047\u0065\u0074\u0053\u0079\u006d\u0062\u006f\u006cD\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079";if _cab ==nil {return nil ,_cf .Error (_gce ,"\u0067\u006c\u006f\u0062al\u0073\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");};if len (_cab .Segments )==0{return nil ,_cf .Error (_gce ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0073\u0020\u0061\u0072\u0065\u0020e\u006d\u0070\u0074\u0079");};for _ ,_ggbb :=range _cab .Segments {if _ggbb .Type ==_cc .TSymbolDictionary {return _ggbb ,nil ;};};return nil ,_cf .Error (_gce ,"\u0067\u006c\u006fba\u006c\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0020d\u0069c\u0074i\u006fn\u0061\u0072\u0079\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};type EncodingMethod int ;func (_dbf *Globals )GetSegmentByIndex (index int )(*_cc .Header ,error ){const _gaf ="\u0047l\u006f\u0062\u0061\u006cs\u002e\u0047\u0065\u0074\u0053e\u0067m\u0065n\u0074\u0042\u0079\u0049\u006e\u0064\u0065x";if _dbf ==nil {return nil ,_cf .Error (_gaf ,"\u0067\u006c\u006f\u0062al\u0073\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");};if len (_dbf .Segments )==0{return nil ,_cf .Error (_gaf ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0073\u0020\u0061\u0072\u0065\u0020e\u006d\u0070\u0074\u0079");};if index > len (_dbf .Segments )-1{return nil ,_cf .Error (_gaf ,"\u0069n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");};return _dbf .Segments [index ],nil ;};func InitEncodeDocument (fullHeaders bool )*Document {return &Document {FullHeaders :fullHeaders ,_fe :_gcb .BufferedMSB (),Pages :map[int ]*Page {},_bd :map[int ][]int {},_bdd :map[int ]int {},_ea :map[int ][]int {}};};func (_cggd *Page )Encode (w _gcb .BinaryWriter )(_cfc int ,_agf error ){const _daf ="P\u0061\u0067\u0065\u002e\u0045\u006e\u0063\u006f\u0064\u0065";var _bad int ;for _ ,_gadc :=range _cggd .Segments {if _bad ,_agf =_gadc .Encode (w );_agf !=nil {return _cfc ,_cf .Wrap (_agf ,_daf ,"");};_cfc +=_bad ;};return _cfc ,nil ;};func (_acee *Document )mapData ()error {const _ece ="\u006da\u0070\u0044\u0061\u0074\u0061";var (_aac []*_cc .Header ;_gac int64 ;_cef _cc .Type ;);_fbf ,_dbcg :=_acee .isFileHeaderPresent ();if _dbcg !=nil {return _cf .Wrap (_dbcg ,_ece ,"");};if _fbf {if _dbcg =_acee .parseFileHeader ();_dbcg !=nil {return _cf .Wrap (_dbcg ,_ece ,"");};_gac +=int64 (_acee ._ba );_acee .FullHeaders =true ;};var (_eef *Page ;_ffg bool ;);for _cef !=51&&!_ffg {_bdc ,_ebd :=_cc .NewHeader (_acee ,_acee .InputStream ,_gac ,_acee .OrganizationType );if _ebd !=nil {return _cf .Wrap (_ebd ,_ece ,"");};_gc .Log .Trace ("\u0044\u0065c\u006f\u0064\u0069\u006eg\u0020\u0073e\u0067\u006d\u0065\u006e\u0074\u0020\u006e\u0075m\u0062\u0065\u0072\u003a\u0020\u0025\u0064\u002c\u0020\u0054\u0079\u0070e\u003a\u0020\u0025\u0073",_bdc .SegmentNumber ,_bdc .Type );_cef =_bdc .Type ;if _cef !=_cc .TEndOfFile {if _bdc .PageAssociation !=0{_eef =_acee .Pages [_bdc .PageAssociation ];if _eef ==nil {_eef =_ggfg (_acee ,_bdc .PageAssociation );_acee .Pages [_bdc .PageAssociation ]=_eef ;if _acee .NumberOfPagesUnknown {_acee .NumberOfPages ++;};};_eef .Segments =append (_eef .Segments ,_bdc );}else {_acee .GlobalSegments .AddSegment (_bdc );};};_aac =append (_aac ,_bdc );_gac =_acee .InputStream .StreamPosition ();if _acee .OrganizationType ==_cc .OSequential {_gac +=int64 (_bdc .SegmentDataLength );};_ffg ,_ebd =_acee .reachedEOF (_gac );if _ebd !=nil {_gc .Log .Debug ("\u006a\u0062\u0069\u0067\u0032 \u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u0020\u0072\u0065\u0061\u0063h\u0065\u0064\u0020\u0045\u004f\u0046\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ebd );return _cf .Wrap (_ebd ,_ece ,"");};};_acee .determineRandomDataOffsets (_aac ,uint64 (_gac ));return nil ;};func (_gdfa *Page )composePageBitmap ()error {const _dfd ="\u0063\u006f\u006d\u0070\u006f\u0073\u0065\u0050\u0061\u0067\u0065\u0042i\u0074\u006d\u0061\u0070";if _gdfa .PageNumber ==0{return nil ;};_cbe :=_gdfa .getPageInformationSegment ();if _cbe ==nil {return _cf .Error (_dfd ,"\u0070\u0061\u0067e \u0069\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069o\u006e \u0073e\u0067m\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_ae ,_egbfd :=_cbe .GetSegmentData ();if _egbfd !=nil {return _egbfd ;};_dcaa ,_egda :=_ae .(*_cc .PageInformationSegment );if !_egda {return _cf .Error (_dfd ,"\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006da\u0074\u0069\u006f\u006e \u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0069\u0073\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};if _egbfd =_gdfa .createPage (_dcaa );_egbfd !=nil {return _cf .Wrap (_egbfd ,_dfd ,"");};_gdfa .clearSegmentData ();return nil ;};func (_egd *Document )nextPageNumber ()uint32 {_egd .NumberOfPages ++;return _egd .NumberOfPages };func (_eeaa *Page )getWidth ()(int ,error ){const _faa ="\u0067\u0065\u0074\u0057\u0069\u0064\u0074\u0068";if _eeaa .FinalWidth !=0{return _eeaa .FinalWidth ,nil ;};_dcg :=_eeaa .getPageInformationSegment ();if _dcg ==nil {return 0,_cf .Error (_faa ,"n\u0069l\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006d\u0061ti\u006f\u006e");};_degac ,_dae :=_dcg .GetSegmentData ();if _dae !=nil {return 0,_cf .Wrap (_dae ,_faa ,"");};_dag ,_gbg :=_degac .(*_cc .PageInformationSegment );if !_gbg {return 0,_cf .Errorf (_faa ,"\u0070\u0061\u0067\u0065\u0020\u0069n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0069\u0073 \u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0079\u0070e\u003a \u0027\u0025\u0054\u0027",_degac );};_eeaa .FinalWidth =_dag .PageBMWidth ;return _eeaa .FinalWidth ,nil ;};func (_ace *Document )GetPage (pageNumber int )(_cc .Pager ,error ){const _dfg ="\u0044\u006fc\u0075\u006d\u0065n\u0074\u002e\u0047\u0065\u0074\u0050\u0061\u0067\u0065";if pageNumber < 0{_gc .Log .Debug ("\u004a\u0042\u0049\u00472\u0020\u0050\u0061\u0067\u0065\u0020\u002d\u0020\u0047e\u0074\u0050\u0061\u0067\u0065\u003a\u0020\u0025\u0064\u002e\u0020\u0050\u0061\u0067\u0065\u0020\u0063\u0061n\u006e\u006f\u0074\u0020\u0062e\u0020\u006c\u006f\u0077\u0065\u0072\u0020\u0074\u0068\u0061\u006e\u0020\u0030\u002e\u0020\u0025\u0073",pageNumber ,_de .Stack ());return nil ,_cf .Errorf (_dfg ,"\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006a\u0062\u0069\u0067\u0032\u0020d\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u0020\u002d\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064 \u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u003a\u0020\u0025\u0064",pageNumber );};if pageNumber > len (_ace .Pages ){_gc .Log .Debug ("\u0050\u0061\u0067\u0065 n\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u003a\u0020\u0025\u0064\u002e\u0020%\u0073",pageNumber ,_de .Stack ());return nil ,_cf .Error (_dfg ,"\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006a\u0062\u0069\u0067\u0032 \u0064\u006f\u0063\u0075\u006d\u0065n\u0074\u0020\u002d\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_ege ,_ffb :=_ace .Pages [pageNumber ];if !_ffb {_gc .Log .Debug ("\u0050\u0061\u0067\u0065 n\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u003a\u0020\u0025\u0064\u002e\u0020%\u0073",pageNumber ,_de .Stack ());return nil ,_cf .Errorf (_dfg ,"\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006a\u0062\u0069\u0067\u0032 \u0064\u006f\u0063\u0075\u006d\u0065n\u0074\u0020\u002d\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};return _ege ,nil ;};func (_gcf *Page )getHeight ()(int ,error ){const _gda ="\u0067e\u0074\u0048\u0065\u0069\u0067\u0068t";if _gcf .FinalHeight !=0{return _gcf .FinalHeight ,nil ;};_caga :=_gcf .getPageInformationSegment ();if _caga ==nil {return 0,_cf .Error (_gda ,"n\u0069l\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006ef\u006f\u0072\u006d\u0061ti\u006f\u006e");};_bfd ,_bac :=_caga .GetSegmentData ();if _bac !=nil {return 0,_cf .Wrap (_bac ,_gda ,"");};_dbe ,_bdca :=_bfd .(*_cc .PageInformationSegment );if !_bdca {return 0,_cf .Errorf (_gda ,"\u0070\u0061\u0067\u0065\u0020\u0069n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0069\u0073 \u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0079\u0070e\u003a \u0027\u0025\u0054\u0027",_bfd );};if _dbe .PageBMHeight ==_d .MaxInt32 {_ ,_bac =_gcf .GetBitmap ();if _bac !=nil {return 0,_cf .Wrap (_bac ,_gda ,"");};}else {_gcf .FinalHeight =_dbe .PageBMHeight ;};return _gcf .FinalHeight ,nil ;};func (_fg *Document )produceClassifiedPages ()(_bae error ){const _da ="\u0070\u0072\u006f\u0064uc\u0065\u0043\u006c\u0061\u0073\u0073\u0069\u0066\u0069\u0065\u0064\u0050\u0061\u0067e\u0073";if _fg .Classer ==nil {return nil ;};var (_gbf *Page ;_eba bool ;_dcc *_cc .Header ;);for _gf :=1;_gf <=int (_fg .NumberOfPages );_gf ++{if _gbf ,_eba =_fg .Pages [_gf ];!_eba {return _cf .Errorf (_da ,"p\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020n\u006f\u0074\u0020\u0066ou\u006e\u0064",_gf );};if _gbf .EncodingMethod ==GenericEM {continue ;};if _dcc ==nil {if _dcc ,_bae =_fg .GlobalSegments .GetSymbolDictionary ();_bae !=nil {return _cf .Wrap (_bae ,_da ,"");};};if _bae =_fg .produceClassifiedPage (_gbf ,_dcc );_bae !=nil {return _cf .Wrapf (_bae ,_da ,"\u0070\u0061\u0067\u0065\u003a\u0020\u0027\u0025\u0064\u0027",_gf );};};return nil ;};func (_aga *Globals )GetSegment (segmentNumber int )(*_cc .Header ,error ){const _fbba ="\u0047l\u006fb\u0061\u006c\u0073\u002e\u0047e\u0074\u0053e\u0067\u006d\u0065\u006e\u0074";if _aga ==nil {return nil ,_cf .Error (_fbba ,"\u0067\u006c\u006f\u0062al\u0073\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");};if len (_aga .Segments )==0{return nil ,_cf .Error (_fbba ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0073\u0020\u0061\u0072\u0065\u0020e\u006d\u0070\u0074\u0079");};var _fce *_cc .Header ;for _ ,_fce =range _aga .Segments {if _fce .SegmentNumber ==uint32 (segmentNumber ){break ;};};if _fce ==nil {return nil ,_cf .Error (_fbba ,"\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};return _fce ,nil ;};type Document struct{Pages map[int ]*Page ;NumberOfPagesUnknown bool ;NumberOfPages uint32 ;GBUseExtTemplate bool ;InputStream _gcb .StreamReader ;GlobalSegments *Globals ;OrganizationType _cc .OrganizationType ;Classer *_b .Classer ;XRes ,YRes int ;FullHeaders bool ;CurrentSegmentNumber uint32 ;AverageTemplates *_edc .Bitmaps ;BaseIndexes []int ;Refinement bool ;RefineLevel int ;_ba uint8 ;_fe *_gcb .BufferedWriter ;EncodeGlobals bool ;_ad int ;_bd map[int ][]int ;_ea map[int ][]int ;_ab []int ;_bdd map[int ]int ;};func (_ebb *Document )encodeSegment (_aaa *_cc .Header ,_bbf *int )error {const _efd ="\u0065\u006e\u0063\u006f\u0064\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074";_aaa .SegmentNumber =_ebb .nextSegmentNumber ();_fead ,_caf :=_aaa .Encode (_ebb ._fe );if _caf !=nil {return _cf .Wrapf (_caf ,_efd ,"\u0073\u0065\u0067\u006d\u0065\u006e\u0074\u003a\u0020\u0027\u0025\u0064\u0027",_aaa .SegmentNumber );};*_bbf +=_fead ;return nil ;};func (_deg *Page )GetBitmap ()(_fef *_edc .Bitmap ,_agg error ){_gc .Log .Trace (_ed .Sprintf ("\u005b\u0050\u0041G\u0045\u005d\u005b\u0023%\u0064\u005d\u0020\u0047\u0065\u0074\u0042i\u0074\u006d\u0061\u0070\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e",_deg .PageNumber ));defer func (){if _agg !=nil {_gc .Log .Trace (_ed .Sprintf ("\u005b\u0050\u0041\u0047\u0045\u005d\u005b\u0023\u0025\u0064\u005d\u0020\u0047\u0065\u0074B\u0069t\u006d\u0061\u0070\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_deg .PageNumber ,_agg ));}else {_gc .Log .Trace (_ed .Sprintf ("\u005b\u0050\u0041\u0047\u0045\u005d\u005b\u0023\u0025\u0064]\u0020\u0047\u0065\u0074\u0042\u0069\u0074m\u0061\u0070\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064",_deg .PageNumber ));};}();if _deg .Bitmap !=nil {return _deg .Bitmap ,nil ;};_agg =_deg .composePageBitmap ();if _agg !=nil {return nil ,_agg ;};return _deg .Bitmap ,nil ;};func (_adde *Page )createStripedPage (_cbf *_cc .PageInformationSegment )error {const _acdd ="\u0063\u0072\u0065\u0061\u0074\u0065\u0053\u0074\u0072\u0069\u0070\u0065d\u0050\u0061\u0067\u0065";_edgc ,_ecb :=_adde .collectPageStripes ();if _ecb !=nil {return _cf .Wrap (_ecb ,_acdd ,"");};var _eadc int ;for _ ,_egec :=range _edgc {if _gbaf ,_fbbg :=_egec .(*_cc .EndOfStripe );_fbbg {_eadc =_gbaf .LineNumber ()+1;}else {_dcd :=_egec .(_cc .Regioner );_eae :=_dcd .GetRegionInfo ();_gdd :=_adde .getCombinationOperator (_cbf ,_eae .CombinaionOperator );_aaf ,_eda :=_dcd .GetRegionBitmap ();if _eda !=nil {return _cf .Wrap (_eda ,_acdd ,"");};_eda =_edc .Blit (_aaf ,_adde .Bitmap ,int (_eae .XLocation ),_eadc ,_gdd );if _eda !=nil {return _cf .Wrap (_eda ,_acdd ,"");};};};return nil ;};func (_feg *Page )GetSegment (number int )(*_cc .Header ,error ){const _agd ="\u0050a\u0067e\u002e\u0047\u0065\u0074\u0053\u0065\u0067\u006d\u0065\u006e\u0074";for _ ,_fbe :=range _feg .Segments {if _fbe .SegmentNumber ==uint32 (number ){return _fbe ,nil ;};};_dcad :=make ([]uint32 ,len (_feg .Segments ));for _bbdg ,_cdf :=range _feg .Segments {_dcad [_bbdg ]=_cdf .SegmentNumber ;};return nil ,_cf .Errorf (_agd ,"\u0073e\u0067\u006d\u0065n\u0074\u0020\u0077i\u0074h \u006e\u0075\u006d\u0062\u0065\u0072\u003a \u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0070\u0061\u0067\u0065\u003a\u0020'%\u0064'\u002e\u0020\u004b\u006e\u006f\u0077n\u0020\u0073\u0065\u0067\u006de\u006e\u0074\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0073\u003a \u0025\u0076",number ,_feg .PageNumber ,_dcad );};func (_aff *Document )GetNumberOfPages ()(uint32 ,error ){if _aff .NumberOfPagesUnknown ||_aff .NumberOfPages ==0{if len (_aff .Pages )==0{if _dg :=_aff .mapData ();_dg !=nil {return 0,_cf .Wrap (_dg ,"\u0044o\u0063\u0075\u006d\u0065n\u0074\u002e\u0047\u0065\u0074N\u0075m\u0062e\u0072\u004f\u0066\u0050\u0061\u0067\u0065s","");};};return uint32 (len (_aff .Pages )),nil ;};return _aff .NumberOfPages ,nil ;};func (_gebd *Page )getPageInformationSegment ()*_cc .Header {for _ ,_eeea :=range _gebd .Segments {if _eeea .Type ==_cc .TPageInformation {return _eeea ;};};_gc .Log .Debug ("\u0050\u0061\u0067\u0065\u0020\u0069\u006e\u0066o\u0072\u006d\u0061ti\u006f\u006e\u0020\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u0020\u0066o\u0072\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0073\u002e",_gebd );return nil ;};func (_eaae *Page )lastSegmentNumber ()(_cffb uint32 ,_dad error ){const _cbbe ="\u006c\u0061\u0073\u0074\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u004eu\u006d\u0062\u0065\u0072";if len (_eaae .Segments )==0{return _cffb ,_cf .Errorf (_cbbe ,"\u006e\u006f\u0020se\u0067\u006d\u0065\u006e\u0074\u0073\u0020\u0066\u006fu\u006ed\u0020i\u006e \u0074\u0068\u0065\u0020\u0070\u0061\u0067\u0065\u0020\u0027\u0025\u0064\u0027",_eaae .PageNumber );};return _eaae .Segments [len (_eaae .Segments )-1].SegmentNumber ,nil ;};func (_edcf *Page )clearSegmentData (){for _fdba :=range _edcf .Segments {_edcf .Segments [_fdba ].CleanSegmentData ();};};func (_agb *Page )GetHeight ()(int ,error ){return _agb .getHeight ()};func (_bg *Document )produceClassifiedPage (_ca *Page ,_gae *_cc .Header )(_bb error ){const _ce ="p\u0072\u006f\u0064\u0075ce\u0043l\u0061\u0073\u0073\u0069\u0066i\u0065\u0064\u0050\u0061\u0067\u0065";var _eaa map[int ]int ;_df :=_bg ._ad ;_adc :=[]*_cc .Header {_gae };if len (_bg ._bd [_ca .PageNumber ])> 0{_eaa =map[int ]int {};_cfe ,_cfa :=_bg .addSymbolDictionary (_ca .PageNumber ,_bg .Classer .UndilatedTemplates ,_bg ._bd [_ca .PageNumber ],_eaa ,false );if _cfa !=nil {return _cf .Wrap (_cfa ,_ce ,"");};_adc =append (_adc ,_cfe );_df +=len (_bg ._bd [_ca .PageNumber ]);};_dbc :=_bg ._ea [_ca .PageNumber ];_gc .Log .Debug ("P\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020c\u006f\u006d\u0070\u0073: \u0025\u0076",_ca .PageNumber ,_dbc );_ca .addTextRegionSegment (_adc ,_bg ._bdd ,_eaa ,_bg ._ea [_ca .PageNumber ],_bg .Classer .PtaLL ,_bg .Classer .UndilatedTemplates ,_bg .Classer .ClassIDs ,nil ,_bbd (_df ),len (_bg ._ea [_ca .PageNumber ]));return nil ;};func _bef (_gba _gcb .StreamReader ,_ead *Globals )(*Document ,error ){_fcd :=&Document {Pages :make (map[int ]*Page ),InputStream :_gba ,OrganizationType :_cc .OSequential ,NumberOfPagesUnknown :true ,GlobalSegments :_ead ,_ba :9};if _fcd .GlobalSegments ==nil {_fcd .GlobalSegments =&Globals {};};if _gbe :=_fcd .mapData ();_gbe !=nil {return nil ,_gbe ;};return _fcd ,nil ;};func (_ec *Document )AddClassifiedPage (bm *_edc .Bitmap ,method _b .Method )(_gg error ){const _db ="\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0041\u0064d\u0043\u006c\u0061\u0073\u0073\u0069\u0066\u0069\u0065\u0064P\u0061\u0067\u0065";if !_ec .FullHeaders &&_ec .NumberOfPages !=0{return _cf .Error (_db ,"\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u0020\u0061\u006c\u0072\u0065a\u0064\u0079\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0070\u0061\u0067\u0065\u002e\u0020\u0046\u0069\u006c\u0065\u004d\u006f\u0064\u0065\u0020\u0064\u0069\u0073\u0061\u006c\u006c\u006f\u0077\u0073\u0020\u0061\u0064\u0064i\u006e\u0067\u0020\u006d\u006f\u0072\u0065\u0020\u0074\u0068\u0061\u006e \u006f\u006e\u0065\u0020\u0070\u0061g\u0065");};if _ec .Classer ==nil {if _ec .Classer ,_gg =_b .Init (_b .DefaultSettings ());_gg !=nil {return _cf .Wrap (_gg ,_db ,"");};};_ga :=int (_ec .nextPageNumber ());_edg :=&Page {Segments :[]*_cc .Header {},Bitmap :bm ,Document :_ec ,FinalHeight :bm .Height ,FinalWidth :bm .Width ,PageNumber :_ga };_ec .Pages [_ga ]=_edg ;switch method {case _b .RankHaus :_edg .EncodingMethod =RankHausEM ;case _b .Correlation :_edg .EncodingMethod =CorrelationEM ;};_edg .AddPageInformationSegment ();if _gg =_ec .Classer .AddPage (bm ,_ga ,method );_gg !=nil {return _cf .Wrap (_gg ,_db ,"");};if _ec .FullHeaders {_edg .AddEndOfPageSegment ();};return nil ;};func (_abd *Page )getCombinationOperator (_agge *_cc .PageInformationSegment ,_bdb _edc .CombinationOperator )_edc .CombinationOperator {if _agge .CombinationOperatorOverrideAllowed (){return _bdb ;};return _agge .CombinationOperator ();};func (_aae *Document )encodeEOFHeader (_efa _gcb .BinaryWriter )(_cda int ,_gfd error ){_fee :=&_cc .Header {SegmentNumber :_aae .nextSegmentNumber (),Type :_cc .TEndOfFile };if _cda ,_gfd =_fee .Encode (_efa );_gfd !=nil {return 0,_cf .Wrap (_gfd ,"\u0065n\u0063o\u0064\u0065\u0045\u004f\u0046\u0048\u0065\u0061\u0064\u0065\u0072","");};return _cda ,nil ;};func (_cbb *Page )createNormalPage (_gef *_cc .PageInformationSegment )error {const _gedd ="\u0063\u0072e\u0061\u0074\u0065N\u006f\u0072\u006d\u0061\u006c\u0050\u0061\u0067\u0065";_cbb .Bitmap =_edc .New (_gef .PageBMWidth ,_gef .PageBMHeight );if _gef .DefaultPixelValue ()!=0{_cbb .Bitmap .SetDefaultPixel ();};for _ ,_dega :=range _cbb .Segments {switch _dega .Type {case 6,7,22,23,38,39,42,43:_gc .Log .Trace ("\u0047\u0065\u0074\u0074in\u0067\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0064",_dega .SegmentNumber );_befb ,_fdb :=_dega .GetSegmentData ();if _fdb !=nil {return _fdb ;};_gcec ,_acda :=_befb .(_cc .Regioner );if !_acda {_gc .Log .Debug ("\u0053\u0065g\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0054\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0052\u0065\u0067\u0069on\u0065\u0072",_befb );return _cf .Errorf (_gedd ,"i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006a\u0062i\u0067\u0032\u0020\u0073\u0065\u0067\u006den\u0074\u0020\u0074\u0079p\u0065\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061 R\u0065\u0067i\u006f\u006e\u0065\u0072\u003a\u0020\u0025\u0054",_befb );};_ddab ,_fdb :=_gcec .GetRegionBitmap ();if _fdb !=nil {return _cf .Wrap (_fdb ,_gedd ,"");};if _cbb .fitsPage (_gef ,_ddab ){_cbb .Bitmap =_ddab ;}else {_becd :=_gcec .GetRegionInfo ();_dfeg :=_cbb .getCombinationOperator (_gef ,_becd .CombinaionOperator );_fdb =_edc .Blit (_ddab ,_cbb .Bitmap ,int (_becd .XLocation ),int (_becd .YLocation ),_dfeg );if _fdb !=nil {return _cf .Wrap (_fdb ,_gedd ,"");};};};};return nil ;};func (_bcc *Page )AddPageInformationSegment (){_cba :=&_cc .PageInformationSegment {PageBMWidth :_bcc .FinalWidth ,PageBMHeight :_bcc .FinalHeight ,ResolutionX :_bcc .ResolutionX ,ResolutionY :_bcc .ResolutionY ,IsLossless :_bcc .IsLossless };_gfgc :=&_cc .Header {PageAssociation :_bcc .PageNumber ,SegmentDataLength :uint64 (_cba .Size ()),SegmentData :_cba ,Type :_cc .TPageInformation };_bcc .Segments =append (_bcc .Segments ,_gfgc );};func (_dbce *Document )determineRandomDataOffsets (_bag []*_cc .Header ,_ecf uint64 ){if _dbce .OrganizationType !=_cc .ORandom {return ;};for _ ,_eeef :=range _bag {_eeef .SegmentDataStartOffset =_ecf ;_ecf +=_eeef .SegmentDataLength ;};};func (_bcg *Page )countRegions ()int {var _baea int ;for _ ,_gbab :=range _bcg .Segments {switch _gbab .Type {case 6,7,22,23,38,39,42,43:_baea ++;};};return _baea ;};func (_bed *Document )reachedEOF (_bec int64 )(bool ,error ){const _dfa ="\u0072\u0065\u0061\u0063\u0068\u0065\u0064\u0045\u004f\u0046";_ ,_gfdb :=_bed .InputStream .Seek (_bec ,_c .SeekStart );if _gfdb !=nil {_gc .Log .Debug ("\u0072\u0065\u0061c\u0068\u0065\u0064\u0045\u004f\u0046\u0020\u002d\u0020\u0064\u002e\u0049\u006e\u0070\u0075\u0074\u0053\u0074\u0072\u0065\u0061\u006d\u002e\u0053\u0065\u0065\u006b\u0020\u0066a\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076",_gfdb );return false ,_cf .Wrap (_gfdb ,_dfa ,"\u0069n\u0070\u0075\u0074\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020s\u0065\u0065\u006b\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_ ,_gfdb =_bed .InputStream .ReadBits (32);if _gfdb ==_c .EOF {return true ,nil ;}else if _gfdb !=nil {return false ,_cf .Wrap (_gfdb ,_dfa ,"");};return false ,nil ;};func (_gcefc *Page )nextSegmentNumber ()uint32 {return _gcefc .Document .nextSegmentNumber ()};func (_def *Document )completeSymbols ()(_fcf error ){const _beb ="\u0063o\u006dp\u006c\u0065\u0074\u0065\u0053\u0079\u006d\u0062\u006f\u006c\u0073";if _def .Classer ==nil {return nil ;};if _def .Classer .UndilatedTemplates ==nil {return _cf .Error (_beb ,"\u006e\u006f t\u0065\u006d\u0070l\u0061\u0074\u0065\u0073 de\u0066in\u0065\u0064\u0020\u0066\u006f\u0072\u0020th\u0065\u0020\u0063\u006c\u0061\u0073\u0073e\u0072");};_dfe :=len (_def .Pages )==1;_cae :=make ([]int ,_def .Classer .UndilatedTemplates .Size ());var _gca int ;for _fec :=0;_fec < _def .Classer .ClassIDs .Size ();_fec ++{_gca ,_fcf =_def .Classer .ClassIDs .Get (_fec );if _fcf !=nil {return _cf .Wrap (_fcf ,_beb ,"\u0063\u006c\u0061\u0073\u0073\u0020\u0049\u0044\u0027\u0073");};_cae [_gca ]++;};var _dda []int ;for _ac :=0;_ac < _def .Classer .UndilatedTemplates .Size ();_ac ++{if _cae [_ac ]==0{return _cf .Error (_beb ,"\u006eo\u0020\u0073y\u006d\u0062\u006f\u006cs\u0020\u0069\u006es\u0074\u0061\u006e\u0063\u0065\u0073\u0020\u0066\u006fun\u0064\u0020\u0066o\u0072\u0020g\u0069\u0076\u0065\u006e\u0020\u0063l\u0061\u0073s\u003f\u0020");};if _cae [_ac ]> 1||_dfe {_dda =append (_dda ,_ac );};};_def ._ad =len (_dda );var _gea ,_gfc int ;for _gff :=0;_gff < _def .Classer .ComponentPageNumbers .Size ();_gff ++{_gea ,_fcf =_def .Classer .ComponentPageNumbers .Get (_gff );if _fcf !=nil {return _cf .Wrapf (_fcf ,_beb ,"p\u0061\u0067\u0065\u003a\u0020\u0027\u0025\u0064\u0027 \u006e\u006f\u0074\u0020\u0066\u006f\u0075nd\u0020\u0069\u006e\u0020t\u0068\u0065\u0020\u0063\u006c\u0061\u0073\u0073\u0065r \u0070\u0061g\u0065\u006e\u0075\u006d\u0062\u0065\u0072\u0073",_gff );};_gfc ,_fcf =_def .Classer .ClassIDs .Get (_gff );if _fcf !=nil {return _cf .Wrapf (_fcf ,_beb ,"\u0063\u0061\u006e\u0027\u0074\u0020\u0067e\u0074\u0020\u0073y\u006d\u0062\u006f\u006c \u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0027\u0025\u0064\u0027\u0020\u0066\u0072\u006f\u006d\u0020\u0063\u006c\u0061\u0073\u0073\u0065\u0072",_gea );};if _cae [_gfc ]==1&&!_dfe {_def ._bd [_gea ]=append (_def ._bd [_gea ],_gfc );};};if _fcf =_def .Classer .ComputeLLCorners ();_fcf !=nil {return _cf .Wrap (_fcf ,_beb ,"");};return nil ;};func (_ag *Document )addSymbolDictionary (_fdc int ,_adf *_edc .Bitmaps ,_fbb []int ,_fdcc map[int ]int ,_ff bool )(*_cc .Header ,error ){const _cgg ="\u0061\u0064\u0064\u0053ym\u0062\u006f\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079";_ee :=&_cc .SymbolDictionary {};if _eee :=_ee .InitEncode (_adf ,_fbb ,_fdcc ,_ff );_eee !=nil {return nil ,_eee ;};_dac :=&_cc .Header {Type :_cc .TSymbolDictionary ,PageAssociation :_fdc ,SegmentData :_ee };if _fdc ==0{if _ag .GlobalSegments ==nil {_ag .GlobalSegments =&Globals {};};_ag .GlobalSegments .AddSegment (_dac );return _dac ,nil ;};_be ,_cd :=_ag .Pages [_fdc ];if !_cd {return nil ,_cf .Errorf (_cgg ,"p\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020n\u006f\u0074\u0020\u0066ou\u006e\u0064",_fdc );};var (_dfc int ;_af *_cc .Header ;);for _dfc ,_af =range _be .Segments {if _af .Type ==_cc .TPageInformation {break ;};};_dfc ++;_be .Segments =append (_be .Segments ,nil );copy (_be .Segments [_dfc +1:],_be .Segments [_dfc :]);_be .Segments [_dfc ]=_dac ;return _dac ,nil ;};func (_ccb *Document )AddGenericPage (bm *_edc .Bitmap ,duplicateLineRemoval bool )(_ccg error ){const _bde ="\u0044\u006f\u0063um\u0065\u006e\u0074\u002e\u0041\u0064\u0064\u0047\u0065\u006e\u0065\u0072\u0069\u0063\u0050\u0061\u0067\u0065";if !_ccb .FullHeaders &&_ccb .NumberOfPages !=0{return _cf .Error (_bde ,"\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u0020\u0061\u006c\u0072\u0065a\u0064\u0079\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0070\u0061\u0067\u0065\u002e\u0020\u0046\u0069\u006c\u0065\u004d\u006f\u0064\u0065\u0020\u0064\u0069\u0073\u0061\u006c\u006c\u006f\u0077\u0073\u0020\u0061\u0064\u0064i\u006e\u0067\u0020\u006d\u006f\u0072\u0065\u0020\u0074\u0068\u0061\u006e \u006f\u006e\u0065\u0020\u0070\u0061g\u0065");};_eg :=&Page {Segments :[]*_cc .Header {},Bitmap :bm ,Document :_ccb ,FinalHeight :bm .Height ,FinalWidth :bm .Width ,IsLossless :true };_eg .PageNumber =int (_ccb .nextPageNumber ());_ccb .Pages [_eg .PageNumber ]=_eg ;_eg .AddPageInformationSegment ();if _ccg =_eg .AddGenericRegion (bm ,0,0,0,_cc .TImmediateGenericRegion ,duplicateLineRemoval );_ccg !=nil {return _cf .Wrap (_ccg ,_bde ,"");};if _ccb .FullHeaders {_eg .AddEndOfPageSegment ();};return nil ;};func (_gdf *Document )parseFileHeader ()error {const _dcf ="\u0070a\u0072s\u0065\u0046\u0069\u006c\u0065\u0048\u0065\u0061\u0064\u0065\u0072";_ ,_egea :=_gdf .InputStream .Seek (8,_c .SeekStart );if _egea !=nil {return _cf .Wrap (_egea ,_dcf ,"\u0069\u0064");};_ ,_egea =_gdf .InputStream .ReadBits (5);if _egea !=nil {return _cf .Wrap (_egea ,_dcf ,"\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0064\u0020\u0062\u0069\u0074\u0073");};_dbcee ,_egea :=_gdf .InputStream .ReadBit ();if _egea !=nil {return _cf .Wrap (_egea ,_dcf ,"\u0065x\u0074e\u006e\u0064\u0065\u0064\u0020t\u0065\u006dp\u006c\u0061\u0074\u0065\u0073");};if _dbcee ==1{_gdf .GBUseExtTemplate =true ;};_dbcee ,_egea =_gdf .InputStream .ReadBit ();if _egea !=nil {return _cf .Wrap (_egea ,_dcf ,"\u0075\u006e\u006b\u006eow\u006e\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072");};if _dbcee !=1{_gdf .NumberOfPagesUnknown =false ;};_dbcee ,_egea =_gdf .InputStream .ReadBit ();if _egea !=nil {return _cf .Wrap (_egea ,_dcf ,"\u006f\u0072\u0067\u0061\u006e\u0069\u007a\u0061\u0074\u0069\u006f\u006e \u0074\u0079\u0070\u0065");};_gdf .OrganizationType =_cc .OrganizationType (_dbcee );if !_gdf .NumberOfPagesUnknown {_gdf .NumberOfPages ,_egea =_gdf .InputStream .ReadUint32 ();if _egea !=nil {return _cf .Wrap (_egea ,_dcf ,"\u006eu\u006db\u0065\u0072\u0020\u006f\u0066\u0020\u0070\u0061\u0067\u0065\u0073");};_gdf ._ba =13;};return nil ;};func (_dfae *Page )GetResolutionY ()(int ,error ){return _dfae .getResolutionY ()};func (_dc *Document )completeClassifiedPages ()(_gd error ){const _cg ="\u0063\u006f\u006dpl\u0065\u0074\u0065\u0043\u006c\u0061\u0073\u0073\u0069\u0066\u0069\u0065\u0064\u0050\u0061\u0067\u0065\u0073";if _dc .Classer ==nil {return nil ;};_dc ._ab =make ([]int ,_dc .Classer .UndilatedTemplates .Size ());for _adg :=0;_adg < _dc .Classer .ClassIDs .Size ();_adg ++{_ge ,_gb :=_dc .Classer .ClassIDs .Get (_adg );if _gb !=nil {return _cf .Wrapf (_gb ,_cg ,"\u0063\u006c\u0061\u0073s \u0077\u0069\u0074\u0068\u0020\u0069\u0064\u003a\u0020\u0027\u0025\u0064\u0027",_adg );};_dc ._ab [_ge ]++;};var _cb []int ;for _bf :=0;_bf < _dc .Classer .UndilatedTemplates .Size ();_bf ++{if _dc .NumberOfPages ==1||_dc ._ab [_bf ]> 1{_cb =append (_cb ,_bf );};};var (_ggb *Page ;_fd bool ;);for _eb ,_bc :=range *_dc .Classer .ComponentPageNumbers {if _ggb ,_fd =_dc .Pages [_bc ];!_fd {return _cf .Errorf (_cg ,"p\u0061g\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020n\u006f\u0074\u0020\u0066ou\u006e\u0064",_eb );};if _ggb .EncodingMethod ==GenericEM {_gc .Log .Error ("\u0047\u0065\u006e\u0065\u0072\u0069c\u0020\u0070\u0061g\u0065\u0020\u0077i\u0074\u0068\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u003a \u0027\u0025\u0064\u0027\u0020ma\u0070\u0070\u0065\u0064\u0020\u0061\u0073\u0020\u0063\u006c\u0061\u0073\u0073\u0069\u0066\u0069\u0065\u0064\u0020\u0070\u0061\u0067\u0065",_eb );continue ;};_dc ._ea [_bc ]=append (_dc ._ea [_bc ],_eb );_fc ,_dd :=_dc .Classer .ClassIDs .Get (_eb );if _dd !=nil {return _cf .Wrapf (_dd ,_cg ,"\u006e\u006f\u0020\u0073uc\u0068\u0020\u0063\u006c\u0061\u0073\u0073\u0049\u0044\u003a\u0020\u0025\u0064",_eb );};if _dc ._ab [_fc ]==1&&_dc .NumberOfPages !=1{_aa :=append (_dc ._bd [_bc ],_fc );_dc ._bd [_bc ]=_aa ;};};if _gd =_dc .Classer .ComputeLLCorners ();_gd !=nil {return _cf .Wrap (_gd ,_cg ,"");};if _ ,_gd =_dc .addSymbolDictionary (0,_dc .Classer .UndilatedTemplates ,_cb ,_dc ._bdd ,false );_gd !=nil {return _cf .Wrap (_gd ,_cg ,"");};return nil ;};var _a =[]byte {0x97,0x4A,0x42,0x32,0x0D,0x0A,0x1A,0x0A};func DecodeDocument (input _gcb .StreamReader ,globals *Globals )(*Document ,error ){return _bef (input ,globals );};func _ggfg (_ddd *Document ,_acd int )*Page {return &Page {Document :_ddd ,PageNumber :_acd ,Segments :[]*_cc .Header {}};};