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

12 lines
184 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 segments ;import (_e "encoding/binary";_ea "errors";_ad "fmt";_baf "github.com/unidoc/unipdf/v3/common";_f "github.com/unidoc/unipdf/v3/internal/bitwise";_eb "github.com/unidoc/unipdf/v3/internal/jbig2/basic";_af "github.com/unidoc/unipdf/v3/internal/jbig2/bitmap";_ba "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/arithmetic";_adg "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/huffman";_gb "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/mmr";_d "github.com/unidoc/unipdf/v3/internal/jbig2/encoder/arithmetic";_ab "github.com/unidoc/unipdf/v3/internal/jbig2/errors";_gg "image";_b "io";_a "math";_bd "strings";_bb "time";);func (_ggc *Header )readSegmentDataLength (_bfaf _f .StreamReader )(_eegg error ){_ggc .SegmentDataLength ,_eegg =_bfaf .ReadBits (32);if _eegg !=nil {return _eegg ;};_ggc .SegmentDataLength &=_a .MaxInt32 ;return nil ;};func (_gbab *SymbolDictionary )getSymbol (_cbfe int )(*_af .Bitmap ,error ){const _bcdg ="\u0067e\u0074\u0053\u0079\u006d\u0062\u006fl";_ccb ,_fade :=_gbab ._ceac .GetBitmap (_gbab ._eabd [_cbfe ]);if _fade !=nil {return nil ,_ab .Wrap (_fade ,_bcdg ,"\u0063\u0061n\u0027\u0074\u0020g\u0065\u0074\u0020\u0073\u0079\u006d\u0062\u006f\u006c");};return _ccb ,nil ;};func (_cefc *HalftoneRegion )GetRegionInfo ()*RegionSegment {return _cefc .RegionSegment };type TableSegment struct{_fegef _f .StreamReader ;_cgga int32 ;_cbcg int32 ;_geeb int32 ;_gece int32 ;_afga int32 ;};func NewRegionSegment (r _f .StreamReader )*RegionSegment {return &RegionSegment {_feag :r }};func (_bbaac *GenericRegion )overrideAtTemplate0b (_ggge ,_aab ,_cgec ,_gfb ,_feg ,_ace int )int {if _bbaac .GBAtOverride [0]{_ggge &=0xFFFD;if _bbaac .GBAtY [0]==0&&_bbaac .GBAtX [0]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [0]&0x1))<<1;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [0]),_cgec +int (_bbaac .GBAtY [0])))<<1;};};if _bbaac .GBAtOverride [1]{_ggge &=0xDFFF;if _bbaac .GBAtY [1]==0&&_bbaac .GBAtX [1]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [1]&0x1))<<13;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [1]),_cgec +int (_bbaac .GBAtY [1])))<<13;};};if _bbaac .GBAtOverride [2]{_ggge &=0xFDFF;if _bbaac .GBAtY [2]==0&&_bbaac .GBAtX [2]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [2]&0x1))<<9;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [2]),_cgec +int (_bbaac .GBAtY [2])))<<9;};};if _bbaac .GBAtOverride [3]{_ggge &=0xBFFF;if _bbaac .GBAtY [3]==0&&_bbaac .GBAtX [3]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [3]&0x1))<<14;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [3]),_cgec +int (_bbaac .GBAtY [3])))<<14;};};if _bbaac .GBAtOverride [4]{_ggge &=0xEFFF;if _bbaac .GBAtY [4]==0&&_bbaac .GBAtX [4]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [4]&0x1))<<12;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [4]),_cgec +int (_bbaac .GBAtY [4])))<<12;};};if _bbaac .GBAtOverride [5]{_ggge &=0xFFDF;if _bbaac .GBAtY [5]==0&&_bbaac .GBAtX [5]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [5]&0x1))<<5;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [5]),_cgec +int (_bbaac .GBAtY [5])))<<5;};};if _bbaac .GBAtOverride [6]{_ggge &=0xFFFB;if _bbaac .GBAtY [6]==0&&_bbaac .GBAtX [6]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [6]&0x1))<<2;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [6]),_cgec +int (_bbaac .GBAtY [6])))<<2;};};if _bbaac .GBAtOverride [7]{_ggge &=0xFFF7;if _bbaac .GBAtY [7]==0&&_bbaac .GBAtX [7]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [7]&0x1))<<3;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [7]),_cgec +int (_bbaac .GBAtY [7])))<<3;};};if _bbaac .GBAtOverride [8]{_ggge &=0xF7FF;if _bbaac .GBAtY [8]==0&&_bbaac .GBAtX [8]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [8]&0x1))<<11;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [8]),_cgec +int (_bbaac .GBAtY [8])))<<11;};};if _bbaac .GBAtOverride [9]{_ggge &=0xFFEF;if _bbaac .GBAtY [9]==0&&_bbaac .GBAtX [9]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [9]&0x1))<<4;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [9]),_cgec +int (_bbaac .GBAtY [9])))<<4;};};if _bbaac .GBAtOverride [10]{_ggge &=0x7FFF;if _bbaac .GBAtY [10]==0&&_bbaac .GBAtX [10]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [10]&0x1))<<15;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [10]),_cgec +int (_bbaac .GBAtY [10])))<<15;};};if _bbaac .GBAtOverride [11]{_ggge &=0xFDFF;if _bbaac .GBAtY [11]==0&&_bbaac .GBAtX [11]>=-int8 (_feg ){_ggge |=(_gfb >>uint (int8 (_ace )-_bbaac .GBAtX [11]&0x1))<<10;}else {_ggge |=int (_bbaac .getPixel (_aab +int (_bbaac .GBAtX [11]),_cgec +int (_bbaac .GBAtY [11])))<<10;};};return _ggge ;};func (_ceec *TableSegment )Init (h *Header ,r _f .StreamReader )error {_ceec ._fegef =r ;return _ceec .parseHeader ();};func (_ecbf *TextRegion )decodeID ()(int64 ,error ){if _ecbf .IsHuffmanEncoded {if _ecbf ._dfcb ==nil {_affe ,_dddfc :=_ecbf ._bfeb .ReadBits (byte (_ecbf ._edbd ));return int64 (_affe ),_dddfc ;};return _ecbf ._dfcb .Decode (_ecbf ._bfeb );};return _ecbf ._adcb .DecodeIAID (uint64 (_ecbf ._edbd ),_ecbf ._cegce );};func (_bcc *GenericRegion )decodeTemplate3 (_bgge ,_fadcc ,_adfb int ,_efb ,_bfcb int )(_ffg error ){const _geb ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0033";var (_ebf ,_cae int ;_fdfd int ;_fdg byte ;_dbb ,_bgga int ;);if _bgge >=1{_fdg ,_ffg =_bcc .Bitmap .GetByte (_bfcb );if _ffg !=nil {return _ab .Wrap (_ffg ,_geb ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_fdfd =int (_fdg );};_ebf =(_fdfd >>1)&0x70;for _faga :=0;_faga < _adfb ;_faga =_dbb {var (_agff byte ;_fgf int ;);_dbb =_faga +8;if _defa :=_fadcc -_faga ;_defa > 8{_fgf =8;}else {_fgf =_defa ;};if _bgge >=1{_fdfd <<=8;if _dbb < _fadcc {_fdg ,_ffg =_bcc .Bitmap .GetByte (_bfcb +1);if _ffg !=nil {return _ab .Wrap (_ffg ,_geb ,"\u0069\u006e\u006e\u0065\u0072\u0020\u002d\u0020\u006c\u0069\u006e\u0065 \u003e\u003d\u0020\u0031");};_fdfd |=int (_fdg );};};for _bdeg :=0;_bdeg < _fgf ;_bdeg ++{if _bcc ._cccgf {_cae =_bcc .overrideAtTemplate3 (_ebf ,_faga +_bdeg ,_bgge ,int (_agff ),_bdeg );_bcc ._dgbb .SetIndex (int32 (_cae ));}else {_bcc ._dgbb .SetIndex (int32 (_ebf ));};_bgga ,_ffg =_bcc ._bba .DecodeBit (_bcc ._dgbb );if _ffg !=nil {return _ab .Wrap (_ffg ,_geb ,"");};_agff |=byte (_bgga )<<byte (7-_bdeg );_ebf =((_ebf &0x1f7)<<1)|_bgga |((_fdfd >>uint (8-_bdeg ))&0x010);};if _cgef :=_bcc .Bitmap .SetByte (_efb ,_agff );_cgef !=nil {return _ab .Wrap (_cgef ,_geb ,"");};_efb ++;_bfcb ++;};return nil ;};func (_ebabd *SymbolDictionary )getUserTable (_cdab int )(_adg .Tabler ,error ){var _ffcg int ;for _ ,_ffgd :=range _ebabd .Header .RTSegments {if _ffgd .Type ==53{if _ffcg ==_cdab {_bbe ,_eeac :=_ffgd .GetSegmentData ();if _eeac !=nil {return nil ,_eeac ;};_gccg :=_bbe .(_adg .BasicTabler );return _adg .NewEncodedTable (_gccg );};_ffcg ++;};};return nil ,nil ;};func (_cfga *GenericRegion )writeGBAtPixels (_gbfc _f .BinaryWriter )(_gab int ,_aff error ){const _bebe ="\u0077r\u0069t\u0065\u0047\u0042\u0041\u0074\u0050\u0069\u0078\u0065\u006c\u0073";if _cfga .UseMMR {return 0,nil ;};_aca :=1;if _cfga .GBTemplate ==0{_aca =4;}else if _cfga .UseExtTemplates {_aca =12;};if len (_cfga .GBAtX )!=_aca {return 0,_ab .Errorf (_bebe ,"\u0067\u0062\u0020\u0061\u0074\u0020\u0070\u0061\u0069\u0072\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020d\u006f\u0065\u0073\u006e\u0027\u0074\u0020m\u0061\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0047\u0042\u0041t\u0058\u0020\u0073\u006c\u0069\u0063\u0065\u0020\u006c\u0065\u006e");};if len (_cfga .GBAtY )!=_aca {return 0,_ab .Errorf (_bebe ,"\u0067\u0062\u0020\u0061\u0074\u0020\u0070\u0061\u0069\u0072\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020d\u006f\u0065\u0073\u006e\u0027\u0074\u0020m\u0061\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0047\u0042\u0041t\u0059\u0020\u0073\u006c\u0069\u0063\u0065\u0020\u006c\u0065\u006e");};for _badb :=0;_badb < _aca ;_badb ++{if _aff =_gbfc .WriteByte (byte (_cfga .GBAtX [_badb ]));_aff !=nil {return _gab ,_ab .Wrap (_aff ,_bebe ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0058");};_gab ++;if _aff =_gbfc .WriteByte (byte (_cfga .GBAtY [_badb ]));_aff !=nil {return _gab ,_ab .Wrap (_aff ,_bebe ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0059");};_gab ++;};return _gab ,nil ;};func (_fgbg *TextRegion )getUserTable (_befeg int )(_adg .Tabler ,error ){const _defag ="\u0067\u0065\u0074U\u0073\u0065\u0072\u0054\u0061\u0062\u006c\u0065";var _baec int ;for _ ,_ebdf :=range _fgbg .Header .RTSegments {if _ebdf .Type ==53{if _baec ==_befeg {_aac ,_agab :=_ebdf .GetSegmentData ();if _agab !=nil {return nil ,_agab ;};_fbdg ,_efcb :=_aac .(*TableSegment );if !_efcb {_baf .Log .Debug (_ad .Sprintf ("\u0073\u0065\u0067\u006d\u0065\u006e\u0074 \u0077\u0069\u0074h\u0020\u0054\u0079p\u0065\u00205\u0033\u0020\u002d\u0020\u0061\u006ed\u0020in\u0064\u0065\u0078\u003a\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0054\u0061\u0062\u006c\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074",_ebdf .SegmentNumber ));return nil ,_ab .Error (_defag ,"\u0073\u0065\u0067\u006d\u0065\u006e\u0074 \u0077\u0069\u0074h\u0020\u0054\u0079\u0070e\u0020\u0035\u0033\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u002a\u0054\u0061\u0062\u006c\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074");};return _adg .NewEncodedTable (_fbdg );};_baec ++;};};return nil ,nil ;};type Type int ;func (_efgc *GenericRegion )computeSegmentDataStructure ()error {_efgc .DataOffset =_efgc ._cfbf .StreamPosition ();_efgc .DataHeaderLength =_efgc .DataOffset -_efgc .DataHeaderOffset ;_efgc .DataLength =int64 (_efgc ._cfbf .Length ())-_efgc .DataHeaderLength ;return nil ;};func (_fag *GenericRefinementRegion )overrideAtTemplate0 (_bfg ,_edec ,_dgc ,_fbee ,_cda int )int {if _fag ._abb [0]{_bfg &=0xfff7;if _fag .GrAtY [0]==0&&int (_fag .GrAtX [0])>=-_cda {_bfg |=(_fbee >>uint (7-(_cda +int (_fag .GrAtX [0])))&0x1)<<3;}else {_bfg |=_fag .getPixel (_fag .RegionBitmap ,_edec +int (_fag .GrAtX [0]),_dgc +int (_fag .GrAtY [0]))<<3;};};if _fag ._abb [1]{_bfg &=0xefff;if _fag .GrAtY [1]==0&&int (_fag .GrAtX [1])>=-_cda {_bfg |=(_fbee >>uint (7-(_cda +int (_fag .GrAtX [1])))&0x1)<<12;}else {_bfg |=_fag .getPixel (_fag .ReferenceBitmap ,_edec +int (_fag .GrAtX [1]),_dgc +int (_fag .GrAtY [1]));};};return _bfg ;};func (_cafdb *TextRegion )decodeRdx ()(int64 ,error ){const _cdcg ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064x";if _cafdb .IsHuffmanEncoded {if _cafdb .SbHuffRDX ==3{if _cafdb ._aeac ==nil {var (_edfb int ;_ebfcg error ;);if _cafdb .SbHuffFS ==3{_edfb ++;};if _cafdb .SbHuffDS ==3{_edfb ++;};if _cafdb .SbHuffDT ==3{_edfb ++;};if _cafdb .SbHuffRDWidth ==3{_edfb ++;};if _cafdb .SbHuffRDHeight ==3{_edfb ++;};_cafdb ._aeac ,_ebfcg =_cafdb .getUserTable (_edfb );if _ebfcg !=nil {return 0,_ab .Wrap (_ebfcg ,_cdcg ,"");};};return _cafdb ._aeac .Decode (_cafdb ._bfeb );};_cgdgd ,_gaeg :=_adg .GetStandardTable (14+int (_cafdb .SbHuffRDX ));if _gaeg !=nil {return 0,_ab .Wrap (_gaeg ,_cdcg ,"");};return _cgdgd .Decode (_cafdb ._bfeb );};_eded ,_cadf :=_cafdb ._adcb .DecodeInt (_cafdb ._abge );if _cadf !=nil {return 0,_ab .Wrap (_cadf ,_cdcg ,"");};return int64 (_eded ),nil ;};func (_dbdge *TextRegion )Encode (w _f .BinaryWriter )(_bfdg int ,_gdba error ){const _aaeg ="\u0054\u0065\u0078\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u002e\u0045n\u0063\u006f\u0064\u0065";if _bfdg ,_gdba =_dbdge .RegionInfo .Encode (w );_gdba !=nil {return _bfdg ,_ab .Wrap (_gdba ,_aaeg ,"");};var _eadf int ;if _eadf ,_gdba =_dbdge .encodeFlags (w );_gdba !=nil {return _bfdg ,_ab .Wrap (_gdba ,_aaeg ,"");};_bfdg +=_eadf ;if _eadf ,_gdba =_dbdge .encodeSymbols (w );_gdba !=nil {return _bfdg ,_ab .Wrap (_gdba ,_aaeg ,"");};_bfdg +=_eadf ;return _bfdg ,nil ;};func (_eaa *TableSegment )HtRS ()int32 {return _eaa ._geeb };func (_fac *HalftoneRegion )GetRegionBitmap ()(*_af .Bitmap ,error ){if _fac .HalftoneRegionBitmap !=nil {return _fac .HalftoneRegionBitmap ,nil ;};var _gaa error ;_fac .HalftoneRegionBitmap =_af .New (int (_fac .RegionSegment .BitmapWidth ),int (_fac .RegionSegment .BitmapHeight ));if _fac .Patterns ==nil ||len (_fac .Patterns )==0{_fac .Patterns ,_gaa =_fac .GetPatterns ();if _gaa !=nil {return nil ,_gaa ;};};if _fac .HDefaultPixel ==1{_fac .HalftoneRegionBitmap .SetDefaultPixel ();};_gadb :=_a .Ceil (_a .Log (float64 (len (_fac .Patterns )))/_a .Log (2));_ffcaf :=int (_gadb );var _bbfc [][]int ;_bbfc ,_gaa =_fac .grayScaleDecoding (_ffcaf );if _gaa !=nil {return nil ,_gaa ;};if _gaa =_fac .renderPattern (_bbfc );_gaa !=nil {return nil ,_gaa ;};return _fac .HalftoneRegionBitmap ,nil ;};func (_cg *EndOfStripe )parseHeader (_eab *Header ,_cb _f .StreamReader )error {_ec ,_ade :=_cg ._bae .ReadBits (32);if _ade !=nil {return _ade ;};_cg ._c =int (_ec &_a .MaxInt32 );return nil ;};func (_abddd *PatternDictionary )readTemplate ()error {_abddc ,_gaee :=_abddd ._cbeg .ReadBits (2);if _gaee !=nil {return _gaee ;};_abddd .HDTemplate =byte (_abddc );return nil ;};type SymbolDictionary struct{_caad _f .StreamReader ;SdrTemplate int8 ;SdTemplate int8 ;_edfe bool ;_dacf bool ;SdHuffAggInstanceSelection bool ;SdHuffBMSizeSelection int8 ;SdHuffDecodeWidthSelection int8 ;SdHuffDecodeHeightSelection int8 ;UseRefinementAggregation bool ;IsHuffmanEncoded bool ;SdATX []int8 ;SdATY []int8 ;SdrATX []int8 ;SdrATY []int8 ;NumberOfExportedSymbols uint32 ;NumberOfNewSymbols uint32 ;Header *Header ;_bdf uint32 ;_agca []*_af .Bitmap ;_fbbbb uint32 ;_bfaa []*_af .Bitmap ;_eace _adg .Tabler ;_gdge _adg .Tabler ;_fecf _adg .Tabler ;_ffceb _adg .Tabler ;_ggfd []*_af .Bitmap ;_daee []*_af .Bitmap ;_aafg *_ba .Decoder ;_fdb *TextRegion ;_cbca *GenericRegion ;_edc *GenericRefinementRegion ;_bddc *_ba .DecoderStats ;_cgdg *_ba .DecoderStats ;_fege *_ba .DecoderStats ;_dgea *_ba .DecoderStats ;_fgbd *_ba .DecoderStats ;_gdbec *_ba .DecoderStats ;_fdbb *_ba .DecoderStats ;_dcc *_ba .DecoderStats ;_fdff *_ba .DecoderStats ;_gbba int8 ;_ceac *_af .Bitmaps ;_eabd []int ;_cbgg map[int ]int ;_cgac bool ;};func (_bdec *SymbolDictionary )huffDecodeBmSize ()(int64 ,error ){if _bdec ._fecf ==nil {var (_bcef int ;_ffged error ;);if _bdec .SdHuffDecodeHeightSelection ==3{_bcef ++;};if _bdec .SdHuffDecodeWidthSelection ==3{_bcef ++;};_bdec ._fecf ,_ffged =_bdec .getUserTable (_bcef );if _ffged !=nil {return 0,_ffged ;};};return _bdec ._fecf .Decode (_bdec ._caad );};const BorderSize =6;func (_cegc *PageInformationSegment )Size ()int {return 19};func (_eggb *SymbolDictionary )decodeAggregate (_gedb ,_dfc uint32 )error {var (_gecg int64 ;_efgcf error ;);if _eggb .IsHuffmanEncoded {_gecg ,_efgcf =_eggb .huffDecodeRefAggNInst ();if _efgcf !=nil {return _efgcf ;};}else {_efe ,_becdd :=_eggb ._aafg .DecodeInt (_eggb ._dgea );if _becdd !=nil {return _becdd ;};_gecg =int64 (_efe );};if _gecg > 1{return _eggb .decodeThroughTextRegion (_gedb ,_dfc ,uint32 (_gecg ));}else if _gecg ==1{return _eggb .decodeRefinedSymbol (_gedb ,_dfc );};return nil ;};type SegmentEncoder interface{Encode (_gce _f .BinaryWriter )(_aeee int ,_gdfc error );};func (_fede *PageInformationSegment )readContainsRefinement ()error {_ddcd ,_abca :=_fede ._feaf .ReadBit ();if _abca !=nil {return _abca ;};if _ddcd ==1{_fede ._fbbf =true ;};return nil ;};func (_dbbgg *SymbolDictionary )decodeHeightClassDeltaHeightWithHuffman ()(int64 ,error ){switch _dbbgg .SdHuffDecodeHeightSelection {case 0:_aeab ,_cdgd :=_adg .GetStandardTable (4);if _cdgd !=nil {return 0,_cdgd ;};return _aeab .Decode (_dbbgg ._caad );case 1:_cbggc ,_fbdb :=_adg .GetStandardTable (5);if _fbdb !=nil {return 0,_fbdb ;};return _cbggc .Decode (_dbbgg ._caad );case 3:if _dbbgg ._eace ==nil {_egga ,_aaffc :=_adg .GetStandardTable (0);if _aaffc !=nil {return 0,_aaffc ;};_dbbgg ._eace =_egga ;};return _dbbgg ._eace .Decode (_dbbgg ._caad );};return 0,nil ;};func (_gggf *GenericRegion )updateOverrideFlags ()error {const _cdga ="\u0075\u0070\u0064\u0061te\u004f\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _gggf .GBAtX ==nil ||_gggf .GBAtY ==nil {return nil ;};if len (_gggf .GBAtX )!=len (_gggf .GBAtY ){return _ab .Errorf (_cdga ,"i\u006eco\u0073i\u0073t\u0065\u006e\u0074\u0020\u0041T\u0020\u0070\u0069x\u0065\u006c\u002e\u0020\u0041m\u006f\u0075\u006et\u0020\u006f\u0066\u0020\u0027\u0078\u0027\u0020\u0070\u0069\u0078e\u006c\u0073\u003a %d\u002c\u0020\u0041\u006d\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0027\u0079\u0027\u0020\u0070\u0069\u0078e\u006cs\u003a\u0020\u0025\u0064",len (_gggf .GBAtX ),len (_gggf .GBAtY ));};_gggf .GBAtOverride =make ([]bool ,len (_gggf .GBAtX ));switch _gggf .GBTemplate {case 0:if !_gggf .UseExtTemplates {if _gggf .GBAtX [0]!=3||_gggf .GBAtY [0]!=-1{_gggf .setOverrideFlag (0);};if _gggf .GBAtX [1]!=-3||_gggf .GBAtY [1]!=-1{_gggf .setOverrideFlag (1);};if _gggf .GBAtX [2]!=2||_gggf .GBAtY [2]!=-2{_gggf .setOverrideFlag (2);};if _gggf .GBAtX [3]!=-2||_gggf .GBAtY [3]!=-2{_gggf .setOverrideFlag (3);};}else {if _gggf .GBAtX [0]!=-2||_gggf .GBAtY [0]!=0{_gggf .setOverrideFlag (0);};if _gggf .GBAtX [1]!=0||_gggf .GBAtY [1]!=-2{_gggf .setOverrideFlag (1);};if _gggf .GBAtX [2]!=-2||_gggf .GBAtY [2]!=-1{_gggf .setOverrideFlag (2);};if _gggf .GBAtX [3]!=-1||_gggf .GBAtY [3]!=-2{_gggf .setOverrideFlag (3);};if _gggf .GBAtX [4]!=1||_gggf .GBAtY [4]!=-2{_gggf .setOverrideFlag (4);};if _gggf .GBAtX [5]!=2||_gggf .GBAtY [5]!=-1{_gggf .setOverrideFlag (5);};if _gggf .GBAtX [6]!=-3||_gggf .GBAtY [6]!=0{_gggf .setOverrideFlag (6);};if _gggf .GBAtX [7]!=-4||_gggf .GBAtY [7]!=0{_gggf .setOverrideFlag (7);};if _gggf .GBAtX [8]!=2||_gggf .GBAtY [8]!=-2{_gggf .setOverrideFlag (8);};if _gggf .GBAtX [9]!=3||_gggf .GBAtY [9]!=-1{_gggf .setOverrideFlag (9);};if _gggf .GBAtX [10]!=-2||_gggf .GBAtY [10]!=-2{_gggf .setOverrideFlag (10);};if _gggf .GBAtX [11]!=-3||_gggf .GBAtY [11]!=-1{_gggf .setOverrideFlag (11);};};case 1:if _gggf .GBAtX [0]!=3||_gggf .GBAtY [0]!=-1{_gggf .setOverrideFlag (0);};case 2:if _gggf .GBAtX [0]!=2||_gggf .GBAtY [0]!=-1{_gggf .setOverrideFlag (0);};case 3:if _gggf .GBAtX [0]!=2||_gggf .GBAtY [0]!=-1{_gggf .setOverrideFlag (0);};};return nil ;};func (_ebge *SymbolDictionary )setSymbolsArray ()error {if _ebge ._agca ==nil {if _afgf :=_ebge .retrieveImportSymbols ();_afgf !=nil {return _afgf ;};};if _ebge ._daee ==nil {_ebge ._daee =append (_ebge ._daee ,_ebge ._agca ...);};return nil ;};func (_edge *PageInformationSegment )readResolution ()error {_gaga ,_ddfe :=_edge ._feaf .ReadBits (32);if _ddfe !=nil {return _ddfe ;};_edge .ResolutionX =int (_gaga &_a .MaxInt32 );_gaga ,_ddfe =_edge ._feaf .ReadBits (32);if _ddfe !=nil {return _ddfe ;};_edge .ResolutionY =int (_gaga &_a .MaxInt32 );return nil ;};func (_agefa *RegionSegment )readCombinationOperator ()error {_acba ,_gbbe :=_agefa ._feag .ReadBits (3);if _gbbe !=nil {return _gbbe ;};_agefa .CombinaionOperator =_af .CombinationOperator (_acba &0xF);return nil ;};func (_bace *Header )writeSegmentNumber (_afaea _f .BinaryWriter )(_decgb int ,_agdg error ){_cddd :=make ([]byte ,4);_e .BigEndian .PutUint32 (_cddd ,_bace .SegmentNumber );if _decgb ,_agdg =_afaea .Write (_cddd );_agdg !=nil {return 0,_ab .Wrap (_agdg ,"\u0048e\u0061\u0064\u0065\u0072.\u0077\u0072\u0069\u0074\u0065S\u0065g\u006de\u006e\u0074\u004e\u0075\u006d\u0062\u0065r","");};return _decgb ,nil ;};func (_dbfa *SymbolDictionary )encodeRefinementATFlags (_fbbc _f .BinaryWriter )(_accg int ,_gbcg error ){const _dddf ="\u0065\u006e\u0063od\u0065\u0052\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0041\u0054\u0046\u006c\u0061\u0067\u0073";if !_dbfa .UseRefinementAggregation ||_dbfa .SdrTemplate !=0{return 0,nil ;};for _bcbg :=0;_bcbg < 2;_bcbg ++{if _gbcg =_fbbc .WriteByte (byte (_dbfa .SdrATX [_bcbg ]));_gbcg !=nil {return _accg ,_ab .Wrapf (_gbcg ,_dddf ,"\u0053\u0064\u0072\u0041\u0054\u0058\u005b\u0025\u0064\u005d",_bcbg );};_accg ++;if _gbcg =_fbbc .WriteByte (byte (_dbfa .SdrATY [_bcbg ]));_gbcg !=nil {return _accg ,_ab .Wrapf (_gbcg ,_dddf ,"\u0053\u0064\u0072\u0041\u0054\u0059\u005b\u0025\u0064\u005d",_bcbg );};_accg ++;};return _accg ,nil ;};func (_gcfb *TextRegion )Init (header *Header ,r _f .StreamReader )error {_gcfb .Header =header ;_gcfb ._bfeb =r ;_gcfb .RegionInfo =NewRegionSegment (_gcfb ._bfeb );return _gcfb .parseHeader ();};func (_egfd *PageInformationSegment )readDefaultPixelValue ()error {_acc ,_bgbg :=_egfd ._feaf .ReadBit ();if _bgbg !=nil {return _bgbg ;};_egfd ._ggbb =uint8 (_acc &0xf);return nil ;};func (_bf *GenericRefinementRegion )getGrReference ()(*_af .Bitmap ,error ){segments :=_bf ._gd .RTSegments ;if len (segments )==0{return nil ,_ea .New ("\u0052\u0065f\u0065\u0072\u0065\u006e\u0063\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0065\u0078is\u0074\u0073");};_bg ,_de :=segments [0].GetSegmentData ();if _de !=nil {return nil ,_de ;};_cga ,_ecf :=_bg .(Regioner );if !_ecf {return nil ,_ad .Errorf ("\u0072\u0065\u0066\u0065\u0072r\u0065\u0064\u0020\u0074\u006f\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074 \u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0052\u0065\u0067\u0069\u006f\u006e\u0065\u0072\u003a\u0020\u0025\u0054",_bg );};return _cga .GetRegionBitmap ();};func (_fgb *GenericRefinementRegion )parseHeader ()(_gfe error ){_baf .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072s\u0069\u006e\u0067\u0020\u0048e\u0061\u0064e\u0072\u002e\u002e\u002e");_ca :=_bb .Now ();defer func (){if _gfe ==nil {_baf .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045G\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020h\u0065\u0061\u0064\u0065\u0072\u0020\u0066\u0069\u006e\u0069\u0073\u0068id\u0020\u0069\u006e\u003a\u0020\u0025\u0064\u0020\u006e\u0073",_bb .Since (_ca ).Nanoseconds ());}else {_baf .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0068\u0065\u0061\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0073",_gfe );};}();if _gfe =_fgb .RegionInfo .parseHeader ();_gfe !=nil {return _gfe ;};_ ,_gfe =_fgb ._ag .ReadBits (6);if _gfe !=nil {return _gfe ;};_fgb .IsTPGROn ,_gfe =_fgb ._ag .ReadBool ();if _gfe !=nil {return _gfe ;};var _ggb int ;_ggb ,_gfe =_fgb ._ag .ReadBit ();if _gfe !=nil {return _gfe ;};_fgb .TemplateID =int8 (_ggb );switch _fgb .TemplateID {case 0:_fgb .Template =_fgb ._cf ;if _gfe =_fgb .readAtPixels ();_gfe !=nil {return ;};case 1:_fgb .Template =_fgb ._dc ;};return nil ;};var (_agge Segmenter ;_eda =map[Type ]func ()Segmenter {TSymbolDictionary :func ()Segmenter {return &SymbolDictionary {}},TIntermediateTextRegion :func ()Segmenter {return &TextRegion {}},TImmediateTextRegion :func ()Segmenter {return &TextRegion {}},TImmediateLosslessTextRegion :func ()Segmenter {return &TextRegion {}},TPatternDictionary :func ()Segmenter {return &PatternDictionary {}},TIntermediateHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TImmediateHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TImmediateLosslessHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TIntermediateGenericRegion :func ()Segmenter {return &GenericRegion {}},TImmediateGenericRegion :func ()Segmenter {return &GenericRegion {}},TImmediateLosslessGenericRegion :func ()Segmenter {return &GenericRegion {}},TIntermediateGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TImmediateGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TImmediateLosslessGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TPageInformation :func ()Segmenter {return &PageInformationSegment {}},TEndOfPage :func ()Segmenter {return _agge },TEndOfStrip :func ()Segmenter {return &EndOfStripe {}},TEndOfFile :func ()Segmenter {return _agge },TProfiles :func ()Segmenter {return _agge },TTables :func ()Segmenter {return &TableSegment {}},TExtension :func ()Segmenter {return _agge },TBitmap :func ()Segmenter {return _agge }};);func (_ebef *PageInformationSegment )encodeFlags (_daea _f .BinaryWriter )(_feac error ){const _edeg ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _feac =_daea .SkipBits (1);_feac !=nil {return _ab .Wrap (_feac ,_edeg ,"\u0072\u0065\u0073e\u0072\u0076\u0065\u0064\u0020\u0062\u0069\u0074");};var _ffga int ;if _ebef .CombinationOperatorOverrideAllowed (){_ffga =1;};if _feac =_daea .WriteBit (_ffga );_feac !=nil {return _ab .Wrap (_feac ,_edeg ,"\u0063\u006f\u006db\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0070\u0065\u0072a\u0074\u006f\u0072\u0020\u006f\u0076\u0065\u0072\u0072\u0069\u0064\u0064\u0065\u006e");};_ffga =0;if _ebef ._gcb {_ffga =1;};if _feac =_daea .WriteBit (_ffga );_feac !=nil {return _ab .Wrap (_feac ,_edeg ,"\u0072e\u0071\u0075\u0069\u0072e\u0073\u0020\u0061\u0075\u0078i\u006ci\u0061r\u0079\u0020\u0062\u0075\u0066\u0066\u0065r");};if _feac =_daea .WriteBit ((int (_ebef ._fcceb )>>1)&0x01);_feac !=nil {return _ab .Wrap (_feac ,_edeg ,"\u0063\u006f\u006d\u0062\u0069\u006e\u0061\u0074\u0069\u006fn\u0020\u006f\u0070\u0065\u0072\u0061\u0074o\u0072\u0020\u0066\u0069\u0072\u0073\u0074\u0020\u0062\u0069\u0074");};if _feac =_daea .WriteBit (int (_ebef ._fcceb )&0x01);_feac !=nil {return _ab .Wrap (_feac ,_edeg ,"\u0063\u006f\u006db\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0070\u0065\u0072a\u0074\u006f\u0072\u0020\u0073\u0065\u0063\u006f\u006e\u0064\u0020\u0062\u0069\u0074");};_ffga =int (_ebef ._ggbb );if _feac =_daea .WriteBit (_ffga );_feac !=nil {return _ab .Wrap (_feac ,_edeg ,"\u0064e\u0066\u0061\u0075\u006c\u0074\u0020\u0070\u0061\u0067\u0065\u0020p\u0069\u0078\u0065\u006c\u0020\u0076\u0061\u006c\u0075\u0065");};_ffga =0;if _ebef ._fbbf {_ffga =1;};if _feac =_daea .WriteBit (_ffga );_feac !=nil {return _ab .Wrap (_feac ,_edeg ,"\u0063\u006f\u006e\u0074ai\u006e\u0073\u0020\u0072\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074");};_ffga =0;if _ebef .IsLossless {_ffga =1;};if _feac =_daea .WriteBit (_ffga );_feac !=nil {return _ab .Wrap (_feac ,_edeg ,"p\u0061\u0067\u0065\u0020\u0069\u0073 \u0065\u0076\u0065\u006e\u0074\u0075\u0061\u006c\u006cy\u0020\u006c\u006fs\u0073l\u0065\u0073\u0073");};return nil ;};func (_abgfa *Header )readSegmentPageAssociation (_efdff Documenter ,_efbdf _f .StreamReader ,_ccfe uint64 ,_eabge ...int )(_eeca error ){const _dgde ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074P\u0061\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061t\u0069\u006f\u006e";if !_abgfa .PageAssociationFieldSize {_aeaf ,_ecbb :=_efbdf .ReadBits (8);if _ecbb !=nil {return _ab .Wrap (_ecbb ,_dgde ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_abgfa .PageAssociation =int (_aeaf &0xFF);}else {_dac ,_fedb :=_efbdf .ReadBits (32);if _fedb !=nil {return _ab .Wrap (_fedb ,_dgde ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_abgfa .PageAssociation =int (_dac &_a .MaxInt32 );};if _ccfe ==0{return nil ;};if _abgfa .PageAssociation !=0{_abdd ,_aggb :=_efdff .GetPage (_abgfa .PageAssociation );if _aggb !=nil {return _ab .Wrap (_aggb ,_dgde ,"\u0061s\u0073\u006f\u0063\u0069a\u0074\u0065\u0064\u0020\u0070a\u0067e\u0020n\u006f\u0074\u0020\u0066\u006f\u0075\u006ed");};var _cggf int ;for _bbbef :=uint64 (0);_bbbef < _ccfe ;_bbbef ++{_cggf =_eabge [_bbbef ];_abgfa .RTSegments [_bbbef ],_aggb =_abdd .GetSegment (_cggf );if _aggb !=nil {var _edb error ;_abgfa .RTSegments [_bbbef ],_edb =_efdff .GetGlobalSegment (_cggf );if _edb !=nil {return _ab .Wrapf (_aggb ,_dgde ,"\u0072\u0065\u0066\u0065\u0072\u0065n\u0063\u0065\u0020s\u0065\u0067\u006de\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075n\u0064\u0020\u0061\u0074\u0020pa\u0067\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0072\u0020\u0069\u006e\u0020\u0067\u006c\u006f\u0062\u0061\u006c\u0073",_abgfa .PageAssociation );};};};return nil ;};for _dba :=uint64 (0);_dba < _ccfe ;_dba ++{_abgfa .RTSegments [_dba ],_eeca =_efdff .GetGlobalSegment (_eabge [_dba ]);if _eeca !=nil {return _ab .Wrapf (_eeca ,_dgde ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0020\u0073\u0065\u0067m\u0065\u006e\u0074\u003a\u0020\u0027\u0025d\u0027\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_eabge [_dba ]);};};return nil ;};func (_gcc *HalftoneRegion )computeSegmentDataStructure ()error {_gcc .DataOffset =_gcc ._adbg .StreamPosition ();_gcc .DataHeaderLength =_gcc .DataOffset -_gcc .DataHeaderOffset ;_gcc .DataLength =int64 (_gcc ._adbg .Length ())-_gcc .DataHeaderLength ;return nil ;};func (_dgd *template0 )form (_ccgg ,_fdac ,_abgd ,_aagd ,_fbbg int16 )int16 {return (_ccgg <<10)|(_fdac <<7)|(_abgd <<4)|(_aagd <<1)|_fbbg ;};func (_dfge *Header )Encode (w _f .BinaryWriter )(_egb int ,_gaca error ){const _fdef ="\u0048\u0065\u0061d\u0065\u0072\u002e\u0057\u0072\u0069\u0074\u0065";var _gacd _f .BinaryWriter ;_baf .Log .Trace ("\u005b\u0053\u0045G\u004d\u0045\u004e\u0054-\u0048\u0045\u0041\u0044\u0045\u0052\u005d[\u0045\u004e\u0043\u004f\u0044\u0045\u005d\u0020\u0042\u0065\u0067\u0069\u006e\u0073");defer func (){if _gaca !=nil {_baf .Log .Trace ("[\u0053\u0045\u0047\u004d\u0045\u004eT\u002d\u0048\u0045\u0041\u0044\u0045R\u005d\u005b\u0045\u004e\u0043\u004f\u0044E\u005d\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u002e\u0020%\u0076",_gaca );}else {_baf .Log .Trace ("\u005b\u0053\u0045\u0047ME\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0025\u0076",_dfge );_baf .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045N\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u005b\u0045\u004e\u0043O\u0044\u0045\u005d\u0020\u0046\u0069\u006ei\u0073\u0068\u0065\u0064");};}();w .FinishByte ();if _dfge .SegmentData !=nil {_bdca ,_dfbc :=_dfge .SegmentData .(SegmentEncoder );if !_dfbc {return 0,_ab .Errorf (_fdef ,"\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0054\u0020\u0064\u006f\u0065s\u006e\u0027\u0074\u0020\u0069\u006d\u0070\u006c\u0065\u006d\u0065\u006e\u0074 \u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0045\u006e\u0063\u006f\u0064er\u0020\u0069\u006e\u0074\u0065\u0072\u0066\u0061\u0063\u0065",_dfge .SegmentData );};_gacd =_f .BufferedMSB ();_egb ,_gaca =_bdca .Encode (_gacd );if _gaca !=nil {return 0,_ab .Wrap (_gaca ,_fdef ,"");};_dfge .SegmentDataLength =uint64 (_egb );};if _dfge .pageSize ()==4{_dfge .PageAssociationFieldSize =true ;};var _cfec int ;_cfec ,_gaca =_dfge .writeSegmentNumber (w );if _gaca !=nil {return 0,_ab .Wrap (_gaca ,_fdef ,"");};_egb +=_cfec ;if _gaca =_dfge .writeFlags (w );_gaca !=nil {return _egb ,_ab .Wrap (_gaca ,_fdef ,"");};_egb ++;_cfec ,_gaca =_dfge .writeReferredToCount (w );if _gaca !=nil {return 0,_ab .Wrap (_gaca ,_fdef ,"");};_egb +=_cfec ;_cfec ,_gaca =_dfge .writeReferredToSegments (w );if _gaca !=nil {return 0,_ab .Wrap (_gaca ,_fdef ,"");};_egb +=_cfec ;_cfec ,_gaca =_dfge .writeSegmentPageAssociation (w );if _gaca !=nil {return 0,_ab .Wrap (_gaca ,_fdef ,"");};_egb +=_cfec ;_cfec ,_gaca =_dfge .writeSegmentDataLength (w );if _gaca !=nil {return 0,_ab .Wrap (_gaca ,_fdef ,"");};_egb +=_cfec ;_dfge .HeaderLength =int64 (_egb )-int64 (_dfge .SegmentDataLength );if _gacd !=nil {if _ ,_gaca =w .Write (_gacd .Data ());_gaca !=nil {return _egb ,_ab .Wrap (_gaca ,_fdef ,"\u0077r\u0069t\u0065\u0020\u0073\u0065\u0067m\u0065\u006et\u0020\u0064\u0061\u0074\u0061");};};return _egb ,nil ;};func (_gdgc *TextRegion )computeSymbolCodeLength ()error {if _gdgc .IsHuffmanEncoded {return _gdgc .symbolIDCodeLengths ();};_gdgc ._edbd =int8 (_a .Ceil (_a .Log (float64 (_gdgc .NumberOfSymbols ))/_a .Log (2)));return nil ;};func (_agba *SymbolDictionary )setAtPixels ()error {if _agba .IsHuffmanEncoded {return nil ;};_ddef :=1;if _agba .SdTemplate ==0{_ddef =4;};if _dfbcd :=_agba .readAtPixels (_ddef );_dfbcd !=nil {return _dfbcd ;};return nil ;};func (_ebgc *Header )readNumberOfReferredToSegments (_aaaa _f .StreamReader )(uint64 ,error ){const _bcfa ="\u0072\u0065\u0061\u0064\u004e\u0075\u006d\u0062\u0065\u0072O\u0066\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";_aae ,_cbd :=_aaaa .ReadBits (3);if _cbd !=nil {return 0,_ab .Wrap (_cbd ,_bcfa ,"\u0063\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0072\u0074\u0073");};_aae &=0xf;var _fdgd []byte ;if _aae <=4{_fdgd =make ([]byte ,5);for _eecb :=0;_eecb <=4;_eecb ++{_cfcfe ,_fgba :=_aaaa .ReadBit ();if _fgba !=nil {return 0,_ab .Wrap (_fgba ,_bcfa ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_fdgd [_eecb ]=byte (_cfcfe );};}else {_aae ,_cbd =_aaaa .ReadBits (29);if _cbd !=nil {return 0,_cbd ;};_aae &=_a .MaxInt32 ;_ggec :=(_aae +8)>>3;_ggec <<=3;_fdgd =make ([]byte ,_ggec );var _cbg uint64 ;for _cbg =0;_cbg < _ggec ;_cbg ++{_fdc ,_fedd :=_aaaa .ReadBit ();if _fedd !=nil {return 0,_ab .Wrap (_fedd ,_bcfa ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_fdgd [_cbg ]=byte (_fdc );};};return _aae ,nil ;};func (_bgeb *GenericRefinementRegion )decodeTypicalPredictedLine (_dde ,_cfb ,_bag ,_ccd ,_dee ,_ce int )error {_gbf :=_dde -int (_bgeb .ReferenceDY );_adc :=_bgeb .ReferenceBitmap .GetByteIndex (0,_gbf );_afbc :=_bgeb .RegionBitmap .GetByteIndex (0,_dde );var _da error ;switch _bgeb .TemplateID {case 0:_da =_bgeb .decodeTypicalPredictedLineTemplate0 (_dde ,_cfb ,_bag ,_ccd ,_dee ,_ce ,_afbc ,_gbf ,_adc );case 1:_da =_bgeb .decodeTypicalPredictedLineTemplate1 (_dde ,_cfb ,_bag ,_ccd ,_dee ,_ce ,_afbc ,_gbf ,_adc );};return _da ;};func (_ggbg *GenericRegion )setParametersWithAt (_fgd bool ,_fbbb byte ,_fffd ,_eabg bool ,_bfdc ,_fgeg []int8 ,_dgbdf ,_ged uint32 ,_cfcf *_ba .DecoderStats ,_cdec *_ba .Decoder ){_ggbg .IsMMREncoded =_fgd ;_ggbg .GBTemplate =_fbbb ;_ggbg .IsTPGDon =_fffd ;_ggbg .GBAtX =_bfdc ;_ggbg .GBAtY =_fgeg ;_ggbg .RegionSegment .BitmapHeight =_ged ;_ggbg .RegionSegment .BitmapWidth =_dgbdf ;_ggbg ._bebg =nil ;_ggbg .Bitmap =nil ;if _cfcf !=nil {_ggbg ._dgbb =_cfcf ;};if _cdec !=nil {_ggbg ._bba =_cdec ;};_baf .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0047\u0049O\u004e\u005d\u0020\u0073\u0065\u0074P\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073\u0020\u0053\u0044\u0041t\u003a\u0020\u0025\u0073",_ggbg );};type PageInformationSegment struct{_feaf _f .StreamReader ;PageBMHeight int ;PageBMWidth int ;ResolutionX int ;ResolutionY int ;_gbeb bool ;_fcceb _af .CombinationOperator ;_gcb bool ;_ggbb uint8 ;_fbbf bool ;IsLossless bool ;IsStripe bool ;MaxStripeSize uint16 ;};func (_ggg *GenericRegion )decodeTemplate0a (_dgbd ,_bffa ,_caf int ,_bacc ,_ecda int )(_cef error ){const _eccd ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0061";var (_ffce ,_fff int ;_cedd ,_cdgb int ;_bed byte ;_ddaf int ;);if _dgbd >=1{_bed ,_cef =_ggg .Bitmap .GetByte (_ecda );if _cef !=nil {return _ab .Wrap (_cef ,_eccd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_cedd =int (_bed );};if _dgbd >=2{_bed ,_cef =_ggg .Bitmap .GetByte (_ecda -_ggg .Bitmap .RowStride );if _cef !=nil {return _ab .Wrap (_cef ,_eccd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_cdgb =int (_bed )<<6;};_ffce =(_cedd &0xf0)|(_cdgb &0x3800);for _bgfc :=0;_bgfc < _caf ;_bgfc =_ddaf {var (_bfc byte ;_bfgc int ;);_ddaf =_bgfc +8;if _cfg :=_bffa -_bgfc ;_cfg > 8{_bfgc =8;}else {_bfgc =_cfg ;};if _dgbd > 0{_cedd <<=8;if _ddaf < _bffa {_bed ,_cef =_ggg .Bitmap .GetByte (_ecda +1);if _cef !=nil {return _ab .Wrap (_cef ,_eccd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_cedd |=int (_bed );};};if _dgbd > 1{_gcg :=_ecda -_ggg .Bitmap .RowStride +1;_cdgb <<=8;if _ddaf < _bffa {_bed ,_cef =_ggg .Bitmap .GetByte (_gcg );if _cef !=nil {return _ab .Wrap (_cef ,_eccd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_cdgb |=int (_bed )<<6;}else {_cdgb |=0;};};for _cfa :=0;_cfa < _bfgc ;_cfa ++{_gcd :=uint (7-_cfa );if _ggg ._cccgf {_fff =_ggg .overrideAtTemplate0a (_ffce ,_bgfc +_cfa ,_dgbd ,int (_bfc ),_cfa ,int (_gcd ));_ggg ._dgbb .SetIndex (int32 (_fff ));}else {_ggg ._dgbb .SetIndex (int32 (_ffce ));};var _ebad int ;_ebad ,_cef =_ggg ._bba .DecodeBit (_ggg ._dgbb );if _cef !=nil {return _ab .Wrap (_cef ,_eccd ,"");};_bfc |=byte (_ebad )<<uint (_gcd );_ffce =((_ffce &0x7bf7)<<1)|_ebad |((_cedd >>_gcd )&0x10)|((_cdgb >>_gcd )&0x800);};if _ead :=_ggg .Bitmap .SetByte (_bacc ,_bfc );_ead !=nil {return _ab .Wrap (_ead ,_eccd ,"");};_bacc ++;_ecda ++;};return nil ;};func (_acb *GenericRegion )InitEncode (bm *_af .Bitmap ,xLoc ,yLoc ,template int ,duplicateLineRemoval bool )error {const _efg ="\u0047e\u006e\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069\u006f\u006e.\u0049\u006e\u0069\u0074\u0045\u006e\u0063\u006f\u0064\u0065";if bm ==nil {return _ab .Error (_efg ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};if xLoc < 0||yLoc < 0{return _ab .Error (_efg ,"\u0078\u0020\u0061\u006e\u0064\u0020\u0079\u0020\u006c\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0067\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074h\u0061\u006e\u0020\u0030");};_acb .Bitmap =bm ;_acb .GBTemplate =byte (template );switch _acb .GBTemplate {case 0:_acb .GBAtX =[]int8 {3,-3,2,-2};_acb .GBAtY =[]int8 {-1,-1,-2,-2};case 1:_acb .GBAtX =[]int8 {3};_acb .GBAtY =[]int8 {-1};case 2,3:_acb .GBAtX =[]int8 {2};_acb .GBAtY =[]int8 {-1};default:return _ab .Errorf (_efg ,"\u0070\u0072o\u0076\u0069\u0064\u0065\u0064 \u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u007b\u0030\u002c\u0031\u002c\u0032\u002c\u0033\u007d",template );};_acb .RegionSegment =&RegionSegment {BitmapHeight :uint32 (bm .Height ),BitmapWidth :uint32 (bm .Width ),XLocation :uint32 (xLoc ),YLocation :uint32 (yLoc )};_acb .IsTPGDon =duplicateLineRemoval ;return nil ;};func (_cggb *HalftoneRegion )renderPattern (_beeb [][]int )(_feef error ){var _fdace ,_bec int ;for _gaef :=0;_gaef < int (_cggb .HGridHeight );_gaef ++{for _edf :=0;_edf < int (_cggb .HGridWidth );_edf ++{_fdace =_cggb .computeX (_gaef ,_edf );_bec =_cggb .computeY (_gaef ,_edf );_eaeeb :=_cggb .Patterns [_beeb [_gaef ][_edf ]];if _feef =_af .Blit (_eaeeb ,_cggb .HalftoneRegionBitmap ,_fdace +int (_cggb .HGridX ),_bec +int (_cggb .HGridY ),_cggb .CombinationOperator );_feef !=nil {return _feef ;};};};return nil ;};func _cag (_cdf int )int {if _cdf ==0{return 0;};_cdf |=_cdf >>1;_cdf |=_cdf >>2;_cdf |=_cdf >>4;_cdf |=_cdf >>8;_cdf |=_cdf >>16;return (_cdf +1)>>1;};func (_cged *GenericRegion )GetRegionInfo ()*RegionSegment {return _cged .RegionSegment };func (_bebgb *GenericRegion )overrideAtTemplate1 (_gdfe ,_gcdc ,_dcb ,_bggd ,_gdd int )int {_gdfe &=0x1FF7;if _bebgb .GBAtY [0]==0&&_bebgb .GBAtX [0]>=-int8 (_gdd ){_gdfe |=(_bggd >>uint (7-(int8 (_gdd )+_bebgb .GBAtX [0]))&0x1)<<3;}else {_gdfe |=int (_bebgb .getPixel (_gcdc +int (_bebgb .GBAtX [0]),_dcb +int (_bebgb .GBAtY [0])))<<3;};return _gdfe ;};func (_ddgg *TextRegion )readHuffmanFlags ()error {var (_abfa int ;_dgba uint64 ;_ebfd error ;);_ ,_ebfd =_ddgg ._bfeb .ReadBit ();if _ebfd !=nil {return _ebfd ;};_abfa ,_ebfd =_ddgg ._bfeb .ReadBit ();if _ebfd !=nil {return _ebfd ;};_ddgg .SbHuffRSize =int8 (_abfa );_dgba ,_ebfd =_ddgg ._bfeb .ReadBits (2);if _ebfd !=nil {return _ebfd ;};_ddgg .SbHuffRDY =int8 (_dgba )&0xf;_dgba ,_ebfd =_ddgg ._bfeb .ReadBits (2);if _ebfd !=nil {return _ebfd ;};_ddgg .SbHuffRDX =int8 (_dgba )&0xf;_dgba ,_ebfd =_ddgg ._bfeb .ReadBits (2);if _ebfd !=nil {return _ebfd ;};_ddgg .SbHuffRDHeight =int8 (_dgba )&0xf;_dgba ,_ebfd =_ddgg ._bfeb .ReadBits (2);if _ebfd !=nil {return _ebfd ;};_ddgg .SbHuffRDWidth =int8 (_dgba )&0xf;_dgba ,_ebfd =_ddgg ._bfeb .ReadBits (2);if _ebfd !=nil {return _ebfd ;};_ddgg .SbHuffDT =int8 (_dgba )&0xf;_dgba ,_ebfd =_ddgg ._bfeb .ReadBits (2);if _ebfd !=nil {return _ebfd ;};_ddgg .SbHuffDS =int8 (_dgba )&0xf;_dgba ,_ebfd =_ddgg ._bfeb .ReadBits (2);if _ebfd !=nil {return _ebfd ;};_ddgg .SbHuffFS =int8 (_dgba )&0xf;return nil ;};func (_daef *PageInformationSegment )Init (h *Header ,r _f .StreamReader )(_bdba error ){_daef ._feaf =r ;if _bdba =_daef .parseHeader ();_bdba !=nil {return _ab .Wrap (_bdba ,"P\u0061\u0067\u0065\u0049\u006e\u0066o\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065g\u006d\u0065\u006et\u002eI\u006e\u0069\u0074","");};return nil ;};type GenericRefinementRegion struct{_cf templater ;_dc templater ;_ag _f .StreamReader ;_gd *Header ;RegionInfo *RegionSegment ;IsTPGROn bool ;TemplateID int8 ;Template templater ;GrAtX []int8 ;GrAtY []int8 ;RegionBitmap *_af .Bitmap ;ReferenceBitmap *_af .Bitmap ;ReferenceDX int32 ;ReferenceDY int32 ;_gac *_ba .Decoder ;_afb *_ba .DecoderStats ;_gdg bool ;_abb []bool ;};func (_fgc *GenericRegion )Size ()int {return _fgc .RegionSegment .Size ()+1+2*len (_fgc .GBAtX )};func (_eada *SymbolDictionary )readNumberOfNewSymbols ()error {_dbdcg ,_edfd :=_eada ._caad .ReadBits (32);if _edfd !=nil {return _edfd ;};_eada .NumberOfNewSymbols =uint32 (_dbdcg &_a .MaxUint32 );return nil ;};func (_gagb *Header )readHeaderFlags ()error {const _bcf ="\u0072e\u0061d\u0048\u0065\u0061\u0064\u0065\u0072\u0046\u006c\u0061\u0067\u0073";_befc ,_bafa :=_gagb .Reader .ReadBit ();if _bafa !=nil {return _ab .Wrap (_bafa ,_bcf ,"r\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067");};if _befc !=0{_gagb .RetainFlag =true ;};_befc ,_bafa =_gagb .Reader .ReadBit ();if _bafa !=nil {return _ab .Wrap (_bafa ,_bcf ,"\u0070\u0061g\u0065\u0020\u0061s\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e");};if _befc !=0{_gagb .PageAssociationFieldSize =true ;};_fafa ,_bafa :=_gagb .Reader .ReadBits (6);if _bafa !=nil {return _ab .Wrap (_bafa ,_bcf ,"\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u0074\u0079\u0070\u0065");};_gagb .Type =Type (int (_fafa ));return nil ;};func (_ddgb *SymbolDictionary )decodeHeightClassDeltaHeight ()(int64 ,error ){if _ddgb .IsHuffmanEncoded {return _ddgb .decodeHeightClassDeltaHeightWithHuffman ();};_adbe ,_cafa :=_ddgb ._aafg .DecodeInt (_ddgb ._cgdg );if _cafa !=nil {return 0,_cafa ;};return int64 (_adbe ),nil ;};type template1 struct{};func (_afcg *TextRegion )encodeSymbols (_afdf _f .BinaryWriter )(_aagg int ,_gfaf error ){const _gcfg ="\u0065\u006e\u0063\u006f\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c\u0073";_gcef :=make ([]byte ,4);_e .BigEndian .PutUint32 (_gcef ,_afcg .NumberOfSymbols );if _aagg ,_gfaf =_afdf .Write (_gcef );_gfaf !=nil {return _aagg ,_ab .Wrap (_gfaf ,_gcfg ,"\u004e\u0075\u006dbe\u0072\u004f\u0066\u0053\u0079\u006d\u0062\u006f\u006c\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073");};_dabg ,_gfaf :=_af .NewClassedPoints (_afcg ._eggf ,_eb .IntSlice (_afcg ._ceeb ));if _gfaf !=nil {return 0,_ab .Wrap (_gfaf ,_gcfg ,"");};var _fgfb ,_fcge int ;_dabac :=_d .New ();_dabac .Init ();if _gfaf =_dabac .EncodeInteger (_d .IADT ,0);_gfaf !=nil {return _aagg ,_ab .Wrap (_gfaf ,_gcfg ,"\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0020\u0044\u0054");};_eggfe ,_gfaf :=_dabg .GroupByY ();if _gfaf !=nil {return 0,_ab .Wrap (_gfaf ,_gcfg ,"");};for _ ,_fdag :=range _eggfe {_dagd :=int (_fdag .YAtIndex (0));_dfef :=_dagd -_fgfb ;if _gfaf =_dabac .EncodeInteger (_d .IADT ,_dfef );_gfaf !=nil {return _aagg ,_ab .Wrap (_gfaf ,_gcfg ,"");};var _bdae int ;for _agfb ,_dddaa :=range _fdag .IntSlice {switch _agfb {case 0:_bggag :=int (_fdag .XAtIndex (_agfb ))-_fcge ;if _gfaf =_dabac .EncodeInteger (_d .IAFS ,_bggag );_gfaf !=nil {return _aagg ,_ab .Wrap (_gfaf ,_gcfg ,"");};_fcge +=_bggag ;_bdae =_fcge ;default:_fbea :=int (_fdag .XAtIndex (_agfb ))-_bdae ;if _gfaf =_dabac .EncodeInteger (_d .IADS ,_fbea );_gfaf !=nil {return _aagg ,_ab .Wrap (_gfaf ,_gcfg ,"");};_bdae +=_fbea ;};_gdbb ,_agea :=_afcg ._eefd .Get (_dddaa );if _agea !=nil {return _aagg ,_ab .Wrap (_agea ,_gcfg ,"");};_ebeb ,_gdgf :=_afcg ._cbgb [_gdbb ];if !_gdgf {_ebeb ,_gdgf =_afcg ._aafd [_gdbb ];if !_gdgf {return _aagg ,_ab .Errorf (_gcfg ,"\u0053\u0079\u006d\u006f\u0062\u006c:\u0020\u0027\u0025d\u0027\u0020\u0069s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064 \u0069\u006e\u0020\u0067\u006cob\u0061\u006c\u0020\u0061\u006e\u0064\u0020\u006c\u006f\u0063\u0061\u006c\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0020\u006d\u0061\u0070",_gdbb );};};if _agea =_dabac .EncodeIAID (_afcg ._fcfdg ,_ebeb );_agea !=nil {return _aagg ,_ab .Wrap (_agea ,_gcfg ,"");};};if _gfaf =_dabac .EncodeOOB (_d .IADS );_gfaf !=nil {return _aagg ,_ab .Wrap (_gfaf ,_gcfg ,"");};};_dabac .Final ();_cebd ,_gfaf :=_dabac .WriteTo (_afdf );if _gfaf !=nil {return _aagg ,_ab .Wrap (_gfaf ,_gcfg ,"");};_aagg +=int (_cebd );return _aagg ,nil ;};func (_adb *GenericRegion )decodeTemplate1 (_febg ,_bfb ,_gbe int ,_bfbg ,_gbeg int )(_egg error ){const _fgaa ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0031";var (_ffca ,_eca int ;_cfca ,_bgg int ;_cfbe byte ;_ccac ,_ddgf int ;);if _febg >=1{_cfbe ,_egg =_adb .Bitmap .GetByte (_gbeg );if _egg !=nil {return _ab .Wrap (_egg ,_fgaa ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_cfca =int (_cfbe );};if _febg >=2{_cfbe ,_egg =_adb .Bitmap .GetByte (_gbeg -_adb .Bitmap .RowStride );if _egg !=nil {return _ab .Wrap (_egg ,_fgaa ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_bgg =int (_cfbe )<<5;};_ffca =((_cfca >>1)&0x1f8)|((_bgg >>1)&0x1e00);for _edeb :=0;_edeb < _gbe ;_edeb =_ccac {var (_ccde byte ;_cgba int ;);_ccac =_edeb +8;if _eed :=_bfb -_edeb ;_eed > 8{_cgba =8;}else {_cgba =_eed ;};if _febg > 0{_cfca <<=8;if _ccac < _bfb {_cfbe ,_egg =_adb .Bitmap .GetByte (_gbeg +1);if _egg !=nil {return _ab .Wrap (_egg ,_fgaa ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_cfca |=int (_cfbe );};};if _febg > 1{_bgg <<=8;if _ccac < _bfb {_cfbe ,_egg =_adb .Bitmap .GetByte (_gbeg -_adb .Bitmap .RowStride +1);if _egg !=nil {return _ab .Wrap (_egg ,_fgaa ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_bgg |=int (_cfbe )<<5;};};for _cbbb :=0;_cbbb < _cgba ;_cbbb ++{if _adb ._cccgf {_eca =_adb .overrideAtTemplate1 (_ffca ,_edeb +_cbbb ,_febg ,int (_ccde ),_cbbb );_adb ._dgbb .SetIndex (int32 (_eca ));}else {_adb ._dgbb .SetIndex (int32 (_ffca ));};_ddgf ,_egg =_adb ._bba .DecodeBit (_adb ._dgbb );if _egg !=nil {return _ab .Wrap (_egg ,_fgaa ,"");};_ccde |=byte (_ddgf )<<uint (7-_cbbb );_dcg :=uint (8-_cbbb );_ffca =((_ffca &0xefb)<<1)|_ddgf |((_cfca >>_dcg )&0x8)|((_bgg >>_dcg )&0x200);};if _ecb :=_adb .Bitmap .SetByte (_bfbg ,_ccde );_ecb !=nil {return _ab .Wrap (_ecb ,_fgaa ,"");};_bfbg ++;_gbeg ++;};return nil ;};func (_dacb *SymbolDictionary )decodeThroughTextRegion (_cfgd ,_gagc ,_cead uint32 )error {if _dacb ._fdb ==nil {_dacb ._fdb =_fbgc (_dacb ._caad ,nil );_dacb ._fdb .setContexts (_dacb ._bddc ,_ba .NewStats (512,1),_ba .NewStats (512,1),_ba .NewStats (512,1),_ba .NewStats (512,1),_dacb ._fdff ,_ba .NewStats (512,1),_ba .NewStats (512,1),_ba .NewStats (512,1),_ba .NewStats (512,1));};if _dgeag :=_dacb .setSymbolsArray ();_dgeag !=nil {return _dgeag ;};_dacb ._fdb .setParameters (_dacb ._aafg ,_dacb .IsHuffmanEncoded ,true ,_cfgd ,_gagc ,_cead ,1,_dacb ._bdf +_dacb ._fbbbb ,0,0,0,1,0,0,0,0,0,0,0,0,0,_dacb .SdrTemplate ,_dacb .SdrATX ,_dacb .SdrATY ,_dacb ._daee ,_dacb ._gbba );return _dacb .addSymbol (_dacb ._fdb );};func (_bcgba *PatternDictionary )checkInput ()error {if _bcgba .HdpHeight < 1||_bcgba .HdpWidth < 1{return _ea .New ("in\u0076\u0061l\u0069\u0064\u0020\u0048\u0065\u0061\u0064\u0065\u0072 \u0056\u0061\u006c\u0075\u0065\u003a\u0020\u0057\u0069\u0064\u0074\u0068\u002f\u0048\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020g\u0072e\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061n\u0020z\u0065\u0072o");};if _bcgba .IsMMREncoded {if _bcgba .HDTemplate !=0{_baf .Log .Debug ("\u0076\u0061\u0072\u0069\u0061\u0062\u006c\u0065\u0020\u0048\u0044\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e \u0074\u0068\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0030");};};return nil ;};func (_ebaf *HalftoneRegion )parseHeader ()error {if _gfeb :=_ebaf .RegionSegment .parseHeader ();_gfeb !=nil {return _gfeb ;};_fcce ,_gbbb :=_ebaf ._adbg .ReadBit ();if _gbbb !=nil {return _gbbb ;};_ebaf .HDefaultPixel =int8 (_fcce );_adba ,_gbbb :=_ebaf ._adbg .ReadBits (3);if _gbbb !=nil {return _gbbb ;};_ebaf .CombinationOperator =_af .CombinationOperator (_adba &0xf);_fcce ,_gbbb =_ebaf ._adbg .ReadBit ();if _gbbb !=nil {return _gbbb ;};if _fcce ==1{_ebaf .HSkipEnabled =true ;};_adba ,_gbbb =_ebaf ._adbg .ReadBits (2);if _gbbb !=nil {return _gbbb ;};_ebaf .HTemplate =byte (_adba &0xf);_fcce ,_gbbb =_ebaf ._adbg .ReadBit ();if _gbbb !=nil {return _gbbb ;};if _fcce ==1{_ebaf .IsMMREncoded =true ;};_adba ,_gbbb =_ebaf ._adbg .ReadBits (32);if _gbbb !=nil {return _gbbb ;};_ebaf .HGridWidth =uint32 (_adba &_a .MaxUint32 );_adba ,_gbbb =_ebaf ._adbg .ReadBits (32);if _gbbb !=nil {return _gbbb ;};_ebaf .HGridHeight =uint32 (_adba &_a .MaxUint32 );_adba ,_gbbb =_ebaf ._adbg .ReadBits (32);if _gbbb !=nil {return _gbbb ;};_ebaf .HGridX =int32 (_adba &_a .MaxInt32 );_adba ,_gbbb =_ebaf ._adbg .ReadBits (32);if _gbbb !=nil {return _gbbb ;};_ebaf .HGridY =int32 (_adba &_a .MaxInt32 );_adba ,_gbbb =_ebaf ._adbg .ReadBits (16);if _gbbb !=nil {return _gbbb ;};_ebaf .HRegionX =uint16 (_adba &_a .MaxUint16 );_adba ,_gbbb =_ebaf ._adbg .ReadBits (16);if _gbbb !=nil {return _gbbb ;};_ebaf .HRegionY =uint16 (_adba &_a .MaxUint16 );if _gbbb =_ebaf .computeSegmentDataStructure ();_gbbb !=nil {return _gbbb ;};return _ebaf .checkInput ();};func (_fdbe *SymbolDictionary )parseHeader ()(_dabe error ){_baf .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c \u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");defer func (){if _dabe !=nil {_baf .Log .Trace ("\u005bS\u0059\u004dB\u004f\u004c\u0020\u0044I\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u005b\u0050\u0041\u0052SE\u002d\u0048\u0045A\u0044\u0045R\u005d\u0020\u0066\u0061\u0069\u006ce\u0064\u002e \u0025\u0076",_dabe );}else {_baf .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c \u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u002e");};}();if _dabe =_fdbe .readRegionFlags ();_dabe !=nil {return _dabe ;};if _dabe =_fdbe .setAtPixels ();_dabe !=nil {return _dabe ;};if _dabe =_fdbe .setRefinementAtPixels ();_dabe !=nil {return _dabe ;};if _dabe =_fdbe .readNumberOfExportedSymbols ();_dabe !=nil {return _dabe ;};if _dabe =_fdbe .readNumberOfNewSymbols ();_dabe !=nil {return _dabe ;};if _dabe =_fdbe .setInSyms ();_dabe !=nil {return _dabe ;};if _fdbe ._dacf {_eef :=_fdbe .Header .RTSegments ;for _aaea :=len (_eef )-1;_aaea >=0;_aaea --{if _eef [_aaea ].Type ==0{_dcbb ,_dgae :=_eef [_aaea ].SegmentData .(*SymbolDictionary );if !_dgae {_dabe =_ad .Errorf ("\u0072\u0065\u006c\u0061\u0074\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074:\u0020\u0025\u0076\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020S\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074",_eef [_aaea ]);return _dabe ;};if _dcbb ._dacf {_fdbe .setRetainedCodingContexts (_dcbb );};break ;};};};if _dabe =_fdbe .checkInput ();_dabe !=nil {return _dabe ;};return nil ;};func (_cgggb *SymbolDictionary )Encode (w _f .BinaryWriter )(_caag int ,_ggfcf error ){const _bbfce ="\u0053\u0079\u006dbo\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0045\u006e\u0063\u006f\u0064\u0065";if _cgggb ==nil {return 0,_ab .Error (_bbfce ,"\u0073\u0079m\u0062\u006f\u006c\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066in\u0065\u0064");};if _caag ,_ggfcf =_cgggb .encodeFlags (w );_ggfcf !=nil {return _caag ,_ab .Wrap (_ggfcf ,_bbfce ,"");};_aceb ,_ggfcf :=_cgggb .encodeATFlags (w );if _ggfcf !=nil {return _caag ,_ab .Wrap (_ggfcf ,_bbfce ,"");};_caag +=_aceb ;if _aceb ,_ggfcf =_cgggb .encodeRefinementATFlags (w );_ggfcf !=nil {return _caag ,_ab .Wrap (_ggfcf ,_bbfce ,"");};_caag +=_aceb ;if _aceb ,_ggfcf =_cgggb .encodeNumSyms (w );_ggfcf !=nil {return _caag ,_ab .Wrap (_ggfcf ,_bbfce ,"");};_caag +=_aceb ;if _aceb ,_ggfcf =_cgggb .encodeSymbols (w );_ggfcf !=nil {return _caag ,_ab .Wrap (_ggfcf ,_bbfce ,"");};_caag +=_aceb ;return _caag ,nil ;};var _ _adg .BasicTabler =&TableSegment {};func (_dfcab *TextRegion )readUseRefinement ()error {if !_dfcab .UseRefinement ||_dfcab .SbrTemplate !=0{return nil ;};var (_cfef byte ;_eggd error ;);_dfcab .SbrATX =make ([]int8 ,2);_dfcab .SbrATY =make ([]int8 ,2);_cfef ,_eggd =_dfcab ._bfeb .ReadByte ();if _eggd !=nil {return _eggd ;};_dfcab .SbrATX [0]=int8 (_cfef );_cfef ,_eggd =_dfcab ._bfeb .ReadByte ();if _eggd !=nil {return _eggd ;};_dfcab .SbrATY [0]=int8 (_cfef );_cfef ,_eggd =_dfcab ._bfeb .ReadByte ();if _eggd !=nil {return _eggd ;};_dfcab .SbrATX [1]=int8 (_cfef );_cfef ,_eggd =_dfcab ._bfeb .ReadByte ();if _eggd !=nil {return _eggd ;};_dfcab .SbrATY [1]=int8 (_cfef );return nil ;};func (_aaag *SymbolDictionary )checkInput ()error {if _aaag .SdHuffDecodeHeightSelection ==2{_baf .Log .Debug ("\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0044\u0065\u0063\u006f\u0064\u0065\u0020\u0048\u0065\u0069g\u0068\u0020\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0064\u0020\u0076\u0061l\u0075\u0065\u0020\u006e\u006f\u0074 \u0070\u0065r\u006d\u0069t\u0074e\u0064",_aaag .SdHuffDecodeHeightSelection );};if _aaag .SdHuffDecodeWidthSelection ==2{_baf .Log .Debug ("\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0044\u0065\u0063\u006f\u0064\u0065\u0020\u0057\u0069\u0064t\u0068\u0020\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0064\u0020\u0076\u0061l\u0075\u0065\u0020\u006e\u006f\u0074 \u0070\u0065r\u006d\u0069t\u0074e\u0064",_aaag .SdHuffDecodeWidthSelection );};if _aaag .IsHuffmanEncoded {if _aaag .SdTemplate !=0{_baf .Log .Debug ("\u0053\u0044T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u003d\u0020\u0025\u0064\u0020\u0028\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e \u0030\u0029",_aaag .SdTemplate );};if !_aaag .UseRefinementAggregation {if !_aaag .UseRefinementAggregation {if _aaag ._edfe {_baf .Log .Debug ("\u0049\u0073\u0043\u006f\u0064\u0069\u006e\u0067C\u006f\u006e\u0074ex\u0074\u0052\u0065\u0074\u0061\u0069n\u0065\u0064\u0020\u003d\u0020\u0074\u0072\u0075\u0065\u0020\u0028\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0066\u0061\u006cs\u0065\u0029");_aaag ._edfe =false ;};if _aaag ._dacf {_baf .Log .Debug ("\u0069s\u0043\u006fd\u0069\u006e\u0067\u0043o\u006e\u0074\u0065x\u0074\u0055\u0073\u0065\u0064\u0020\u003d\u0020\u0074ru\u0065\u0020\u0028s\u0068\u006fu\u006c\u0064\u0020\u0062\u0065\u0020f\u0061\u006cs\u0065\u0029");_aaag ._dacf =false ;};};};}else {if _aaag .SdHuffBMSizeSelection !=0{_baf .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066B\u004d\u0053\u0069\u007a\u0065\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u0030");_aaag .SdHuffBMSizeSelection =0;};if _aaag .SdHuffDecodeWidthSelection !=0{_baf .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0057\u0069\u0064\u0074\u0068\u0053\u0065\u006c\u0065\u0063\u0074\u0069o\u006e\u0020\u0073\u0068\u006fu\u006c\u0064 \u0062\u0065\u0020\u0030");_aaag .SdHuffDecodeWidthSelection =0;};if _aaag .SdHuffDecodeHeightSelection !=0{_baf .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0048e\u0069\u0067\u0068\u0074\u0053\u0065l\u0065\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u0030");_aaag .SdHuffDecodeHeightSelection =0;};};if !_aaag .UseRefinementAggregation {if _aaag .SdrTemplate !=0{_baf .Log .Debug ("\u0053\u0044\u0052\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u003d\u0020\u0025\u0064\u0020\u0028s\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030\u0029",_aaag .SdrTemplate );_aaag .SdrTemplate =0;};};if !_aaag .IsHuffmanEncoded ||!_aaag .UseRefinementAggregation {if _aaag .SdHuffAggInstanceSelection {_baf .Log .Debug ("\u0053d\u0048\u0075f\u0066\u0041\u0067g\u0049\u006e\u0073\u0074\u0061\u006e\u0063e\u0053\u0065\u006c\u0065\u0063\u0074i\u006f\u006e\u0020\u003d\u0020\u0025\u0064\u0020\u0028\u0073\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030\u0029",_aaag .SdHuffAggInstanceSelection );};};return nil ;};type template0 struct{};func (_cfaeb *SymbolDictionary )readRegionFlags ()error {var (_ecdd uint64 ;_ggdf int ;);_ ,_fefd :=_cfaeb ._caad .ReadBits (3);if _fefd !=nil {return _fefd ;};_ggdf ,_fefd =_cfaeb ._caad .ReadBit ();if _fefd !=nil {return _fefd ;};_cfaeb .SdrTemplate =int8 (_ggdf );_ecdd ,_fefd =_cfaeb ._caad .ReadBits (2);if _fefd !=nil {return _fefd ;};_cfaeb .SdTemplate =int8 (_ecdd &0xf);_ggdf ,_fefd =_cfaeb ._caad .ReadBit ();if _fefd !=nil {return _fefd ;};if _ggdf ==1{_cfaeb ._edfe =true ;};_ggdf ,_fefd =_cfaeb ._caad .ReadBit ();if _fefd !=nil {return _fefd ;};if _ggdf ==1{_cfaeb ._dacf =true ;};_ggdf ,_fefd =_cfaeb ._caad .ReadBit ();if _fefd !=nil {return _fefd ;};if _ggdf ==1{_cfaeb .SdHuffAggInstanceSelection =true ;};_ggdf ,_fefd =_cfaeb ._caad .ReadBit ();if _fefd !=nil {return _fefd ;};_cfaeb .SdHuffBMSizeSelection =int8 (_ggdf );_ecdd ,_fefd =_cfaeb ._caad .ReadBits (2);if _fefd !=nil {return _fefd ;};_cfaeb .SdHuffDecodeWidthSelection =int8 (_ecdd &0xf);_ecdd ,_fefd =_cfaeb ._caad .ReadBits (2);if _fefd !=nil {return _fefd ;};_cfaeb .SdHuffDecodeHeightSelection =int8 (_ecdd &0xf);_ggdf ,_fefd =_cfaeb ._caad .ReadBit ();if _fefd !=nil {return _fefd ;};if _ggdf ==1{_cfaeb .UseRefinementAggregation =true ;};_ggdf ,_fefd =_cfaeb ._caad .ReadBit ();if _fefd !=nil {return _fefd ;};if _ggdf ==1{_cfaeb .IsHuffmanEncoded =true ;};return nil ;};func (_gga *GenericRegion )Init (h *Header ,r _f .StreamReader )error {_gga .RegionSegment =NewRegionSegment (r );_gga ._cfbf =r ;return _gga .parseHeader ();};func (_gdb *GenericRefinementRegion )decodeTypicalPredictedLineTemplate0 (_fdf ,_dg ,_bbbe ,_gbc ,_dgb ,_db ,_afc ,_daa ,_agd int )error {var (_ddf ,_ed ,_baa ,_bfd ,_ge ,_gff int ;_fg byte ;_fef error ;);if _fdf > 0{_fg ,_fef =_gdb .RegionBitmap .GetByte (_afc -_bbbe );if _fef !=nil {return _fef ;};_baa =int (_fg );};if _daa > 0&&_daa <=_gdb .ReferenceBitmap .Height {_fg ,_fef =_gdb .ReferenceBitmap .GetByte (_agd -_gbc +_db );if _fef !=nil {return _fef ;};_bfd =int (_fg )<<4;};if _daa >=0&&_daa < _gdb .ReferenceBitmap .Height {_fg ,_fef =_gdb .ReferenceBitmap .GetByte (_agd +_db );if _fef !=nil {return _fef ;};_ge =int (_fg )<<1;};if _daa > -2&&_daa < _gdb .ReferenceBitmap .Height -1{_fg ,_fef =_gdb .ReferenceBitmap .GetByte (_agd +_gbc +_db );if _fef !=nil {return _fef ;};_gff =int (_fg );};_ddf =((_baa >>5)&0x6)|((_gff >>2)&0x30)|(_ge &0x180)|(_bfd &0xc00);var _bdg int ;for _bab :=0;_bab < _dgb ;_bab =_bdg {var _gbg int ;_bdg =_bab +8;var _aaf int ;if _aaf =_dg -_bab ;_aaf > 8{_aaf =8;};_dda :=_bdg < _dg ;_fbg :=_bdg < _gdb .ReferenceBitmap .Width ;_gea :=_db +1;if _fdf > 0{_fg =0;if _dda {_fg ,_fef =_gdb .RegionBitmap .GetByte (_afc -_bbbe +1);if _fef !=nil {return _fef ;};};_baa =(_baa <<8)|int (_fg );};if _daa > 0&&_daa <=_gdb .ReferenceBitmap .Height {var _acg int ;if _fbg {_fg ,_fef =_gdb .ReferenceBitmap .GetByte (_agd -_gbc +_gea );if _fef !=nil {return _fef ;};_acg =int (_fg )<<4;};_bfd =(_bfd <<8)|_acg ;};if _daa >=0&&_daa < _gdb .ReferenceBitmap .Height {var _bcd int ;if _fbg {_fg ,_fef =_gdb .ReferenceBitmap .GetByte (_agd +_gea );if _fef !=nil {return _fef ;};_bcd =int (_fg )<<1;};_ge =(_ge <<8)|_bcd ;};if _daa > -2&&_daa < (_gdb .ReferenceBitmap .Height -1){_fg =0;if _fbg {_fg ,_fef =_gdb .ReferenceBitmap .GetByte (_agd +_gbc +_gea );if _fef !=nil {return _fef ;};};_gff =(_gff <<8)|int (_fg );};for _aaa :=0;_aaa < _aaf ;_aaa ++{var _ced int ;_fga :=false ;_ecd :=(_ddf >>4)&0x1ff;if _ecd ==0x1ff{_fga =true ;_ced =1;}else if _ecd ==0x00{_fga =true ;};if !_fga {if _gdb ._gdg {_ed =_gdb .overrideAtTemplate0 (_ddf ,_bab +_aaa ,_fdf ,_gbg ,_aaa );_gdb ._afb .SetIndex (int32 (_ed ));}else {_gdb ._afb .SetIndex (int32 (_ddf ));};_ced ,_fef =_gdb ._gac .DecodeBit (_gdb ._afb );if _fef !=nil {return _fef ;};};_eaf :=uint (7-_aaa );_gbg |=int (_ced <<_eaf );_ddf =((_ddf &0xdb6)<<1)|_ced |(_baa >>_eaf +5)&0x002|((_gff >>_eaf +2)&0x010)|((_ge >>_eaf )&0x080)|((_bfd >>_eaf )&0x400);};_fef =_gdb .RegionBitmap .SetByte (_afc ,byte (_gbg ));if _fef !=nil {return _fef ;};_afc ++;_agd ++;};return nil ;};func (_caefb *SymbolDictionary )setCodingStatistics ()error {if _caefb ._dcc ==nil {_caefb ._dcc =_ba .NewStats (512,1);};if _caefb ._cgdg ==nil {_caefb ._cgdg =_ba .NewStats (512,1);};if _caefb ._fege ==nil {_caefb ._fege =_ba .NewStats (512,1);};if _caefb ._dgea ==nil {_caefb ._dgea =_ba .NewStats (512,1);};if _caefb ._fgbd ==nil {_caefb ._fgbd =_ba .NewStats (512,1);};if _caefb .UseRefinementAggregation &&_caefb ._fdff ==nil {_caefb ._fdff =_ba .NewStats (1<<uint (_caefb ._gbba ),1);_caefb ._gdbec =_ba .NewStats (512,1);_caefb ._fdbb =_ba .NewStats (512,1);};if _caefb ._bddc ==nil {_caefb ._bddc =_ba .NewStats (65536,1);};if _caefb ._aafg ==nil {var _cefb error ;_caefb ._aafg ,_cefb =_ba .New (_caefb ._caad );if _cefb !=nil {return _cefb ;};};return nil ;};func (_ebab *PatternDictionary )setGbAtPixels (){if _ebab .HDTemplate ==0{_ebab .GBAtX =make ([]int8 ,4);_ebab .GBAtY =make ([]int8 ,4);_ebab .GBAtX [0]=-int8 (_ebab .HdpWidth );_ebab .GBAtY [0]=0;_ebab .GBAtX [1]=-3;_ebab .GBAtY [1]=-1;_ebab .GBAtX [2]=2;_ebab .GBAtY [2]=-2;_ebab .GBAtX [3]=-2;_ebab .GBAtY [3]=-2;}else {_ebab .GBAtX =[]int8 {-int8 (_ebab .HdpWidth )};_ebab .GBAtY =[]int8 {0};};};func (_ebgcf *TextRegion )decodeRdy ()(int64 ,error ){const _cadc ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064y";if _ebgcf .IsHuffmanEncoded {if _ebgcf .SbHuffRDY ==3{if _ebgcf ._ggeb ==nil {var (_bagc int ;_efge error ;);if _ebgcf .SbHuffFS ==3{_bagc ++;};if _ebgcf .SbHuffDS ==3{_bagc ++;};if _ebgcf .SbHuffDT ==3{_bagc ++;};if _ebgcf .SbHuffRDWidth ==3{_bagc ++;};if _ebgcf .SbHuffRDHeight ==3{_bagc ++;};if _ebgcf .SbHuffRDX ==3{_bagc ++;};_ebgcf ._ggeb ,_efge =_ebgcf .getUserTable (_bagc );if _efge !=nil {return 0,_ab .Wrap (_efge ,_cadc ,"");};};return _ebgcf ._ggeb .Decode (_ebgcf ._bfeb );};_gfc ,_ecaed :=_adg .GetStandardTable (14+int (_ebgcf .SbHuffRDY ));if _ecaed !=nil {return 0,_ecaed ;};return _gfc .Decode (_ebgcf ._bfeb );};_egeb ,_afd :=_ebgcf ._adcb .DecodeInt (_ebgcf ._cfgb );if _afd !=nil {return 0,_ab .Wrap (_afd ,_cadc ,"");};return int64 (_egeb ),nil ;};func (_bbd *PageInformationSegment )String ()string {_dfec :=&_bd .Builder {};_dfec .WriteString ("\u000a\u005b\u0050\u0041G\u0045\u002d\u0049\u004e\u0046\u004f\u0052\u004d\u0041\u0054I\u004fN\u002d\u0053\u0045\u0047\u004d\u0045\u004eT\u005d\u000a");_dfec .WriteString (_ad .Sprintf ("\u0009\u002d \u0042\u004d\u0048e\u0069\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u000a",_bbd .PageBMHeight ));_dfec .WriteString (_ad .Sprintf ("\u0009-\u0020B\u004d\u0057\u0069\u0064\u0074\u0068\u003a\u0020\u0025\u0064\u000a",_bbd .PageBMWidth ));_dfec .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0058\u003a\u0020\u0025\u0064\u000a",_bbd .ResolutionX ));_dfec .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0059\u003a\u0020\u0025\u0064\u000a",_bbd .ResolutionY ));_dfec .WriteString (_ad .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0073\u000a",_bbd ._fcceb ));_dfec .WriteString (_ad .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006eO\u0070\u0065\u0072\u0061\u0074\u006f\u0072O\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u003a\u0020\u0025v\u000a",_bbd ._gbeb ));_dfec .WriteString (_ad .Sprintf ("\u0009-\u0020I\u0073\u004c\u006f\u0073\u0073l\u0065\u0073s\u003a\u0020\u0025\u0076\u000a",_bbd .IsLossless ));_dfec .WriteString (_ad .Sprintf ("\u0009\u002d\u0020R\u0065\u0071\u0075\u0069r\u0065\u0073\u0041\u0075\u0078\u0069\u006ci\u0061\u0072\u0079\u0042\u0075\u0066\u0066\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_bbd ._gcb ));_dfec .WriteString (_ad .Sprintf ("\u0009\u002d\u0020M\u0069\u0067\u0068\u0074C\u006f\u006e\u0074\u0061\u0069\u006e\u0052e\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0076\u000a",_bbd ._fbbf ));_dfec .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0049\u0073\u0053\u0074\u0072\u0069\u0070\u0065\u0064:\u0020\u0025\u0076\u000a",_bbd .IsStripe ));_dfec .WriteString (_ad .Sprintf ("\t\u002d\u0020\u004d\u0061xS\u0074r\u0069\u0070\u0065\u0053\u0069z\u0065\u003a\u0020\u0025\u0076\u000a",_bbd .MaxStripeSize ));return _dfec .String ();};type EndOfStripe struct{_bae _f .StreamReader ;_c int ;};func (_cdfg *Header )subInputReader ()(_f .StreamReader ,error ){return _f .NewSubstreamReader (_cdfg .Reader ,_cdfg .SegmentDataStartOffset ,_cdfg .SegmentDataLength );};func (_ege *PageInformationSegment )encodeStripingInformation (_cedc _f .BinaryWriter )(_bbag int ,_fbga error ){const _edgd ="\u0065n\u0063\u006f\u0064\u0065S\u0074\u0072\u0069\u0070\u0069n\u0067I\u006ef\u006f\u0072\u006d\u0061\u0074\u0069\u006fn";if !_ege .IsStripe {if _bbag ,_fbga =_cedc .Write ([]byte {0x00,0x00});_fbga !=nil {return 0,_ab .Wrap (_fbga ,_edgd ,"n\u006f\u0020\u0073\u0074\u0072\u0069\u0070\u0069\u006e\u0067");};return _bbag ,nil ;};_ebag :=make ([]byte ,2);_e .BigEndian .PutUint16 (_ebag ,_ege .MaxStripeSize |1<<15);if _bbag ,_fbga =_cedc .Write (_ebag );_fbga !=nil {return 0,_ab .Wrapf (_fbga ,_edgd ,"\u0073\u0074\u0072i\u0070\u0069\u006e\u0067\u003a\u0020\u0025\u0064",_ege .MaxStripeSize );};return _bbag ,nil ;};func (_bda *HalftoneRegion )checkInput ()error {if _bda .IsMMREncoded {if _bda .HTemplate !=0{_baf .Log .Debug ("\u0048\u0054\u0065\u006d\u0070l\u0061\u0074\u0065\u0020\u003d\u0020\u0025\u0064\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0030",_bda .HTemplate );};if _bda .HSkipEnabled {_baf .Log .Debug ("\u0048\u0053\u006b\u0069\u0070\u0045\u006e\u0061\u0062\u006c\u0065\u0064\u0020\u0030\u0020\u0025\u0076\u0020(\u0073\u0068\u006f\u0075\u006c\u0064\u0020c\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0074\u0068\u0065\u0020v\u0061\u006c\u0075\u0065\u0020\u0066\u0061\u006c\u0073\u0065\u0029",_bda .HSkipEnabled );};};return nil ;};type Segmenter interface{Init (_ecee *Header ,_dcbg _f .StreamReader )error ;};func NewHeader (d Documenter ,r _f .StreamReader ,offset int64 ,organizationType OrganizationType )(*Header ,error ){_cgagg :=&Header {Reader :r };if _cafd :=_cgagg .parse (d ,r ,offset ,organizationType );_cafd !=nil {return nil ,_ab .Wrap (_cafd ,"\u004ee\u0077\u0048\u0065\u0061\u0064\u0065r","");};return _cgagg ,nil ;};func (_edgc *PatternDictionary )readPatternWidthAndHeight ()error {_fcdb ,_ddcb :=_edgc ._cbeg .ReadByte ();if _ddcb !=nil {return _ddcb ;};_edgc .HdpWidth =_fcdb ;_fcdb ,_ddcb =_edgc ._cbeg .ReadByte ();if _ddcb !=nil {return _ddcb ;};_edgc .HdpHeight =_fcdb ;return nil ;};func (_agcf *Header )writeFlags (_dddg _f .BinaryWriter )(_daaf error ){const _afae ="\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065F\u006c\u0061\u0067\u0073";_dad :=byte (_agcf .Type );if _daaf =_dddg .WriteByte (_dad );_daaf !=nil {return _ab .Wrap (_daaf ,_afae ,"\u0077\u0072\u0069ti\u006e\u0067\u0020\u0073\u0065\u0067\u006d\u0065\u006et\u0020t\u0079p\u0065 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};if !_agcf .RetainFlag &&!_agcf .PageAssociationFieldSize {return nil ;};if _daaf =_dddg .SkipBits (-8);_daaf !=nil {return _ab .Wrap (_daaf ,_afae ,"\u0073\u006bi\u0070\u0070\u0069\u006e\u0067\u0020\u0062\u0061\u0063\u006b\u0020\u0074\u0068\u0065\u0020\u0062\u0069\u0074\u0073\u0020\u0066\u0061il\u0065\u0064");};var _ffdb int ;if _agcf .RetainFlag {_ffdb =1;};if _daaf =_dddg .WriteBit (_ffdb );_daaf !=nil {return _ab .Wrap (_daaf ,_afae ,"\u0072\u0065\u0074\u0061in\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067\u0073");};_ffdb =0;if _agcf .PageAssociationFieldSize {_ffdb =1;};if _daaf =_dddg .WriteBit (_ffdb );_daaf !=nil {return _ab .Wrap (_daaf ,_afae ,"p\u0061\u0067\u0065\u0020as\u0073o\u0063\u0069\u0061\u0074\u0069o\u006e\u0020\u0066\u006c\u0061\u0067");};_dddg .FinishByte ();return nil ;};func (_gdde *SymbolDictionary )String ()string {_ebfb :=&_bd .Builder {};_ebfb .WriteString ("\n\u005b\u0053\u0059\u004dBO\u004c-\u0044\u0049\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u000a");_ebfb .WriteString (_ad .Sprintf ("\u0009-\u0020S\u0064\u0072\u0054\u0065\u006dp\u006c\u0061t\u0065\u0020\u0025\u0076\u000a",_gdde .SdrTemplate ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0025\u0076\u000a",_gdde .SdTemplate ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0069\u0073\u0043\u006f\u0064\u0069\u006eg\u0043\u006f\u006e\u0074\u0065\u0078\u0074R\u0065\u0074\u0061\u0069\u006e\u0065\u0064\u0020\u0025\u0076\u000a",_gdde ._edfe ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0069\u0073\u0043\u006f\u0064\u0069\u006e\u0067C\u006f\u006e\u0074\u0065\u0078\u0074\u0055\u0073\u0065\u0064 \u0025\u0076\u000a",_gdde ._dacf ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0048u\u0066\u0066\u0041\u0067\u0067\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065S\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0025\u0076\u000a",_gdde .SdHuffAggInstanceSelection ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053d\u0048\u0075\u0066\u0066\u0042\u004d\u0053\u0069\u007a\u0065S\u0065l\u0065\u0063\u0074\u0069\u006f\u006e\u0020%\u0076\u000a",_gdde .SdHuffBMSizeSelection ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0048u\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0057\u0069\u0064\u0074\u0068S\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0025\u0076\u000a",_gdde .SdHuffDecodeWidthSelection ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020Sd\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064e\u0048e\u0069g\u0068t\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u0020\u0025\u0076\u000a",_gdde .SdHuffDecodeHeightSelection ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020U\u0073\u0065\u0052\u0065f\u0069\u006e\u0065\u006d\u0065\u006e\u0074A\u0067\u0067\u0072\u0065\u0067\u0061\u0074\u0069\u006f\u006e\u0020\u0025\u0076\u000a",_gdde .UseRefinementAggregation ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020is\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045\u006e\u0063\u006f\u0064\u0065\u0064\u0020\u0025\u0076\u000a",_gdde .IsHuffmanEncoded ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_gdde .SdATX ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_gdde .SdATY ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_gdde .SdrATX ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_gdde .SdrATY ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u004e\u0075\u006d\u0062\u0065\u0072\u004ff\u0045\u0078\u0070\u006f\u0072\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0025\u0076\u000a",_gdde .NumberOfExportedSymbols ));_ebfb .WriteString (_ad .Sprintf ("\u0009-\u0020\u004e\u0075\u006db\u0065\u0072\u004f\u0066\u004ee\u0077S\u0079m\u0062\u006f\u006c\u0073\u0020\u0025\u0076\n",_gdde .NumberOfNewSymbols ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u004ff\u0049\u006d\u0070\u006f\u0072\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0025\u0076\u000a",_gdde ._bdf ));_ebfb .WriteString (_ad .Sprintf ("\u0009\u002d \u006e\u0075\u006d\u0062\u0065\u0072\u004f\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0064\u0053\u0079\u006d\u0062\u006f\u006c\u0073 %\u0076\u000a",_gdde ._fbbbb ));return _ebfb .String ();};func (_bcag *TextRegion )getSymbols ()error {if _bcag .Header .RTSegments !=nil {return _bcag .initSymbols ();};return nil ;};func (_baffe *TextRegion )setContexts (_bebbb *_ba .DecoderStats ,_gagd *_ba .DecoderStats ,_ffbf *_ba .DecoderStats ,_eggg *_ba .DecoderStats ,_eacd *_ba .DecoderStats ,_ebfbg *_ba .DecoderStats ,_dgeac *_ba .DecoderStats ,_edfbe *_ba .DecoderStats ,_dcec *_ba .DecoderStats ,_ggbc *_ba .DecoderStats ){_baffe ._abad =_gagd ;_baffe ._ddfb =_ffbf ;_baffe ._dcbge =_eggg ;_baffe ._edgcc =_eacd ;_baffe ._bbgc =_dgeac ;_baffe ._cdfe =_edfbe ;_baffe ._cegce =_ebfbg ;_baffe ._abge =_dcec ;_baffe ._cfgb =_ggbc ;_baffe ._ebbe =_bebbb ;};func (_bedb *TextRegion )decodeCurrentT ()(int64 ,error ){if _bedb .SbStrips !=1{if _bedb .IsHuffmanEncoded {_bgdf ,_ggda :=_bedb ._bfeb .ReadBits (byte (_bedb .LogSBStrips ));return int64 (_bgdf ),_ggda ;};_afbcd ,_aeg :=_bedb ._adcb .DecodeInt (_bedb ._edgcc );if _aeg !=nil {return 0,_aeg ;};return int64 (_afbcd ),nil ;};return 0,nil ;};func (_ggf *GenericRefinementRegion )Init (header *Header ,r _f .StreamReader )error {_ggf ._gd =header ;_ggf ._ag =r ;_ggf .RegionInfo =NewRegionSegment (r );return _ggf .parseHeader ();};func (_bcdb *TableSegment )StreamReader ()_f .StreamReader {return _bcdb ._fegef };func (_ceaa *SymbolDictionary )addSymbol (_fba Regioner )error {_fdeg ,_ffcef :=_fba .GetRegionBitmap ();if _ffcef !=nil {return _ffcef ;};_ceaa ._bfaa [_ceaa ._fbbbb ]=_fdeg ;_ceaa ._daee =append (_ceaa ._daee ,_fdeg );_baf .Log .Trace ("\u005b\u0053YM\u0042\u004f\u004c \u0044\u0049\u0043\u0054ION\u0041RY\u005d\u0020\u0041\u0064\u0064\u0065\u0064 s\u0079\u006d\u0062\u006f\u006c\u003a\u0020%\u0073",_fdeg );return nil ;};func (_cfge *TextRegion )blit (_cbbg *_af .Bitmap ,_edcf int64 )error {if _cfge .IsTransposed ==0&&(_cfge .ReferenceCorner ==2||_cfge .ReferenceCorner ==3){_cfge ._eaag +=int64 (_cbbg .Width -1);}else if _cfge .IsTransposed ==1&&(_cfge .ReferenceCorner ==0||_cfge .ReferenceCorner ==2){_cfge ._eaag +=int64 (_cbbg .Height -1);};_cba :=_cfge ._eaag ;if _cfge .IsTransposed ==1{_cba ,_edcf =_edcf ,_cba ;};switch _cfge .ReferenceCorner {case 0:_edcf -=int64 (_cbbg .Height -1);case 2:_edcf -=int64 (_cbbg .Height -1);_cba -=int64 (_cbbg .Width -1);case 3:_cba -=int64 (_cbbg .Width -1);};_egbc :=_af .Blit (_cbbg ,_cfge .RegionBitmap ,int (_cba ),int (_edcf ),_cfge .CombinationOperator );if _egbc !=nil {return _egbc ;};if _cfge .IsTransposed ==0&&(_cfge .ReferenceCorner ==0||_cfge .ReferenceCorner ==1){_cfge ._eaag +=int64 (_cbbg .Width -1);};if _cfge .IsTransposed ==1&&(_cfge .ReferenceCorner ==1||_cfge .ReferenceCorner ==3){_cfge ._eaag +=int64 (_cbbg .Height -1);};return nil ;};func (_adfd *SymbolDictionary )encodeNumSyms (_ecga _f .BinaryWriter )(_gfea int ,_bgbf error ){const _cbdb ="\u0065\u006e\u0063\u006f\u0064\u0065\u004e\u0075\u006d\u0053\u0079\u006d\u0073";_aabg :=make ([]byte ,4);_e .BigEndian .PutUint32 (_aabg ,_adfd .NumberOfExportedSymbols );if _gfea ,_bgbf =_ecga .Write (_aabg );_bgbf !=nil {return _gfea ,_ab .Wrap (_bgbf ,_cbdb ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};_e .BigEndian .PutUint32 (_aabg ,_adfd .NumberOfNewSymbols );_bccb ,_bgbf :=_ecga .Write (_aabg );if _bgbf !=nil {return _gfea ,_ab .Wrap (_bgbf ,_cbdb ,"n\u0065\u0077\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};return _gfea +_bccb ,nil ;};func (_geab *GenericRefinementRegion )readAtPixels ()error {_geab .GrAtX =make ([]int8 ,2);_geab .GrAtY =make ([]int8 ,2);_caa ,_fda :=_geab ._ag .ReadByte ();if _fda !=nil {return _fda ;};_geab .GrAtX [0]=int8 (_caa );_caa ,_fda =_geab ._ag .ReadByte ();if _fda !=nil {return _fda ;};_geab .GrAtY [0]=int8 (_caa );_caa ,_fda =_geab ._ag .ReadByte ();if _fda !=nil {return _fda ;};_geab .GrAtX [1]=int8 (_caa );_caa ,_fda =_geab ._ag .ReadByte ();if _fda !=nil {return _fda ;};_geab .GrAtY [1]=int8 (_caa );return nil ;};func (_cca *GenericRegion )GetRegionBitmap ()(_gace *_af .Bitmap ,_acdc error ){if _cca .Bitmap !=nil {return _cca .Bitmap ,nil ;};if _cca .IsMMREncoded {if _cca ._bebg ==nil {_cca ._bebg ,_acdc =_gb .New (_cca ._cfbf ,int (_cca .RegionSegment .BitmapWidth ),int (_cca .RegionSegment .BitmapHeight ),_cca .DataOffset ,_cca .DataLength );if _acdc !=nil {return nil ,_acdc ;};};_cca .Bitmap ,_acdc =_cca ._bebg .UncompressMMR ();return _cca .Bitmap ,_acdc ;};if _acdc =_cca .updateOverrideFlags ();_acdc !=nil {return nil ,_acdc ;};var _aea int ;if _cca ._bba ==nil {_cca ._bba ,_acdc =_ba .New (_cca ._cfbf );if _acdc !=nil {return nil ,_acdc ;};};if _cca ._dgbb ==nil {_cca ._dgbb =_ba .NewStats (65536,1);};_cca .Bitmap =_af .New (int (_cca .RegionSegment .BitmapWidth ),int (_cca .RegionSegment .BitmapHeight ));_cdea :=int (uint32 (_cca .Bitmap .Width +7)&(^uint32 (7)));for _fbgf :=0;_fbgf < _cca .Bitmap .Height ;_fbgf ++{if _cca .IsTPGDon {var _ecc int ;_ecc ,_acdc =_cca .decodeSLTP ();if _acdc !=nil {return nil ,_acdc ;};_aea ^=_ecc ;};if _aea ==1{if _fbgf > 0{if _acdc =_cca .copyLineAbove (_fbgf );_acdc !=nil {return nil ,_acdc ;};};}else {if _acdc =_cca .decodeLine (_fbgf ,_cca .Bitmap .Width ,_cdea );_acdc !=nil {return nil ,_acdc ;};};};return _cca .Bitmap ,nil ;};func (_dbcb *SymbolDictionary )decodeHeightClassBitmap (_aebe *_af .Bitmap ,_dacg int64 ,_ebadg int ,_cbcc []int )error {for _gecf :=_dacg ;_gecf < int64 (_dbcb ._fbbbb );_gecf ++{var _gdag int ;for _eadg :=_dacg ;_eadg <=_gecf -1;_eadg ++{_gdag +=_cbcc [_eadg ];};_ecaf :=_gg .Rect (_gdag ,0,_gdag +_cbcc [_gecf ],_ebadg );_daeb ,_abaaf :=_af .Extract (_ecaf ,_aebe );if _abaaf !=nil {return _abaaf ;};_dbcb ._bfaa [_gecf ]=_daeb ;_dbcb ._daee =append (_dbcb ._daee ,_daeb );};return nil ;};func (_efbg *PageInformationSegment )readCombinationOperatorOverrideAllowed ()error {_cdef ,_gacf :=_efbg ._feaf .ReadBit ();if _gacf !=nil {return _gacf ;};if _cdef ==1{_efbg ._gbeb =true ;};return nil ;};func (_agdc *SymbolDictionary )decodeDifferenceWidth ()(int64 ,error ){if _agdc .IsHuffmanEncoded {switch _agdc .SdHuffDecodeWidthSelection {case 0:_bbae ,_ggdc :=_adg .GetStandardTable (2);if _ggdc !=nil {return 0,_ggdc ;};return _bbae .Decode (_agdc ._caad );case 1:_gcbf ,_ffaf :=_adg .GetStandardTable (3);if _ffaf !=nil {return 0,_ffaf ;};return _gcbf .Decode (_agdc ._caad );case 3:if _agdc ._gdge ==nil {var _agb int ;if _agdc .SdHuffDecodeHeightSelection ==3{_agb ++;};_dfca ,_egaf :=_agdc .getUserTable (_agb );if _egaf !=nil {return 0,_egaf ;};_agdc ._gdge =_dfca ;};return _agdc ._gdge .Decode (_agdc ._caad );};}else {_ddae ,_eebe :=_agdc ._aafg .DecodeInt (_agdc ._fege );if _eebe !=nil {return 0,_eebe ;};if _ddae ==_a .MaxInt32 {return int64 (_a .MaxInt64 ),nil ;};return int64 (_ddae ),nil ;};return 0,nil ;};func (_ddg *GenericRefinementRegion )decodeOptimized (_bge ,_bbb ,_aa ,_ada ,_def ,_fe ,_ccf int )error {var (_gf error ;_fed int ;_agg int ;);_fc :=_bge -int (_ddg .ReferenceDY );if _aba :=int (-_ddg .ReferenceDX );_aba > 0{_fed =_aba ;};_cbf :=_ddg .ReferenceBitmap .GetByteIndex (_fed ,_fc );if _ddg .ReferenceDX > 0{_agg =int (_ddg .ReferenceDX );};_eeb :=_ddg .RegionBitmap .GetByteIndex (_agg ,_bge );switch _ddg .TemplateID {case 0:_gf =_ddg .decodeTemplate (_bge ,_bbb ,_aa ,_ada ,_def ,_fe ,_ccf ,_eeb ,_fc ,_cbf ,_ddg ._cf );case 1:_gf =_ddg .decodeTemplate (_bge ,_bbb ,_aa ,_ada ,_def ,_fe ,_ccf ,_eeb ,_fc ,_cbf ,_ddg ._dc );};return _gf ;};func (_gcbdd *TextRegion )decodeIds ()(int64 ,error ){const _fgfcd ="\u0064e\u0063\u006f\u0064\u0065\u0049\u0064s";if _gcbdd .IsHuffmanEncoded {if _gcbdd .SbHuffDS ==3{if _gcbdd ._bgc ==nil {_cdae :=0;if _gcbdd .SbHuffFS ==3{_cdae ++;};var _edgg error ;_gcbdd ._bgc ,_edgg =_gcbdd .getUserTable (_cdae );if _edgg !=nil {return 0,_ab .Wrap (_edgg ,_fgfcd ,"");};};return _gcbdd ._bgc .Decode (_gcbdd ._bfeb );};_abcab ,_edee :=_adg .GetStandardTable (8+int (_gcbdd .SbHuffDS ));if _edee !=nil {return 0,_ab .Wrap (_edee ,_fgfcd ,"");};return _abcab .Decode (_gcbdd ._bfeb );};_cbcdg ,_gbcc :=_gcbdd ._adcb .DecodeInt (_gcbdd ._dcbge );if _gbcc !=nil {return 0,_ab .Wrap (_gbcc ,_fgfcd ,"\u0063\u0078\u0049\u0041\u0044\u0053");};return int64 (_cbcdg ),nil ;};func (_dbde *GenericRefinementRegion )getPixel (_gc *_af .Bitmap ,_fde ,_cdg int )int {if _fde < 0||_fde >=_gc .Width {return 0;};if _cdg < 0||_cdg >=_gc .Height {return 0;};if _gc .GetPixel (_fde ,_cdg ){return 1;};return 0;};func (_bdcf *GenericRegion )decodeSLTP ()(int ,error ){switch _bdcf .GBTemplate {case 0:_bdcf ._dgbb .SetIndex (0x9B25);case 1:_bdcf ._dgbb .SetIndex (0x795);case 2:_bdcf ._dgbb .SetIndex (0xE5);case 3:_bdcf ._dgbb .SetIndex (0x195);};return _bdcf ._bba .DecodeBit (_bdcf ._dgbb );};func (_dgg *HalftoneRegion )combineGrayscalePlanes (_gfff []*_af .Bitmap ,_ebdc int )error {_agef :=0;for _eade :=0;_eade < _gfff [_ebdc ].Height ;_eade ++{for _fgdg :=0;_fgdg < _gfff [_ebdc ].Width ;_fgdg +=8{_ddad ,_fagc :=_gfff [_ebdc +1].GetByte (_agef );if _fagc !=nil {return _fagc ;};_cfe ,_fagc :=_gfff [_ebdc ].GetByte (_agef );if _fagc !=nil {return _fagc ;};_fagc =_gfff [_ebdc ].SetByte (_agef ,_af .CombineBytes (_cfe ,_ddad ,_af .CmbOpXor ));if _fagc !=nil {return _fagc ;};_agef ++;};};return nil ;};type TextRegion struct{_bfeb _f .StreamReader ;RegionInfo *RegionSegment ;SbrTemplate int8 ;SbdsOffset int8 ;DefaultPixel int8 ;CombinationOperator _af .CombinationOperator ;IsTransposed int8 ;ReferenceCorner int16 ;LogSBStrips int16 ;UseRefinement bool ;IsHuffmanEncoded bool ;SbHuffRSize int8 ;SbHuffRDY int8 ;SbHuffRDX int8 ;SbHuffRDHeight int8 ;SbHuffRDWidth int8 ;SbHuffDT int8 ;SbHuffDS int8 ;SbHuffFS int8 ;SbrATX []int8 ;SbrATY []int8 ;NumberOfSymbolInstances uint32 ;_eaag int64 ;SbStrips int8 ;NumberOfSymbols uint32 ;RegionBitmap *_af .Bitmap ;Symbols []*_af .Bitmap ;_adcb *_ba .Decoder ;_bgdb *GenericRefinementRegion ;_abad *_ba .DecoderStats ;_ddfb *_ba .DecoderStats ;_dcbge *_ba .DecoderStats ;_edgcc *_ba .DecoderStats ;_egc *_ba .DecoderStats ;_bbgc *_ba .DecoderStats ;_cdfe *_ba .DecoderStats ;_cegce *_ba .DecoderStats ;_abge *_ba .DecoderStats ;_cfgb *_ba .DecoderStats ;_ebbe *_ba .DecoderStats ;_edbd int8 ;_dfcb *_adg .FixedSizeTable ;Header *Header ;_ffgad _adg .Tabler ;_bgc _adg .Tabler ;_fgbbb _adg .Tabler ;_fbgg _adg .Tabler ;_beea _adg .Tabler ;_aeac _adg .Tabler ;_ggeb _adg .Tabler ;_cafe _adg .Tabler ;_cbgb ,_aafd map[int ]int ;_ceeb []int ;_eggf *_af .Points ;_fabaa *_af .Bitmaps ;_eefd *_eb .IntSlice ;_feaaf ,_fcfdg int ;_fafg *_af .Boxes ;};func (_fada *PatternDictionary )readGrayMax ()error {_bedac ,_ecac :=_fada ._cbeg .ReadBits (32);if _ecac !=nil {return _ecac ;};_fada .GrayMax =uint32 (_bedac &_a .MaxUint32 );return nil ;};func (_gbbba *PatternDictionary )Init (h *Header ,r _f .StreamReader )error {_gbbba ._cbeg =r ;return _gbbba .parseHeader ();};func (_dgf *Header )GetSegmentData ()(Segmenter ,error ){var _fgfc Segmenter ;if _dgf .SegmentData !=nil {_fgfc =_dgf .SegmentData ;};if _fgfc ==nil {_fbed ,_cac :=_eda [_dgf .Type ];if !_cac {return nil ,_ad .Errorf ("\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0073\u002f\u0020\u0025\u0064\u0020\u0063\u0072e\u0061t\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u002e\u0020",_dgf .Type ,_dgf .Type );};_fgfc =_fbed ();_baf .Log .Trace ("\u005b\u0053E\u0047\u004d\u0045\u004e\u0054-\u0048\u0045\u0041\u0044\u0045R\u005d\u005b\u0023\u0025\u0064\u005d\u0020\u0047\u0065\u0074\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0044\u0061\u0074\u0061\u0020\u0061\u0074\u0020\u004f\u0066\u0066\u0073\u0065\u0074\u003a\u0020\u0025\u0030\u0034\u0058",_dgf .SegmentNumber ,_dgf .SegmentDataStartOffset );_eeg ,_ggef :=_dgf .subInputReader ();if _ggef !=nil {return nil ,_ggef ;};if _bbbdc :=_fgfc .Init (_dgf ,_eeg );_bbbdc !=nil {_baf .Log .Debug ("\u0049\u006e\u0069\u0074 \u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076 \u0066o\u0072\u0020\u0074\u0079\u0070\u0065\u003a \u0025\u0054",_bbbdc ,_fgfc );return nil ,_bbbdc ;};_dgf .SegmentData =_fgfc ;};return _fgfc ,nil ;};func (_bcbe *TableSegment )HtOOB ()int32 {return _bcbe ._cgga };var _ SegmentEncoder =&GenericRegion {};func (_abacg *PageInformationSegment )parseHeader ()(_bdcd error ){_baf .Log .Trace ("\u005b\u0050\u0061\u0067\u0065I\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065\u0067m\u0065\u006e\u0074\u005d\u0020\u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u002e\u002e");defer func (){var _bfae ="[\u0050\u0061\u0067\u0065\u0049\u006e\u0066\u006f\u0072m\u0061\u0074\u0069\u006f\u006e\u0053\u0065gm\u0065\u006e\u0074\u005d \u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065ad\u0065\u0072 \u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064";if _bdcd !=nil {_bfae +="\u0020\u0077\u0069t\u0068\u0020\u0065\u0072\u0072\u006f\u0072\u0020"+_bdcd .Error ();}else {_bfae +="\u0020\u0073\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079";};_baf .Log .Trace (_bfae );}();if _bdcd =_abacg .readWidthAndHeight ();_bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .readResolution ();_bdcd !=nil {return _bdcd ;};_ ,_bdcd =_abacg ._feaf .ReadBit ();if _bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .readCombinationOperatorOverrideAllowed ();_bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .readRequiresAuxiliaryBuffer ();_bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .readCombinationOperator ();_bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .readDefaultPixelValue ();_bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .readContainsRefinement ();_bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .readIsLossless ();_bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .readIsStriped ();_bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .readMaxStripeSize ();_bdcd !=nil {return _bdcd ;};if _bdcd =_abacg .checkInput ();_bdcd !=nil {return _bdcd ;};_baf .Log .Trace ("\u0025\u0073",_abacg );return nil ;};func (_fagcf *TextRegion )setParameters (_ggeg *_ba .Decoder ,_adde ,_bccg bool ,_geee ,_gfafg uint32 ,_efcg uint32 ,_bbc int8 ,_cdbg uint32 ,_babg int8 ,_cabbd _af .CombinationOperator ,_cebga int8 ,_cfdbbg int16 ,_gefd ,_dgcg ,_gaec ,_fabcg ,_ggffc ,_befd ,_ffgb ,_gfdb ,_debb ,_eage int8 ,_cgfd ,_cbea []int8 ,_gaaef []*_af .Bitmap ,_ddabc int8 ){_fagcf ._adcb =_ggeg ;_fagcf .IsHuffmanEncoded =_adde ;_fagcf .UseRefinement =_bccg ;_fagcf .RegionInfo .BitmapWidth =_geee ;_fagcf .RegionInfo .BitmapHeight =_gfafg ;_fagcf .NumberOfSymbolInstances =_efcg ;_fagcf .SbStrips =_bbc ;_fagcf .NumberOfSymbols =_cdbg ;_fagcf .DefaultPixel =_babg ;_fagcf .CombinationOperator =_cabbd ;_fagcf .IsTransposed =_cebga ;_fagcf .ReferenceCorner =_cfdbbg ;_fagcf .SbdsOffset =_gefd ;_fagcf .SbHuffFS =_dgcg ;_fagcf .SbHuffDS =_gaec ;_fagcf .SbHuffDT =_fabcg ;_fagcf .SbHuffRDWidth =_ggffc ;_fagcf .SbHuffRDHeight =_befd ;_fagcf .SbHuffRDX =_ffgb ;_fagcf .SbHuffRDY =_gfdb ;_fagcf .SbrTemplate =_eage ;_fagcf .SbrATX =_cgfd ;_fagcf .SbrATY =_cbea ;_fagcf .Symbols =_gaaef ;_fagcf ._edbd =_ddabc ;};func (_gacb *GenericRefinementRegion )GetRegionBitmap ()(*_af .Bitmap ,error ){var _ae error ;_baf .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0047\u0065\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006d\u0061\u0070\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");defer func (){if _ae !=nil {_baf .Log .Trace ("[\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052E\u0046\u002d\u0052\u0045\u0047\u0049\u004fN]\u0020\u0047\u0065\u0074R\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006dap\u0020\u0066a\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_ae );}else {_baf .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0047\u0065\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006d\u0061\u0070\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u002e");};}();if _gacb .RegionBitmap !=nil {return _gacb .RegionBitmap ,nil ;};_bc :=0;if _gacb .ReferenceBitmap ==nil {_gacb .ReferenceBitmap ,_ae =_gacb .getGrReference ();if _ae !=nil {return nil ,_ae ;};};if _gacb ._gac ==nil {_gacb ._gac ,_ae =_ba .New (_gacb ._ag );if _ae !=nil {return nil ,_ae ;};};if _gacb ._afb ==nil {_gacb ._afb =_ba .NewStats (8192,1);};_gacb .RegionBitmap =_af .New (int (_gacb .RegionInfo .BitmapWidth ),int (_gacb .RegionInfo .BitmapHeight ));if _gacb .TemplateID ==0{if _ae =_gacb .updateOverride ();_ae !=nil {return nil ,_ae ;};};_eba :=(_gacb .RegionBitmap .Width +7)&-8;var _bad int ;if _gacb .IsTPGROn {_bad =int (-_gacb .ReferenceDY )*_gacb .ReferenceBitmap .RowStride ;};_agf :=_bad +1;for _abg :=0;_abg < _gacb .RegionBitmap .Height ;_abg ++{if _gacb .IsTPGROn {_cc ,_ac :=_gacb .decodeSLTP ();if _ac !=nil {return nil ,_ac ;};_bc ^=_cc ;};if _bc ==0{_ae =_gacb .decodeOptimized (_abg ,_gacb .RegionBitmap .Width ,_gacb .RegionBitmap .RowStride ,_gacb .ReferenceBitmap .RowStride ,_eba ,_bad ,_agf );if _ae !=nil {return nil ,_ae ;};}else {_ae =_gacb .decodeTypicalPredictedLine (_abg ,_gacb .RegionBitmap .Width ,_gacb .RegionBitmap .RowStride ,_gacb .ReferenceBitmap .RowStride ,_eba ,_bad );if _ae !=nil {return nil ,_ae ;};};};return _gacb .RegionBitmap ,nil ;};func (_fd *GenericRefinementRegion )GetRegionInfo ()*RegionSegment {return _fd .RegionInfo };func (_badc *TextRegion )initSymbols ()error {const _bbbb ="i\u006e\u0069\u0074\u0053\u0079\u006d\u0062\u006f\u006c\u0073";for _ ,_fdfc :=range _badc .Header .RTSegments {if _fdfc ==nil {return _ab .Error (_bbbb ,"\u006e\u0069\u006c\u0020\u0073\u0065\u0067\u006de\u006e\u0074\u0020pr\u006f\u0076\u0069\u0064\u0065\u0064 \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0074\u0065\u0078\u0074\u0020\u0072\u0065g\u0069\u006f\u006e\u0020\u0053\u0079\u006d\u0062o\u006c\u0073");};if _fdfc .Type ==0{_agbe ,_fded :=_fdfc .GetSegmentData ();if _fded !=nil {return _ab .Wrap (_fded ,_bbbb ,"");};_fcdf ,_acda :=_agbe .(*SymbolDictionary );if !_acda {return _ab .Error (_bbbb ,"\u0072e\u0066\u0065r\u0072\u0065\u0064 \u0054\u006f\u0020\u0053\u0065\u0067\u006de\u006e\u0074\u0020\u0069\u0073\u0020n\u006f\u0074\u0020\u0061\u0020\u0053\u0079\u006d\u0062\u006f\u006cD\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_fcdf ._fdff =_badc ._cegce ;_acce ,_fded :=_fcdf .GetDictionary ();if _fded !=nil {return _ab .Wrap (_fded ,_bbbb ,"");};_badc .Symbols =append (_badc .Symbols ,_acce ...);};};_badc .NumberOfSymbols =uint32 (len (_badc .Symbols ));return nil ;};func (_gda *GenericRegion )overrideAtTemplate3 (_gcde ,_afcb ,_cgd ,_cgegd ,_abaf int )int {_gcde &=0x3EF;if _gda .GBAtY [0]==0&&_gda .GBAtX [0]>=-int8 (_abaf ){_gcde |=(_cgegd >>uint (7-(int8 (_abaf )+_gda .GBAtX [0]))&0x1)<<4;}else {_gcde |=int (_gda .getPixel (_afcb +int (_gda .GBAtX [0]),_cgd +int (_gda .GBAtY [0])))<<4;};return _gcde ;};func (_bead *PageInformationSegment )checkInput ()error {if _bead .PageBMHeight ==_a .MaxInt32 {if !_bead .IsStripe {_baf .Log .Debug ("P\u0061\u0067\u0065\u0049\u006e\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0053\u0065\u0067me\u006e\u0074\u002e\u0049s\u0053\u0074\u0072\u0069\u0070\u0065\u0020\u0073\u0068ou\u006c\u0064 \u0062\u0065\u0020\u0074\u0072\u0075\u0065\u002e");};};return nil ;};func (_bca *GenericRegion )setParameters (_gbed bool ,_ebe ,_gge int64 ,_ded ,_feae uint32 ){_bca .IsMMREncoded =_gbed ;_bca .DataOffset =_ebe ;_bca .DataLength =_gge ;_bca .RegionSegment .BitmapHeight =_ded ;_bca .RegionSegment .BitmapWidth =_feae ;_bca ._bebg =nil ;_bca .Bitmap =nil ;};func (_aaad *TextRegion )GetRegionInfo ()*RegionSegment {return _aaad .RegionInfo };func (_ebagg *SymbolDictionary )GetDictionary ()([]*_af .Bitmap ,error ){_baf .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c-\u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");defer func (){_baf .Log .Trace ("\u005b\u0053\u0059M\u0042\u004f\u004c\u002d\u0044\u0049\u0043\u0054\u0049\u004f\u004e\u0041\u0052\u0059\u005d\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064");_baf .Log .Trace ("\u005b\u0053Y\u004d\u0042\u004f\u004c\u002dD\u0049\u0043\u0054\u0049\u004fN\u0041\u0052\u0059\u005d\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0020\u000a\u0045\u0078\u003a\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u000a\u006e\u0065\u0077\u003a\u0027\u0025\u0073\u0027",_ebagg ._ggfd ,_ebagg ._bfaa );}();if _ebagg ._ggfd ==nil {var _ccga error ;if _ebagg .UseRefinementAggregation {_ebagg ._gbba =_ebagg .getSbSymCodeLen ();};if !_ebagg .IsHuffmanEncoded {if _ccga =_ebagg .setCodingStatistics ();_ccga !=nil {return nil ,_ccga ;};};_ebagg ._bfaa =make ([]*_af .Bitmap ,_ebagg .NumberOfNewSymbols );var _fdfa []int ;if _ebagg .IsHuffmanEncoded &&!_ebagg .UseRefinementAggregation {_fdfa =make ([]int ,_ebagg .NumberOfNewSymbols );};if _ccga =_ebagg .setSymbolsArray ();_ccga !=nil {return nil ,_ccga ;};var _dadg ,_gegc int64 ;_ebagg ._fbbbb =0;for _ebagg ._fbbbb < _ebagg .NumberOfNewSymbols {_gegc ,_ccga =_ebagg .decodeHeightClassDeltaHeight ();if _ccga !=nil {return nil ,_ccga ;};_dadg +=_gegc ;var _cdfd ,_gbbd uint32 ;_babe :=int64 (_ebagg ._fbbbb );for {var _gfda int64 ;_gfda ,_ccga =_ebagg .decodeDifferenceWidth ();if _ccga !=nil {return nil ,_ccga ;};if _gfda ==int64 (_a .MaxInt64 )||_ebagg ._fbbbb >=_ebagg .NumberOfNewSymbols {break ;};_cdfd +=uint32 (_gfda );_gbbd +=_cdfd ;if !_ebagg .IsHuffmanEncoded ||_ebagg .UseRefinementAggregation {if !_ebagg .UseRefinementAggregation {_ccga =_ebagg .decodeDirectlyThroughGenericRegion (_cdfd ,uint32 (_dadg ));if _ccga !=nil {return nil ,_ccga ;};}else {_ccga =_ebagg .decodeAggregate (_cdfd ,uint32 (_dadg ));if _ccga !=nil {return nil ,_ccga ;};};}else if _ebagg .IsHuffmanEncoded &&!_ebagg .UseRefinementAggregation {_fdfa [_ebagg ._fbbbb ]=int (_cdfd );};_ebagg ._fbbbb ++;};if _ebagg .IsHuffmanEncoded &&!_ebagg .UseRefinementAggregation {var _ecba int64 ;if _ebagg .SdHuffBMSizeSelection ==0{var _ggfda _adg .Tabler ;_ggfda ,_ccga =_adg .GetStandardTable (1);if _ccga !=nil {return nil ,_ccga ;};_ecba ,_ccga =_ggfda .Decode (_ebagg ._caad );if _ccga !=nil {return nil ,_ccga ;};}else {_ecba ,_ccga =_ebagg .huffDecodeBmSize ();if _ccga !=nil {return nil ,_ccga ;};};_ebagg ._caad .Align ();var _cbda *_af .Bitmap ;_cbda ,_ccga =_ebagg .decodeHeightClassCollectiveBitmap (_ecba ,uint32 (_dadg ),_gbbd );if _ccga !=nil {return nil ,_ccga ;};_ccga =_ebagg .decodeHeightClassBitmap (_cbda ,_babe ,int (_dadg ),_fdfa );if _ccga !=nil {return nil ,_ccga ;};};};_egbg ,_ccga :=_ebagg .getToExportFlags ();if _ccga !=nil {return nil ,_ccga ;};_ebagg .setExportedSymbols (_egbg );};return _ebagg ._ggfd ,nil ;};func (_geg *Header )String ()string {_aad :=&_bd .Builder {};_aad .WriteString ("\u000a[\u0053E\u0047\u004d\u0045\u004e\u0054-\u0048\u0045A\u0044\u0045\u0052\u005d\u000a");_aad .WriteString (_ad .Sprintf ("\t\u002d\u0020\u0053\u0065gm\u0065n\u0074\u004e\u0075\u006d\u0062e\u0072\u003a\u0020\u0025\u0076\u000a",_geg .SegmentNumber ));_aad .WriteString (_ad .Sprintf ("\u0009\u002d\u0020T\u0079\u0070\u0065\u003a\u0020\u0025\u0076\u000a",_geg .Type ));_aad .WriteString (_ad .Sprintf ("\u0009-\u0020R\u0065\u0074\u0061\u0069\u006eF\u006c\u0061g\u003a\u0020\u0025\u0076\u000a",_geg .RetainFlag ));_aad .WriteString (_ad .Sprintf ("\u0009\u002d\u0020Pa\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_geg .PageAssociation ));_aad .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0050\u0061\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061\u0074i\u006fn\u0046\u0069\u0065\u006c\u0064\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_geg .PageAssociationFieldSize ));_aad .WriteString ("\u0009-\u0020R\u0054\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u0053\u003a\u000a");for _ ,_eece :=range _geg .RTSNumbers {_aad .WriteString (_ad .Sprintf ("\u0009\t\u002d\u0020\u0025\u0064\u000a",_eece ));};_aad .WriteString (_ad .Sprintf ("\t\u002d \u0048\u0065\u0061\u0064\u0065\u0072\u004c\u0065n\u0067\u0074\u0068\u003a %\u0076\u000a",_geg .HeaderLength ));_aad .WriteString (_ad .Sprintf ("\u0009-\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061L\u0065n\u0067\u0074\u0068\u003a\u0020\u0025\u0076\n",_geg .SegmentDataLength ));_aad .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074D\u0061\u0074\u0061\u0053\u0074\u0061\u0072t\u004f\u0066\u0066\u0073\u0065\u0074\u003a\u0020\u0025\u0076\u000a",_geg .SegmentDataStartOffset ));return _aad .String ();};func (_dgff *RegionSegment )Encode (w _f .BinaryWriter )(_ffea int ,_dfa error ){const _deb ="R\u0065g\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065n\u0074\u002e\u0045\u006eco\u0064\u0065";_ddce :=make ([]byte ,4);_e .BigEndian .PutUint32 (_ddce ,_dgff .BitmapWidth );_ffea ,_dfa =w .Write (_ddce );if _dfa !=nil {return 0,_ab .Wrap (_dfa ,_deb ,"\u0057\u0069\u0064t\u0068");};_e .BigEndian .PutUint32 (_ddce ,_dgff .BitmapHeight );var _ega int ;_ega ,_dfa =w .Write (_ddce );if _dfa !=nil {return 0,_ab .Wrap (_dfa ,_deb ,"\u0048\u0065\u0069\u0067\u0068\u0074");};_ffea +=_ega ;_e .BigEndian .PutUint32 (_ddce ,_dgff .XLocation );_ega ,_dfa =w .Write (_ddce );if _dfa !=nil {return 0,_ab .Wrap (_dfa ,_deb ,"\u0058L\u006f\u0063\u0061\u0074\u0069\u006fn");};_ffea +=_ega ;_e .BigEndian .PutUint32 (_ddce ,_dgff .YLocation );_ega ,_dfa =w .Write (_ddce );if _dfa !=nil {return 0,_ab .Wrap (_dfa ,_deb ,"\u0059L\u006f\u0063\u0061\u0074\u0069\u006fn");};_ffea +=_ega ;if _dfa =w .WriteByte (byte (_dgff .CombinaionOperator )&0x07);_dfa !=nil {return 0,_ab .Wrap (_dfa ,_deb ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};_ffea ++;return _ffea ,nil ;};type RegionSegment struct{_feag _f .StreamReader ;BitmapWidth uint32 ;BitmapHeight uint32 ;XLocation uint32 ;YLocation uint32 ;CombinaionOperator _af .CombinationOperator ;};func (_ff *GenericRefinementRegion )decodeTypicalPredictedLineTemplate1 (_bde ,_fbgd ,_aggd ,_adgf ,_ccg ,_cgb ,_adga ,_cgbg ,_cbb int )(_ddb error ){var (_eac ,_dae int ;_ecfe ,_fa int ;_eg ,_bff int ;_gag byte ;);if _bde > 0{_gag ,_ddb =_ff .RegionBitmap .GetByte (_adga -_aggd );if _ddb !=nil {return ;};_ecfe =int (_gag );};if _cgbg > 0&&_cgbg <=_ff .ReferenceBitmap .Height {_gag ,_ddb =_ff .ReferenceBitmap .GetByte (_cbb -_adgf +_cgb );if _ddb !=nil {return ;};_fa =int (_gag )<<2;};if _cgbg >=0&&_cgbg < _ff .ReferenceBitmap .Height {_gag ,_ddb =_ff .ReferenceBitmap .GetByte (_cbb +_cgb );if _ddb !=nil {return ;};_eg =int (_gag );};if _cgbg > -2&&_cgbg < _ff .ReferenceBitmap .Height -1{_gag ,_ddb =_ff .ReferenceBitmap .GetByte (_cbb +_adgf +_cgb );if _ddb !=nil {return ;};_bff =int (_gag );};_eac =((_ecfe >>5)&0x6)|((_bff >>2)&0x30)|(_eg &0xc0)|(_fa &0x200);_dae =((_bff >>2)&0x70)|(_eg &0xc0)|(_fa &0x700);var _abac int ;for _gfd :=0;_gfd < _ccg ;_gfd =_abac {var (_ebd int ;_fbe int ;);_abac =_gfd +8;if _ebd =_fbgd -_gfd ;_ebd > 8{_ebd =8;};_afba :=_abac < _fbgd ;_gdc :=_abac < _ff .ReferenceBitmap .Width ;_aag :=_cgb +1;if _bde > 0{_gag =0;if _afba {_gag ,_ddb =_ff .RegionBitmap .GetByte (_adga -_aggd +1);if _ddb !=nil {return ;};};_ecfe =(_ecfe <<8)|int (_gag );};if _cgbg > 0&&_cgbg <=_ff .ReferenceBitmap .Height {var _ef int ;if _gdc {_gag ,_ddb =_ff .ReferenceBitmap .GetByte (_cbb -_adgf +_aag );if _ddb !=nil {return ;};_ef =int (_gag )<<2;};_fa =(_fa <<8)|_ef ;};if _cgbg >=0&&_cgbg < _ff .ReferenceBitmap .Height {_gag =0;if _gdc {_gag ,_ddb =_ff .ReferenceBitmap .GetByte (_cbb +_aag );if _ddb !=nil {return ;};};_eg =(_eg <<8)|int (_gag );};if _cgbg > -2&&_cgbg < (_ff .ReferenceBitmap .Height -1){_gag =0;if _gdc {_gag ,_ddb =_ff .ReferenceBitmap .GetByte (_cbb +_adgf +_aag );if _ddb !=nil {return ;};};_bff =(_bff <<8)|int (_gag );};for _ede :=0;_ede < _ebd ;_ede ++{var _fad int ;_dcd :=(_dae >>4)&0x1ff;switch _dcd {case 0x1ff:_fad =1;case 0x00:_fad =0;default:_ff ._afb .SetIndex (int32 (_eac ));_fad ,_ddb =_ff ._gac .DecodeBit (_ff ._afb );if _ddb !=nil {return ;};};_cec :=uint (7-_ede );_fbe |=int (_fad <<_cec );_eac =((_eac &0x0d6)<<1)|_fad |(_ecfe >>_cec +5)&0x002|((_bff >>_cec +2)&0x010)|((_eg >>_cec )&0x040)|((_fa >>_cec )&0x200);_dae =((_dae &0xdb)<<1)|((_bff >>_cec +2)&0x010)|((_eg >>_cec )&0x080)|((_fa >>_cec )&0x400);};_ddb =_ff .RegionBitmap .SetByte (_adga ,byte (_fbe ));if _ddb !=nil {return ;};_adga ++;_cbb ++;};return nil ;};func (_dgag *GenericRegion )parseHeader ()(_fdd error ){_baf .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052I\u0043\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0050\u0061\u0072s\u0069\u006e\u0067\u0048\u0065\u0061\u0064e\u0072\u002e\u002e\u002e");defer func (){if _fdd !=nil {_baf .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0047\u0049\u004f\u004e]\u0020\u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065\u0061\u0064\u0065r\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u0020\u0077\u0069th\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020\u0025\u0076",_fdd );}else {_baf .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049C\u002d\u0052\u0045G\u0049\u004f\u004e]\u0020\u0050a\u0072\u0073\u0069\u006e\u0067\u0048e\u0061de\u0072\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u0020\u0053\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079\u002e\u002e\u002e");};}();var (_afa int ;_cgag uint64 ;);if _fdd =_dgag .RegionSegment .parseHeader ();_fdd !=nil {return _fdd ;};if _ ,_fdd =_dgag ._cfbf .ReadBits (3);_fdd !=nil {return _fdd ;};_afa ,_fdd =_dgag ._cfbf .ReadBit ();if _fdd !=nil {return _fdd ;};if _afa ==1{_dgag .UseExtTemplates =true ;};_afa ,_fdd =_dgag ._cfbf .ReadBit ();if _fdd !=nil {return _fdd ;};if _afa ==1{_dgag .IsTPGDon =true ;};_cgag ,_fdd =_dgag ._cfbf .ReadBits (2);if _fdd !=nil {return _fdd ;};_dgag .GBTemplate =byte (_cgag &0xf);_afa ,_fdd =_dgag ._cfbf .ReadBit ();if _fdd !=nil {return _fdd ;};if _afa ==1{_dgag .IsMMREncoded =true ;};if !_dgag .IsMMREncoded {_gbce :=1;if _dgag .GBTemplate ==0{_gbce =4;if _dgag .UseExtTemplates {_gbce =12;};};if _fdd =_dgag .readGBAtPixels (_gbce );_fdd !=nil {return _fdd ;};};if _fdd =_dgag .computeSegmentDataStructure ();_fdd !=nil {return _fdd ;};_baf .Log .Trace ("\u0025\u0073",_dgag );return nil ;};func (_ggfc *PageInformationSegment )CombinationOperatorOverrideAllowed ()bool {return _ggfc ._gbeb };func (_deg *HalftoneRegion )shiftAndFill (_ebed int )int {_ebed >>=8;if _ebed < 0{_bdce :=int (_a .Log (float64 (_cag (_ebed )))/_a .Log (2));_ddab :=31-_bdce ;for _gcf :=1;_gcf < _ddab ;_gcf ++{_ebed |=1<<uint (31-_gcf );};};return _ebed ;};func (_gcddg *TextRegion )decodeSymInRefSize ()(int64 ,error ){const _bdad ="\u0064e\u0063o\u0064\u0065\u0053\u0079\u006dI\u006e\u0052e\u0066\u0053\u0069\u007a\u0065";if _gcddg .SbHuffRSize ==0{_eecf ,_ceba :=_adg .GetStandardTable (1);if _ceba !=nil {return 0,_ab .Wrap (_ceba ,_bdad ,"");};return _eecf .Decode (_gcddg ._bfeb );};if _gcddg ._cafe ==nil {var (_fcde int ;_fbgdc error ;);if _gcddg .SbHuffFS ==3{_fcde ++;};if _gcddg .SbHuffDS ==3{_fcde ++;};if _gcddg .SbHuffDT ==3{_fcde ++;};if _gcddg .SbHuffRDWidth ==3{_fcde ++;};if _gcddg .SbHuffRDHeight ==3{_fcde ++;};if _gcddg .SbHuffRDX ==3{_fcde ++;};if _gcddg .SbHuffRDY ==3{_fcde ++;};_gcddg ._cafe ,_fbgdc =_gcddg .getUserTable (_fcde );if _fbgdc !=nil {return 0,_ab .Wrap (_fbgdc ,_bdad ,"");};};_cfce ,_cfdbb :=_gcddg ._cafe .Decode (_gcddg ._bfeb );if _cfdbb !=nil {return 0,_ab .Wrap (_cfdbb ,_bdad ,"");};return _cfce ,nil ;};func (_cbaf *TextRegion )decodeDfs ()(int64 ,error ){if _cbaf .IsHuffmanEncoded {if _cbaf .SbHuffFS ==3{if _cbaf ._ffgad ==nil {var _cbgc error ;_cbaf ._ffgad ,_cbgc =_cbaf .getUserTable (0);if _cbgc !=nil {return 0,_cbgc ;};};return _cbaf ._ffgad .Decode (_cbaf ._bfeb );};_cffb ,_dbdd :=_adg .GetStandardTable (6+int (_cbaf .SbHuffFS ));if _dbdd !=nil {return 0,_dbdd ;};return _cffb .Decode (_cbaf ._bfeb );};_ebada ,_ecdg :=_cbaf ._adcb .DecodeInt (_cbaf ._ddfb );if _ecdg !=nil {return 0,_ecdg ;};return int64 (_ebada ),nil ;};type OrganizationType uint8 ;func (_feff *GenericRefinementRegion )String ()string {_abc :=&_bd .Builder {};_abc .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");_abc .WriteString (_feff .RegionInfo .String ()+"\u000a");_abc .WriteString (_ad .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0052\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_feff .IsTPGROn ));_abc .WriteString (_ad .Sprintf ("\u0009-\u0020T\u0065\u006d\u0070\u006c\u0061t\u0065\u0049D\u003a\u0020\u0025\u0076\u000a",_feff .TemplateID ));_abc .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_feff .GrAtX ));_abc .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_feff .GrAtY ));_abc .WriteString (_ad .Sprintf ("\u0009-\u0020R\u0065\u0066\u0065\u0072\u0065n\u0063\u0065D\u0058\u0020\u0025\u0076\u000a",_feff .ReferenceDX ));_abc .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0052ef\u0065\u0072\u0065\u006e\u0063\u0044\u0065\u0059\u003a\u0020\u0025\u0076\u000a",_feff .ReferenceDY ));return _abc .String ();};func (_cebg *PatternDictionary )extractPatterns (_dddgf *_af .Bitmap )error {var _cgbb int ;_efgd :=make ([]*_af .Bitmap ,_cebg .GrayMax +1);for _cgbb <=int (_cebg .GrayMax ){_fgfcb :=int (_cebg .HdpWidth )*_cgbb ;_aaee :=_gg .Rect (_fgfcb ,0,_fgfcb +int (_cebg .HdpWidth ),int (_cebg .HdpHeight ));_faca ,_ecgf :=_af .Extract (_aaee ,_dddgf );if _ecgf !=nil {return _ecgf ;};_efgd [_cgbb ]=_faca ;_cgbb ++;};_cebg .Patterns =_efgd ;return nil ;};func NewGenericRegion (r _f .StreamReader )*GenericRegion {return &GenericRegion {RegionSegment :NewRegionSegment (r ),_cfbf :r };};func (_dfgg *Header )readDataStartOffset (_ddaa _f .StreamReader ,_fagg OrganizationType ){if _fagg ==OSequential {_dfgg .SegmentDataStartOffset =uint64 (_ddaa .StreamPosition ());};};func (_dag *GenericRegion )setOverrideFlag (_feeb int ){_dag .GBAtOverride [_feeb ]=true ;_dag ._cccgf =true ;};func (_gbdg *SymbolDictionary )decodeHeightClassCollectiveBitmap (_aaaf int64 ,_egfba ,_bdab uint32 )(*_af .Bitmap ,error ){if _aaaf ==0{_ebfbd :=_af .New (int (_bdab ),int (_egfba ));var (_baab byte ;_dgagf error ;);for _gaeac :=0;_gaeac < len (_ebfbd .Data );_gaeac ++{_baab ,_dgagf =_gbdg ._caad .ReadByte ();if _dgagf !=nil {return nil ,_dgagf ;};if _dgagf =_ebfbd .SetByte (_gaeac ,_baab );_dgagf !=nil {return nil ,_dgagf ;};};return _ebfbd ,nil ;};if _gbdg ._cbca ==nil {_gbdg ._cbca =NewGenericRegion (_gbdg ._caad );};_gbdg ._cbca .setParameters (true ,_gbdg ._caad .StreamPosition (),_aaaf ,_egfba ,_bdab );_fddd ,_adcg :=_gbdg ._cbca .GetRegionBitmap ();if _adcg !=nil {return nil ,_adcg ;};return _fddd ,nil ;};func (_ffdd *SymbolDictionary )retrieveImportSymbols ()error {for _ ,_cbcd :=range _ffdd .Header .RTSegments {if _cbcd .Type ==0{_ecea ,_bddb :=_cbcd .GetSegmentData ();if _bddb !=nil {return _bddb ;};_dbfab ,_ggce :=_ecea .(*SymbolDictionary );if !_ggce {return _ad .Errorf ("\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0044\u0061\u0074a\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0053\u0079\u006d\u0062\u006f\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u003a\u0020%\u0054",_ecea );};_eeaa ,_bddb :=_dbfab .GetDictionary ();if _bddb !=nil {return _ad .Errorf ("\u0072\u0065\u006c\u0061\u0074\u0065\u0064 \u0073\u0065\u0067m\u0065\u006e\u0074 \u0077\u0069t\u0068\u0020\u0069\u006e\u0064\u0065x\u003a %\u0064\u0020\u0067\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0073",_cbcd .SegmentNumber ,_bddb .Error ());};_ffdd ._agca =append (_ffdd ._agca ,_eeaa ...);_ffdd ._bdf +=_dbfab .NumberOfExportedSymbols ;};};return nil ;};var (_ Regioner =&TextRegion {};_ Segmenter =&TextRegion {};);func (_fdfdg *HalftoneRegion )grayScaleDecoding (_ebaa int )([][]int ,error ){var (_efbc []int8 ;_dedf []int8 ;);if !_fdfdg .IsMMREncoded {_efbc =make ([]int8 ,4);_dedf =make ([]int8 ,4);if _fdfdg .HTemplate <=1{_efbc [0]=3;}else if _fdfdg .HTemplate >=2{_efbc [0]=2;};_dedf [0]=-1;_efbc [1]=-3;_dedf [1]=-1;_efbc [2]=2;_dedf [2]=-2;_efbc [3]=-2;_dedf [3]=-2;};_dea :=make ([]*_af .Bitmap ,_ebaa );_fcfg :=NewGenericRegion (_fdfdg ._adbg );_fcfg .setParametersMMR (_fdfdg .IsMMREncoded ,_fdfdg .DataOffset ,_fdfdg .DataLength ,_fdfdg .HGridHeight ,_fdfdg .HGridWidth ,_fdfdg .HTemplate ,false ,_fdfdg .HSkipEnabled ,_efbc ,_dedf );_fadf :=_ebaa -1;var _ffda error ;_dea [_fadf ],_ffda =_fcfg .GetRegionBitmap ();if _ffda !=nil {return nil ,_ffda ;};for _fadf > 0{_fadf --;_fcfg .Bitmap =nil ;_dea [_fadf ],_ffda =_fcfg .GetRegionBitmap ();if _ffda !=nil {return nil ,_ffda ;};if _ffda =_fdfdg .combineGrayscalePlanes (_dea ,_fadf );_ffda !=nil {return nil ,_ffda ;};};return _fdfdg .computeGrayScalePlanes (_dea ,_ebaa );};func (_cbbf *TextRegion )createRegionBitmap ()error {_cbbf .RegionBitmap =_af .New (int (_cbbf .RegionInfo .BitmapWidth ),int (_cbbf .RegionInfo .BitmapHeight ));if _cbbf .DefaultPixel !=0{_cbbf .RegionBitmap .SetDefaultPixel ();};return nil ;};func (_bggdb *SymbolDictionary )setExportedSymbols (_aggae []int ){for _eaga :=uint32 (0);_eaga < _bggdb ._bdf +_bggdb .NumberOfNewSymbols ;_eaga ++{if _aggae [_eaga ]==1{var _dbaaf *_af .Bitmap ;if _eaga < _bggdb ._bdf {_dbaaf =_bggdb ._agca [_eaga ];}else {_dbaaf =_bggdb ._bfaa [_eaga -_bggdb ._bdf ];};_baf .Log .Trace ("\u005bS\u0059\u004dB\u004f\u004c\u002d\u0044I\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u0020\u0041\u0064\u0064 E\u0078\u0070\u006fr\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c:\u0020\u0027%\u0073\u0027",_dbaaf );_bggdb ._ggfd =append (_bggdb ._ggfd ,_dbaaf );};};};func (_ffdbc *TextRegion )readRegionFlags ()error {var (_dfegd int ;_affg uint64 ;_badbd error ;);_dfegd ,_badbd =_ffdbc ._bfeb .ReadBit ();if _badbd !=nil {return _badbd ;};_ffdbc .SbrTemplate =int8 (_dfegd );_affg ,_badbd =_ffdbc ._bfeb .ReadBits (5);if _badbd !=nil {return _badbd ;};_ffdbc .SbdsOffset =int8 (_affg );if _ffdbc .SbdsOffset > 0x0f{_ffdbc .SbdsOffset -=0x20;};_dfegd ,_badbd =_ffdbc ._bfeb .ReadBit ();if _badbd !=nil {return _badbd ;};_ffdbc .DefaultPixel =int8 (_dfegd );_affg ,_badbd =_ffdbc ._bfeb .ReadBits (2);if _badbd !=nil {return _badbd ;};_ffdbc .CombinationOperator =_af .CombinationOperator (int (_affg )&0x3);_dfegd ,_badbd =_ffdbc ._bfeb .ReadBit ();if _badbd !=nil {return _badbd ;};_ffdbc .IsTransposed =int8 (_dfegd );_affg ,_badbd =_ffdbc ._bfeb .ReadBits (2);if _badbd !=nil {return _badbd ;};_ffdbc .ReferenceCorner =int16 (_affg )&0x3;_affg ,_badbd =_ffdbc ._bfeb .ReadBits (2);if _badbd !=nil {return _badbd ;};_ffdbc .LogSBStrips =int16 (_affg )&0x3;_ffdbc .SbStrips =1<<uint (_ffdbc .LogSBStrips );_dfegd ,_badbd =_ffdbc ._bfeb .ReadBit ();if _badbd !=nil {return _badbd ;};if _dfegd ==1{_ffdbc .UseRefinement =true ;};_dfegd ,_badbd =_ffdbc ._bfeb .ReadBit ();if _badbd !=nil {return _badbd ;};if _dfegd ==1{_ffdbc .IsHuffmanEncoded =true ;};return nil ;};func (_eccda *SymbolDictionary )setInSyms ()error {if _eccda .Header .RTSegments !=nil {return _eccda .retrieveImportSymbols ();};_eccda ._agca =make ([]*_af .Bitmap ,0);return nil ;};func (_acgd *PageInformationSegment )readMaxStripeSize ()error {_cea ,_dbg :=_acgd ._feaf .ReadBits (15);if _dbg !=nil {return _dbg ;};_acgd .MaxStripeSize =uint16 (_cea &_a .MaxUint16 );return nil ;};func (_dgdf *PageInformationSegment )readRequiresAuxiliaryBuffer ()error {_eeaf ,_gabd :=_dgdf ._feaf .ReadBit ();if _gabd !=nil {return _gabd ;};if _eeaf ==1{_dgdf ._gcb =true ;};return nil ;};func (_cega *SymbolDictionary )decodeNewSymbols (_fcfde ,_fcee uint32 ,_adab *_af .Bitmap ,_dgcb ,_fecfe int32 )error {if _cega ._edc ==nil {_cega ._edc =_gbb (_cega ._caad ,nil );if _cega ._aafg ==nil {var _caef error ;_cega ._aafg ,_caef =_ba .New (_cega ._caad );if _caef !=nil {return _caef ;};};if _cega ._bddc ==nil {_cega ._bddc =_ba .NewStats (65536,1);};};_cega ._edc .setParameters (_cega ._bddc ,_cega ._aafg ,_cega .SdrTemplate ,_fcfde ,_fcee ,_adab ,_dgcb ,_fecfe ,false ,_cega .SdrATX ,_cega .SdrATY );return _cega .addSymbol (_cega ._edc );};func (_fae *GenericRegion )copyLineAbove (_aggf int )error {_fee :=_aggf *_fae .Bitmap .RowStride ;_fge :=_fee -_fae .Bitmap .RowStride ;for _fcg :=0;_fcg < _fae .Bitmap .RowStride ;_fcg ++{_fbf ,_cgad :=_fae .Bitmap .GetByte (_fge );if _cgad !=nil {return _cgad ;};_fge ++;if _cgad =_fae .Bitmap .SetByte (_fee ,_fbf );_cgad !=nil {return _cgad ;};_fee ++;};return nil ;};func (_acag *SymbolDictionary )readRefinementAtPixels (_dbfd int )error {_acag .SdrATX =make ([]int8 ,_dbfd );_acag .SdrATY =make ([]int8 ,_dbfd );var (_cgbf byte ;_feee error ;);for _daf :=0;_daf < _dbfd ;_daf ++{_cgbf ,_feee =_acag ._caad .ReadByte ();if _feee !=nil {return _feee ;};_acag .SdrATX [_daf ]=int8 (_cgbf );_cgbf ,_feee =_acag ._caad .ReadByte ();if _feee !=nil {return _feee ;};_acag .SdrATY [_daf ]=int8 (_cgbf );};return nil ;};func (_ffge *HalftoneRegion )computeGrayScalePlanes (_cdag []*_af .Bitmap ,_fggc int )([][]int ,error ){_affa :=make ([][]int ,_ffge .HGridHeight );for _ecg :=0;_ecg < len (_affa );_ecg ++{_affa [_ecg ]=make ([]int ,_ffge .HGridWidth );};for _ffef :=0;_ffef < int (_ffge .HGridHeight );_ffef ++{for _cded :=0;_cded < int (_ffge .HGridWidth );_cded +=8{var _ddc int ;if _bee :=int (_ffge .HGridWidth )-_cded ;_bee > 8{_ddc =8;}else {_ddc =_bee ;};_cfcg :=_cdag [0].GetByteIndex (_cded ,_ffef );for _gde :=0;_gde < _ddc ;_gde ++{_eeeb :=_gde +_cded ;_affa [_ffef ][_eeeb ]=0;for _adbgf :=0;_adbgf < _fggc ;_adbgf ++{_gggd ,_efdf :=_cdag [_adbgf ].GetByte (_cfcg );if _efdf !=nil {return nil ,_efdf ;};_gbfd :=_gggd >>uint (7-_eeeb &7);_aggg :=_gbfd &1;_dfga :=1<<uint (_adbgf );_deddd :=int (_aggg )*_dfga ;_affa [_ffef ][_eeeb ]+=_deddd ;};};};};return _affa ,nil ;};func (_fffg *TextRegion )symbolIDCodeLengths ()error {var (_ggfcd []*_adg .Code ;_gabde uint64 ;_abfc _adg .Tabler ;_gbaa error ;);for _bcgc :=0;_bcgc < 35;_bcgc ++{_gabde ,_gbaa =_fffg ._bfeb .ReadBits (4);if _gbaa !=nil {return _gbaa ;};_egab :=int (_gabde &0xf);if _egab > 0{_ggfcd =append (_ggfcd ,_adg .NewCode (int32 (_egab ),0,int32 (_bcgc ),false ));};};_abfc ,_gbaa =_adg .NewFixedSizeTable (_ggfcd );if _gbaa !=nil {return _gbaa ;};var (_eafa int64 ;_efcc uint32 ;_gadg []*_adg .Code ;_gcafd int64 ;);for _efcc < _fffg .NumberOfSymbols {_gcafd ,_gbaa =_abfc .Decode (_fffg ._bfeb );if _gbaa !=nil {return _gbaa ;};if _gcafd < 32{if _gcafd > 0{_gadg =append (_gadg ,_adg .NewCode (int32 (_gcafd ),0,int32 (_efcc ),false ));};_eafa =_gcafd ;_efcc ++;}else {var _bbeb ,_bdbab int64 ;switch _gcafd {case 32:_gabde ,_gbaa =_fffg ._bfeb .ReadBits (2);if _gbaa !=nil {return _gbaa ;};_bbeb =3+int64 (_gabde );if _efcc > 0{_bdbab =_eafa ;};case 33:_gabde ,_gbaa =_fffg ._bfeb .ReadBits (3);if _gbaa !=nil {return _gbaa ;};_bbeb =3+int64 (_gabde );case 34:_gabde ,_gbaa =_fffg ._bfeb .ReadBits (7);if _gbaa !=nil {return _gbaa ;};_bbeb =11+int64 (_gabde );};for _aeff :=0;_aeff < int (_bbeb );_aeff ++{if _bdbab > 0{_gadg =append (_gadg ,_adg .NewCode (int32 (_bdbab ),0,int32 (_efcc ),false ));};_efcc ++;};};};_fffg ._bfeb .Align ();_fffg ._dfcb ,_gbaa =_adg .NewFixedSizeTable (_gadg );return _gbaa ;};func (_cggg *GenericRegion )setParametersMMR (_bafcd bool ,_bage ,_fbge int64 ,_gdfa ,_fgcc uint32 ,_dedd byte ,_dbfc ,_gaea bool ,_cee ,_ebg []int8 ){_cggg .DataOffset =_bage ;_cggg .DataLength =_fbge ;_cggg .RegionSegment =&RegionSegment {};_cggg .RegionSegment .BitmapHeight =_gdfa ;_cggg .RegionSegment .BitmapWidth =_fgcc ;_cggg .GBTemplate =_dedd ;_cggg .IsMMREncoded =_bafcd ;_cggg .IsTPGDon =_dbfc ;_cggg .GBAtX =_cee ;_cggg .GBAtY =_ebg ;};func (_fdcf *RegionSegment )String ()string {_fca :=&_bd .Builder {};_fca .WriteString ("\u0009[\u0052E\u0047\u0049\u004f\u004e\u0020S\u0045\u0047M\u0045\u004e\u0054\u005d\u000a");_fca .WriteString (_ad .Sprintf ("\t\u0009\u002d\u0020\u0042\u0069\u0074m\u0061\u0070\u0020\u0028\u0077\u0069d\u0074\u0068\u002c\u0020\u0068\u0065\u0069g\u0068\u0074\u0029\u0020\u005b\u0025\u0064\u0078\u0025\u0064]\u000a",_fdcf .BitmapWidth ,_fdcf .BitmapHeight ));_fca .WriteString (_ad .Sprintf ("\u0009\u0009\u002d\u0020L\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0028\u0078,\u0079)\u003a\u0020\u005b\u0025\u0064\u002c\u0025d\u005d\u000a",_fdcf .XLocation ,_fdcf .YLocation ));_fca .WriteString (_ad .Sprintf ("\t\u0009\u002d\u0020\u0043\u006f\u006db\u0069\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070e\u0072\u0061\u0074o\u0072:\u0020\u0025\u0073",_fdcf .CombinaionOperator ));return _fca .String ();};func (_dfd *GenericRegion )getPixel (_eag ,_fdgf int )int8 {if _eag < 0||_eag >=_dfd .Bitmap .Width {return 0;};if _fdgf < 0||_fdgf >=_dfd .Bitmap .Height {return 0;};if _dfd .Bitmap .GetPixel (_eag ,_fdgf ){return 1;};return 0;};func (_fcd *GenericRegion )overrideAtTemplate2 (_cabb ,_dfe ,_fbd ,_fcf ,_fdad int )int {_cabb &=0x3FB;if _fcd .GBAtY [0]==0&&_fcd .GBAtX [0]>=-int8 (_fdad ){_cabb |=(_fcf >>uint (7-(int8 (_fdad )+_fcd .GBAtX [0]))&0x1)<<2;}else {_cabb |=int (_fcd .getPixel (_dfe +int (_fcd .GBAtX [0]),_fbd +int (_fcd .GBAtY [0])))<<2;};return _cabb ;};func (_fggb *TextRegion )checkInput ()error {const _cebgb ="\u0063\u0068\u0065\u0063\u006b\u0049\u006e\u0070\u0075\u0074";if !_fggb .UseRefinement {if _fggb .SbrTemplate !=0{_baf .Log .Debug ("\u0053\u0062\u0072Te\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_fggb .SbrTemplate =0;};};if _fggb .SbHuffFS ==2||_fggb .SbHuffRDWidth ==2||_fggb .SbHuffRDHeight ==2||_fggb .SbHuffRDX ==2||_fggb .SbHuffRDY ==2{return _ab .Error (_cebgb ,"h\u0075\u0066\u0066\u006d\u0061\u006e \u0066\u006c\u0061\u0067\u0020\u0076a\u006c\u0075\u0065\u0020\u0069\u0073\u0020n\u006f\u0074\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074e\u0064");};if !_fggb .UseRefinement {if _fggb .SbHuffRSize !=0{_baf .Log .Debug ("\u0053\u0062\u0048uf\u0066\u0052\u0053\u0069\u007a\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_fggb .SbHuffRSize =0;};if _fggb .SbHuffRDY !=0{_baf .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044Y\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");_fggb .SbHuffRDY =0;};if _fggb .SbHuffRDX !=0{_baf .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044X\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");_fggb .SbHuffRDX =0;};if _fggb .SbHuffRDWidth !=0{_baf .Log .Debug ("\u0053b\u0048\u0075\u0066\u0066R\u0044\u0057\u0069\u0064\u0074h\u0020s\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u00200");_fggb .SbHuffRDWidth =0;};if _fggb .SbHuffRDHeight !=0{_baf .Log .Debug ("\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069g\u0068\u0074\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020b\u0065\u0020\u0030");_fggb .SbHuffRDHeight =0;};};return nil ;};func (_bfdcb *PageInformationSegment )readCombinationOperator ()error {_eabga ,_gef :=_bfdcb ._feaf .ReadBits (2);if _gef !=nil {return _gef ;};_bfdcb ._fcceb =_af .CombinationOperator (int (_eabga ));return nil ;};func (_ggbab *SymbolDictionary )encodeFlags (_agged _f .BinaryWriter )(_edaf int ,_cccba error ){const _afbda ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _cccba =_agged .SkipBits (3);_cccba !=nil {return 0,_ab .Wrap (_cccba ,_afbda ,"\u0065\u006d\u0070\u0074\u0079\u0020\u0062\u0069\u0074\u0073");};var _caagc int ;if _ggbab .SdrTemplate > 0{_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"s\u0064\u0072\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_caagc =0;if _ggbab .SdTemplate > 1{_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0073\u0064\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_caagc =0;if _ggbab .SdTemplate ==1||_ggbab .SdTemplate ==3{_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0073\u0064\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_caagc =0;if _ggbab ._edfe {_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0063\u006f\u0064in\u0067\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0065\u0064");};_caagc =0;if _ggbab ._dacf {_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0063\u006f\u0064\u0069ng\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0075\u0073\u0065\u0064");};_caagc =0;if _ggbab .SdHuffAggInstanceSelection {_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0073\u0064\u0068\u0075\u0066\u0066\u0061\u0067\u0067\u0069\u006e\u0073\u0074");};_caagc =int (_ggbab .SdHuffBMSizeSelection );if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0073\u0064\u0068u\u0066\u0066\u0062\u006d\u0073\u0069\u007a\u0065");};_caagc =0;if _ggbab .SdHuffDecodeWidthSelection > 1{_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"s\u0064\u0068\u0075\u0066\u0066\u0077\u0069\u0064\u0074\u0068");};_caagc =0;switch _ggbab .SdHuffDecodeWidthSelection {case 1,3:_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"s\u0064\u0068\u0075\u0066\u0066\u0077\u0069\u0064\u0074\u0068");};_caagc =0;if _ggbab .SdHuffDecodeHeightSelection > 1{_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0073\u0064\u0068u\u0066\u0066\u0068\u0065\u0069\u0067\u0068\u0074");};_caagc =0;switch _ggbab .SdHuffDecodeHeightSelection {case 1,3:_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0073\u0064\u0068u\u0066\u0066\u0068\u0065\u0069\u0067\u0068\u0074");};_caagc =0;if _ggbab .UseRefinementAggregation {_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0073\u0064\u0072\u0065\u0066\u0061\u0067\u0067");};_caagc =0;if _ggbab .IsHuffmanEncoded {_caagc =1;};if _cccba =_agged .WriteBit (_caagc );_cccba !=nil {return _edaf ,_ab .Wrap (_cccba ,_afbda ,"\u0073\u0064\u0068\u0075\u0066\u0066");};return 2,nil ;};func (_dgdg *SymbolDictionary )setRefinementAtPixels ()error {if !_dgdg .UseRefinementAggregation ||_dgdg .SdrTemplate !=0{return nil ;};if _ecbd :=_dgdg .readRefinementAtPixels (2);_ecbd !=nil {return _ecbd ;};return nil ;};func (_cbcgb *TableSegment )HtHigh ()int32 {return _cbcgb ._afga };func (_beac *TextRegion )decodeRdh ()(int64 ,error ){const _gfa ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064h";if _beac .IsHuffmanEncoded {if _beac .SbHuffRDHeight ==3{if _beac ._beea ==nil {var (_efba int ;_dcf error ;);if _beac .SbHuffFS ==3{_efba ++;};if _beac .SbHuffDS ==3{_efba ++;};if _beac .SbHuffDT ==3{_efba ++;};if _beac .SbHuffRDWidth ==3{_efba ++;};_beac ._beea ,_dcf =_beac .getUserTable (_efba );if _dcf !=nil {return 0,_ab .Wrap (_dcf ,_gfa ,"");};};return _beac ._beea .Decode (_beac ._bfeb );};_cggab ,_gbec :=_adg .GetStandardTable (14+int (_beac .SbHuffRDHeight ));if _gbec !=nil {return 0,_ab .Wrap (_gbec ,_gfa ,"");};return _cggab .Decode (_beac ._bfeb );};_aeed ,_edea :=_beac ._adcb .DecodeInt (_beac ._cdfe );if _edea !=nil {return 0,_ab .Wrap (_edea ,_gfa ,"");};return int64 (_aeed ),nil ;};type PatternDictionary struct{_cbeg _f .StreamReader ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;GBAtX []int8 ;GBAtY []int8 ;IsMMREncoded bool ;HDTemplate byte ;HdpWidth byte ;HdpHeight byte ;Patterns []*_af .Bitmap ;GrayMax uint32 ;};func (_effd *TextRegion )String ()string {_gcea :=&_bd .Builder {};_gcea .WriteString ("\u000a[\u0054E\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u000a");_gcea .WriteString (_effd .RegionInfo .String ()+"\u000a");_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053br\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u003a\u0020\u0025\u0076\u000a",_effd .SbrTemplate ));_gcea .WriteString (_ad .Sprintf ("\u0009-\u0020S\u0062\u0064\u0073\u004f\u0066f\u0073\u0065t\u003a\u0020\u0025\u0076\u000a",_effd .SbdsOffset ));_gcea .WriteString (_ad .Sprintf ("\t\u002d \u0044\u0065\u0066\u0061\u0075\u006c\u0074\u0050i\u0078\u0065\u006c\u003a %\u0076\u000a",_effd .DefaultPixel ));_gcea .WriteString (_ad .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0076\u000a",_effd .CombinationOperator ));_gcea .WriteString (_ad .Sprintf ("\t\u002d \u0049\u0073\u0054\u0072\u0061\u006e\u0073\u0070o\u0073\u0065\u0064\u003a %\u0076\u000a",_effd .IsTransposed ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020Re\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0043\u006f\u0072\u006e\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_effd .ReferenceCorner ));_gcea .WriteString (_ad .Sprintf ("\t\u002d\u0020\u0055\u0073eR\u0065f\u0069\u006e\u0065\u006d\u0065n\u0074\u003a\u0020\u0025\u0076\u000a",_effd .UseRefinement ));_gcea .WriteString (_ad .Sprintf ("\u0009-\u0020\u0049\u0073\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045n\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0076\u000a",_effd .IsHuffmanEncoded ));if _effd .IsHuffmanEncoded {_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_effd .SbHuffRSize ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0059:\u0020\u0025\u0076\u000a",_effd .SbHuffRDY ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0058:\u0020\u0025\u0076\u000a",_effd .SbHuffRDX ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069\u0067\u0068\u0074\u003a\u0020\u0025v\u000a",_effd .SbHuffRDHeight ));_gcea .WriteString (_ad .Sprintf ("\t\u002d\u0020\u0053\u0062Hu\u0066f\u0052\u0044\u0057\u0069\u0064t\u0068\u003a\u0020\u0025\u0076\u000a",_effd .SbHuffRDWidth ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0054\u003a\u0020\u0025\u0076\u000a",_effd .SbHuffDT ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0053\u003a\u0020\u0025\u0076\u000a",_effd .SbHuffDS ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0046\u0053\u003a\u0020\u0025\u0076\u000a",_effd .SbHuffFS ));};_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_effd .SbrATX ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0059:\u0020\u0025\u0076\u000a",_effd .SbrATY ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020N\u0075\u006d\u0062\u0065r\u004f\u0066\u0053\u0079\u006d\u0062\u006fl\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_effd .NumberOfSymbolInstances ));_gcea .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_effd .SbrATX ));return _gcea .String ();};func (_aabda *PatternDictionary )parseHeader ()error {_baf .Log .Trace ("\u005b\u0050\u0041\u0054\u0054\u0045\u0052\u004e\u002d\u0044\u0049\u0043\u0054I\u004f\u004e\u0041\u0052\u0059\u005d[\u0070\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072\u005d\u0020b\u0065\u0067\u0069\u006e");defer func (){_baf .Log .Trace ("\u005b\u0050\u0041T\u0054\u0045\u0052\u004e\u002d\u0044\u0049\u0043\u0054\u0049\u004f\u004e\u0041\u0052\u0059\u005d\u005b\u0070\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072\u005d \u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064");}();_ ,_gbfb :=_aabda ._cbeg .ReadBits (5);if _gbfb !=nil {return _gbfb ;};if _gbfb =_aabda .readTemplate ();_gbfb !=nil {return _gbfb ;};if _gbfb =_aabda .readIsMMREncoded ();_gbfb !=nil {return _gbfb ;};if _gbfb =_aabda .readPatternWidthAndHeight ();_gbfb !=nil {return _gbfb ;};if _gbfb =_aabda .readGrayMax ();_gbfb !=nil {return _gbfb ;};if _gbfb =_aabda .computeSegmentDataStructure ();_gbfb !=nil {return _gbfb ;};return _aabda .checkInput ();};func (_gba *PageInformationSegment )readWidthAndHeight ()error {_ddcfa ,_cdad :=_gba ._feaf .ReadBits (32);if _cdad !=nil {return _cdad ;};_gba .PageBMWidth =int (_ddcfa &_a .MaxInt32 );_ddcfa ,_cdad =_gba ._feaf .ReadBits (32);if _cdad !=nil {return _cdad ;};_gba .PageBMHeight =int (_ddcfa &_a .MaxInt32 );return nil ;};func (_faba *Header )parse (_beg Documenter ,_bfdcc _f .StreamReader ,_fcfd int64 ,_fdea OrganizationType )(_fcec error ){const _gcgg ="\u0070\u0061\u0072s\u0065";_baf .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u002d\u0048E\u0041\u0044\u0045\u0052\u005d\u005b\u0050A\u0052\u0053\u0045\u005d\u0020\u0042\u0065\u0067\u0069\u006e\u0073");defer func (){if _fcec !=nil {_baf .Log .Trace ("\u005b\u0053\u0045GM\u0045\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045R\u005d[\u0050A\u0052S\u0045\u005d\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_fcec );}else {_baf .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052]\u005bP\u0041\u0052\u0053\u0045\u005d\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064");};}();_ ,_fcec =_bfdcc .Seek (_fcfd ,_b .SeekStart );if _fcec !=nil {return _ab .Wrap (_fcec ,_gcgg ,"\u0073\u0065\u0065\u006b\u0020\u0073\u0074\u0061\u0072\u0074");};if _fcec =_faba .readSegmentNumber (_bfdcc );_fcec !=nil {return _ab .Wrap (_fcec ,_gcgg ,"");};if _fcec =_faba .readHeaderFlags ();_fcec !=nil {return _ab .Wrap (_fcec ,_gcgg ,"");};var _cgfe uint64 ;_cgfe ,_fcec =_faba .readNumberOfReferredToSegments (_bfdcc );if _fcec !=nil {return _ab .Wrap (_fcec ,_gcgg ,"");};_faba .RTSNumbers ,_fcec =_faba .readReferredToSegmentNumbers (_bfdcc ,int (_cgfe ));if _fcec !=nil {return _ab .Wrap (_fcec ,_gcgg ,"");};_fcec =_faba .readSegmentPageAssociation (_beg ,_bfdcc ,_cgfe ,_faba .RTSNumbers ...);if _fcec !=nil {return _ab .Wrap (_fcec ,_gcgg ,"");};if _faba .Type !=TEndOfFile {if _fcec =_faba .readSegmentDataLength (_bfdcc );_fcec !=nil {return _ab .Wrap (_fcec ,_gcgg ,"");};};_faba .readDataStartOffset (_bfdcc ,_fdea );_faba .readHeaderLength (_bfdcc ,_fcfd );_baf .Log .Trace ("\u0025\u0073",_faba );return nil ;};func (_cbef *SymbolDictionary )readAtPixels (_gffe int )error {_cbef .SdATX =make ([]int8 ,_gffe );_cbef .SdATY =make ([]int8 ,_gffe );var (_cdge byte ;_abgbg error ;);for _dbab :=0;_dbab < _gffe ;_dbab ++{_cdge ,_abgbg =_cbef ._caad .ReadByte ();if _abgbg !=nil {return _abgbg ;};_cbef .SdATX [_dbab ]=int8 (_cdge );_cdge ,_abgbg =_cbef ._caad .ReadByte ();if _abgbg !=nil {return _abgbg ;};_cbef .SdATY [_dbab ]=int8 (_cdge );};return nil ;};func (_begf *TextRegion )decodeSymbolInstances ()error {_gced ,_cefg :=_begf .decodeStripT ();if _cefg !=nil {return _cefg ;};var (_abbdc int64 ;_fddb uint32 ;);for _fddb < _begf .NumberOfSymbolInstances {_efc ,_egd :=_begf .decodeDT ();if _egd !=nil {return _egd ;};_gced +=_efc ;var _gcbd int64 ;_dgfc :=true ;_begf ._eaag =0;for {if _dgfc {_gcbd ,_egd =_begf .decodeDfs ();if _egd !=nil {return _egd ;};_abbdc +=_gcbd ;_begf ._eaag =_abbdc ;_dgfc =false ;}else {_geaaa ,_eacga :=_begf .decodeIds ();if _eacga !=nil {return _eacga ;};if _geaaa ==_a .MaxInt32 ||_fddb >=_begf .NumberOfSymbolInstances {break ;};_begf ._eaag +=_geaaa +int64 (_begf .SbdsOffset );};_fdaa ,_edgce :=_begf .decodeCurrentT ();if _edgce !=nil {return _edgce ;};_feea :=_gced +_fdaa ;_egcg ,_edgce :=_begf .decodeID ();if _edgce !=nil {return _edgce ;};_febf ,_edgce :=_begf .decodeRI ();if _edgce !=nil {return _edgce ;};_adgd ,_edgce :=_begf .decodeIb (_febf ,_egcg );if _edgce !=nil {return _edgce ;};if _edgce =_begf .blit (_adgd ,_feea );_edgce !=nil {return _edgce ;};_fddb ++;};};return nil ;};func (_adgge *TextRegion )InitEncode (globalSymbolsMap ,localSymbolsMap map[int ]int ,comps []int ,inLL *_af .Points ,symbols *_af .Bitmaps ,classIDs *_eb .IntSlice ,boxes *_af .Boxes ,width ,height ,symbits int ){_adgge .RegionInfo =&RegionSegment {BitmapWidth :uint32 (width ),BitmapHeight :uint32 (height )};_adgge ._cbgb =globalSymbolsMap ;_adgge ._aafd =localSymbolsMap ;_adgge ._ceeb =comps ;_adgge ._eggf =inLL ;_adgge ._fabaa =symbols ;_adgge ._eefd =classIDs ;_adgge ._fafg =boxes ;_adgge ._fcfdg =symbits ;};type EncodeInitializer interface{InitEncode ();};func (_gggb *PageInformationSegment )CombinationOperator ()_af .CombinationOperator {return _gggb ._fcceb ;};func (_bfe *TableSegment )HtPS ()int32 {return _bfe ._cbcg };func (_agc *GenericRegion )Encode (w _f .BinaryWriter )(_gdf int ,_bce error ){const _cde ="G\u0065n\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069o\u006e\u002e\u0045\u006eco\u0064\u0065";if _agc .Bitmap ==nil {return 0,_ab .Error (_cde ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};_cdgg ,_bce :=_agc .RegionSegment .Encode (w );if _bce !=nil {return 0,_ab .Wrap (_bce ,_cde ,"\u0052\u0065\u0067\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074");};_gdf +=_cdgg ;if _bce =w .SkipBits (4);_bce !=nil {return _gdf ,_ab .Wrap (_bce ,_cde ,"\u0073k\u0069p\u0020\u0072\u0065\u0073\u0065r\u0076\u0065d\u0020\u0062\u0069\u0074\u0073");};var _cab int ;if _agc .IsTPGDon {_cab =1;};if _bce =w .WriteBit (_cab );_bce !=nil {return _gdf ,_ab .Wrap (_bce ,_cde ,"\u0074\u0070\u0067\u0064\u006f\u006e");};_cab =0;if _bce =w .WriteBit (int (_agc .GBTemplate >>1)&0x01);_bce !=nil {return _gdf ,_ab .Wrap (_bce ,_cde ,"f\u0069r\u0073\u0074\u0020\u0067\u0062\u0074\u0065\u006dp\u006c\u0061\u0074\u0065 b\u0069\u0074");};if _bce =w .WriteBit (int (_agc .GBTemplate )&0x01);_bce !=nil {return _gdf ,_ab .Wrap (_bce ,_cde ,"s\u0065\u0063\u006f\u006ed \u0067b\u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u0020\u0062\u0069\u0074");};if _agc .UseMMR {_cab =1;};if _bce =w .WriteBit (_cab );_bce !=nil {return _gdf ,_ab .Wrap (_bce ,_cde ,"u\u0073\u0065\u0020\u004d\u004d\u0052\u0020\u0062\u0069\u0074");};_gdf ++;if _cdgg ,_bce =_agc .writeGBAtPixels (w );_bce !=nil {return _gdf ,_ab .Wrap (_bce ,_cde ,"");};_gdf +=_cdgg ;_ggba :=_d .New ();if _bce =_ggba .EncodeBitmap (_agc .Bitmap ,_agc .IsTPGDon );_bce !=nil {return _gdf ,_ab .Wrap (_bce ,_cde ,"");};_ggba .Final ();var _cge int64 ;if _cge ,_bce =_ggba .WriteTo (w );_bce !=nil {return _gdf ,_ab .Wrap (_bce ,_cde ,"");};_gdf +=int (_cge );return _gdf ,nil ;};func (_fab *HalftoneRegion )Init (hd *Header ,r _f .StreamReader )error {_fab ._adbg =r ;_fab ._agddc =hd ;_fab .RegionSegment =NewRegionSegment (r );return _fab .parseHeader ();};func (_fggd *TextRegion )decodeIb (_ggebg ,_cadg int64 )(*_af .Bitmap ,error ){const _adfc ="\u0064\u0065\u0063\u006f\u0064\u0065\u0049\u0062";var (_gecgf error ;_ggcf *_af .Bitmap ;);if _ggebg ==0{if int (_cadg )> len (_fggd .Symbols )-1{return nil ,_ab .Error (_adfc ,"\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0049\u0042\u0020\u0062\u0069\u0074\u006d\u0061\u0070\u002e\u0020\u0069\u006e\u0064\u0065x\u0020\u006f\u0075\u0074\u0020o\u0066\u0020r\u0061\u006e\u0067\u0065");};return _fggd .Symbols [int (_cadg )],nil ;};var _ebac ,_bgff ,_cbag ,_addf int64 ;_ebac ,_gecgf =_fggd .decodeRdw ();if _gecgf !=nil {return nil ,_ab .Wrap (_gecgf ,_adfc ,"");};_bgff ,_gecgf =_fggd .decodeRdh ();if _gecgf !=nil {return nil ,_ab .Wrap (_gecgf ,_adfc ,"");};_cbag ,_gecgf =_fggd .decodeRdx ();if _gecgf !=nil {return nil ,_ab .Wrap (_gecgf ,_adfc ,"");};_addf ,_gecgf =_fggd .decodeRdy ();if _gecgf !=nil {return nil ,_ab .Wrap (_gecgf ,_adfc ,"");};if _fggd .IsHuffmanEncoded {if _ ,_gecgf =_fggd .decodeSymInRefSize ();_gecgf !=nil {return nil ,_ab .Wrap (_gecgf ,_adfc ,"");};_fggd ._bfeb .Align ();};_gcaf :=_fggd .Symbols [_cadg ];_acdg :=uint32 (_gcaf .Width );_feefc :=uint32 (_gcaf .Height );_gdca :=int32 (uint32 (_ebac )>>1)+int32 (_cbag );_eeea :=int32 (uint32 (_bgff )>>1)+int32 (_addf );if _fggd ._bgdb ==nil {_fggd ._bgdb =_gbb (_fggd ._bfeb ,nil );};_fggd ._bgdb .setParameters (_fggd ._ebbe ,_fggd ._adcb ,_fggd .SbrTemplate ,_acdg +uint32 (_ebac ),_feefc +uint32 (_bgff ),_gcaf ,_gdca ,_eeea ,false ,_fggd .SbrATX ,_fggd .SbrATY );_ggcf ,_gecgf =_fggd ._bgdb .GetRegionBitmap ();if _gecgf !=nil {return nil ,_ab .Wrap (_gecgf ,_adfc ,"\u0067\u0072\u0066");};if _fggd .IsHuffmanEncoded {_fggd ._bfeb .Align ();};return _ggcf ,nil ;};func (_effe *SymbolDictionary )huffDecodeRefAggNInst ()(int64 ,error ){if !_effe .SdHuffAggInstanceSelection {_bbga ,_bgaf :=_adg .GetStandardTable (1);if _bgaf !=nil {return 0,_bgaf ;};return _bbga .Decode (_effe ._caad );};if _effe ._ffceb ==nil {var (_bgdd int ;_gaff error ;);if _effe .SdHuffDecodeHeightSelection ==3{_bgdd ++;};if _effe .SdHuffDecodeWidthSelection ==3{_bgdd ++;};if _effe .SdHuffBMSizeSelection ==3{_bgdd ++;};_effe ._ffceb ,_gaff =_effe .getUserTable (_bgdd );if _gaff !=nil {return 0,_gaff ;};};return _effe ._ffceb .Decode (_effe ._caad );};func (_daba *GenericRegion )readGBAtPixels (_adcde int )error {const _efde ="\u0072\u0065\u0061\u0064\u0047\u0042\u0041\u0074\u0050i\u0078\u0065\u006c\u0073";_daba .GBAtX =make ([]int8 ,_adcde );_daba .GBAtY =make ([]int8 ,_adcde );for _gae :=0;_gae < _adcde ;_gae ++{_dgab ,_dgcc :=_daba ._cfbf .ReadByte ();if _dgcc !=nil {return _ab .Wrapf (_dgcc ,_efde ,"\u0058\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_gae );};_daba .GBAtX [_gae ]=int8 (_dgab );_dgab ,_dgcc =_daba ._cfbf .ReadByte ();if _dgcc !=nil {return _ab .Wrapf (_dgcc ,_efde ,"\u0059\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_gae );};_daba .GBAtY [_gae ]=int8 (_dgab );};return nil ;};type GenericRegion struct{_cfbf _f .StreamReader ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;RegionSegment *RegionSegment ;UseExtTemplates bool ;IsTPGDon bool ;GBTemplate byte ;IsMMREncoded bool ;UseMMR bool ;GBAtX []int8 ;GBAtY []int8 ;GBAtOverride []bool ;_cccgf bool ;Bitmap *_af .Bitmap ;_bba *_ba .Decoder ;_dgbb *_ba .DecoderStats ;_bebg *_gb .Decoder ;};func (_aefd *HalftoneRegion )computeX (_dbbg ,_eec int )int {return _aefd .shiftAndFill (int (_aefd .HGridX )+_dbbg *int (_aefd .HRegionY )+_eec *int (_aefd .HRegionX ));};type templater interface{form (_beb ,_cccg ,_cbc ,_bac ,_dab int16 )int16 ;setIndex (_bgf *_ba .DecoderStats );};func (_ga *EndOfStripe )Init (h *Header ,r _f .StreamReader )error {_ga ._bae =r ;return _ga .parseHeader (h ,r );};func (_bgee *GenericRefinementRegion )setParameters (_bafc *_ba .DecoderStats ,_eaee *_ba .Decoder ,_cbfd int8 ,_adgfa ,_gdgb uint32 ,_ccc *_af .Bitmap ,_abd ,_bbf int32 ,_ffa bool ,_acd []int8 ,_fbb []int8 ){_baf .Log .Trace ("\u005b\u0047\u0045NE\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052E\u0047I\u004fN\u005d \u0073\u0065\u0074\u0050\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073");if _bafc !=nil {_bgee ._afb =_bafc ;};if _eaee !=nil {_bgee ._gac =_eaee ;};_bgee .TemplateID =_cbfd ;_bgee .RegionInfo .BitmapWidth =_adgfa ;_bgee .RegionInfo .BitmapHeight =_gdgb ;_bgee .ReferenceBitmap =_ccc ;_bgee .ReferenceDX =_abd ;_bgee .ReferenceDY =_bbf ;_bgee .IsTPGROn =_ffa ;_bgee .GrAtX =_acd ;_bgee .GrAtY =_fbb ;_bgee .RegionBitmap =nil ;_baf .Log .Trace ("[\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052E\u0046\u002d\u0052\u0045\u0047\u0049\u004fN]\u0020\u0073\u0065\u0074P\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073 f\u0069\u006ei\u0073\u0068\u0065\u0064\u002e\u0020\u0025\u0073",_bgee );};func (_bbea *TextRegion )decodeRdw ()(int64 ,error ){const _edgb ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064w";if _bbea .IsHuffmanEncoded {if _bbea .SbHuffRDWidth ==3{if _bbea ._fbgg ==nil {var (_fbgab int ;_babec error ;);if _bbea .SbHuffFS ==3{_fbgab ++;};if _bbea .SbHuffDS ==3{_fbgab ++;};if _bbea .SbHuffDT ==3{_fbgab ++;};_bbea ._fbgg ,_babec =_bbea .getUserTable (_fbgab );if _babec !=nil {return 0,_ab .Wrap (_babec ,_edgb ,"");};};return _bbea ._fbgg .Decode (_bbea ._bfeb );};_ffgda ,_dded :=_adg .GetStandardTable (14+int (_bbea .SbHuffRDWidth ));if _dded !=nil {return 0,_ab .Wrap (_dded ,_edgb ,"");};return _ffgda .Decode (_bbea ._bfeb );};_addc ,_cdage :=_bbea ._adcb .DecodeInt (_bbea ._bbgc );if _cdage !=nil {return 0,_ab .Wrap (_cdage ,_edgb ,"");};return int64 (_addc ),nil ;};func (_acbc *HalftoneRegion )computeY (_bea ,_bcb int )int {return _acbc .shiftAndFill (int (_acbc .HGridY )+_bea *int (_acbc .HRegionX )-_bcb *int (_acbc .HRegionY ));};func (_afbd *PageInformationSegment )Encode (w _f .BinaryWriter )(_dfged int ,_baff error ){const _dcaa ="\u0050\u0061g\u0065\u0049\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u002e\u0045\u006eco\u0064\u0065";_eabb :=make ([]byte ,4);_e .BigEndian .PutUint32 (_eabb ,uint32 (_afbd .PageBMWidth ));_dfged ,_baff =w .Write (_eabb );if _baff !=nil {return _dfged ,_ab .Wrap (_baff ,_dcaa ,"\u0077\u0069\u0064t\u0068");};_e .BigEndian .PutUint32 (_eabb ,uint32 (_afbd .PageBMHeight ));var _cbed int ;_cbed ,_baff =w .Write (_eabb );if _baff !=nil {return _cbed +_dfged ,_ab .Wrap (_baff ,_dcaa ,"\u0068\u0065\u0069\u0067\u0068\u0074");};_dfged +=_cbed ;_e .BigEndian .PutUint32 (_eabb ,uint32 (_afbd .ResolutionX ));_cbed ,_baff =w .Write (_eabb );if _baff !=nil {return _cbed +_dfged ,_ab .Wrap (_baff ,_dcaa ,"\u0078\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_dfged +=_cbed ;_e .BigEndian .PutUint32 (_eabb ,uint32 (_afbd .ResolutionY ));if _cbed ,_baff =w .Write (_eabb );_baff !=nil {return _cbed +_dfged ,_ab .Wrap (_baff ,_dcaa ,"\u0079\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_dfged +=_cbed ;if _baff =_afbd .encodeFlags (w );_baff !=nil {return _dfged ,_ab .Wrap (_baff ,_dcaa ,"");};_dfged ++;if _cbed ,_baff =_afbd .encodeStripingInformation (w );_baff !=nil {return _dfged ,_ab .Wrap (_baff ,_dcaa ,"");};_dfged +=_cbed ;return _dfged ,nil ;};type Documenter interface{GetPage (int )(Pager ,error );GetGlobalSegment (int )(*Header ,error );};func (_ccff *Header )readHeaderLength (_dbaa _f .StreamReader ,_edg int64 ){_ccff .HeaderLength =_dbaa .StreamPosition ()-_edg ;};func (_gfee *SymbolDictionary )Init (h *Header ,r _f .StreamReader )error {_gfee .Header =h ;_gfee ._caad =r ;return _gfee .parseHeader ();};func (_bddg *Header )writeReferredToCount (_adfbc _f .BinaryWriter )(_adgg int ,_bcga error ){const _abaa ="w\u0072i\u0074\u0065\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0043ou\u006e\u0074";_bddg .RTSNumbers =make ([]int ,len (_bddg .RTSegments ));for _ggd ,_abgc :=range _bddg .RTSegments {_bddg .RTSNumbers [_ggd ]=int (_abgc .SegmentNumber );};if len (_bddg .RTSNumbers )<=4{var _decg byte ;if len (_bddg .RetainBits )>=1{_decg =byte (_bddg .RetainBits [0]);};_decg |=byte (len (_bddg .RTSNumbers ))<<5;if _bcga =_adfbc .WriteByte (_decg );_bcga !=nil {return 0,_ab .Wrap (_bcga ,_abaa ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};return 1,nil ;};_cgdd :=uint32 (len (_bddg .RTSNumbers ));_becd :=make ([]byte ,4+_eb .Ceil (len (_bddg .RTSNumbers )+1,8));_cgdd |=0x7<<29;_e .BigEndian .PutUint32 (_becd ,_cgdd );copy (_becd [1:],_bddg .RetainBits );_adgg ,_bcga =_adfbc .Write (_becd );if _bcga !=nil {return 0,_ab .Wrap (_bcga ,_abaa ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};return _adgg ,nil ;};func (_fabc *TextRegion )readAmountOfSymbolInstances ()error {_cggba ,_bcda :=_fabc ._bfeb .ReadBits (32);if _bcda !=nil {return _bcda ;};_fabc .NumberOfSymbolInstances =uint32 (_cggba &_a .MaxUint32 );_bccc :=_fabc .RegionInfo .BitmapWidth *_fabc .RegionInfo .BitmapHeight ;if _bccc < _fabc .NumberOfSymbolInstances {_baf .Log .Debug ("\u004c\u0069\u006d\u0069t\u0069\u006e\u0067\u0020t\u0068\u0065\u0020n\u0075\u006d\u0062\u0065\u0072\u0020o\u0066\u0020d\u0065\u0063\u006f\u0064e\u0064\u0020\u0073\u0079m\u0062\u006f\u006c\u0020\u0069n\u0073\u0074\u0061\u006e\u0063\u0065\u0073 \u0074\u006f\u0020\u006f\u006ee\u0020\u0070\u0065\u0072\u0020\u0070\u0069\u0078\u0065l\u0020\u0028\u0020\u0025\u0064\u0020\u0069\u006e\u0073\u0074\u0065\u0061\u0064\u0020\u006f\u0066\u0020\u0025\u0064\u0029",_bccc ,_fabc .NumberOfSymbolInstances );_fabc .NumberOfSymbolInstances =_bccc ;};return nil ;};func (_dff *SymbolDictionary )getSbSymCodeLen ()int8 {_facc :=int8 (_a .Ceil (_a .Log (float64 (_dff ._bdf +_dff .NumberOfNewSymbols ))/_a .Log (2)));if _dff .IsHuffmanEncoded &&_facc < 1{return 1;};return _facc ;};func (_gfeg *Header )writeSegmentPageAssociation (_gccf _f .BinaryWriter )(_egfb int ,_gec error ){const _ecae ="w\u0072\u0069\u0074\u0065\u0053\u0065g\u006d\u0065\u006e\u0074\u0050\u0061\u0067\u0065\u0041s\u0073\u006f\u0063i\u0061t\u0069\u006f\u006e";if _gfeg .pageSize ()!=4{if _gec =_gccf .WriteByte (byte (_gfeg .PageAssociation ));_gec !=nil {return 0,_ab .Wrap (_gec ,_ecae ,"\u0070\u0061\u0067\u0065\u0053\u0069\u007a\u0065\u0020\u0021\u003d\u0020\u0034");};return 1,nil ;};_fdec :=make ([]byte ,4);_e .BigEndian .PutUint32 (_fdec ,uint32 (_gfeg .PageAssociation ));if _egfb ,_gec =_gccf .Write (_fdec );_gec !=nil {return 0,_ab .Wrap (_gec ,_ecae ,"\u0034 \u0062y\u0074\u0065\u0020\u0070\u0061g\u0065\u0020n\u0075\u006d\u0062\u0065\u0072");};return _egfb ,nil ;};func (_dfb *template1 )form (_cdd ,_dbc ,_adf ,_eff ,_ffc int16 )int16 {return ((_cdd &0x02)<<8)|(_dbc <<6)|((_adf &0x03)<<4)|(_eff <<1)|_ffc ;};func (_bgd *PageInformationSegment )DefaultPixelValue ()uint8 {return _bgd ._ggbb };func (_cegca *TextRegion )parseHeader ()error {var _aagdg error ;_baf .Log .Trace ("\u005b\u0054E\u0058\u0054\u0020\u0052E\u0047\u0049O\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045-\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0062\u0065\u0067\u0069n\u0073\u002e\u002e\u002e");defer func (){if _aagdg !=nil {_baf .Log .Trace ("\u005b\u0054\u0045\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044E\u0052\u005d\u0020\u0066\u0061i\u006c\u0065d\u002e\u0020\u0025\u0076",_aagdg );}else {_baf .Log .Trace ("\u005b\u0054E\u0058\u0054\u0020\u0052E\u0047\u0049O\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045-\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0066\u0069\u006e\u0069s\u0068\u0065\u0064\u002e");};}();if _aagdg =_cegca .RegionInfo .parseHeader ();_aagdg !=nil {return _aagdg ;};if _aagdg =_cegca .readRegionFlags ();_aagdg !=nil {return _aagdg ;};if _cegca .IsHuffmanEncoded {if _aagdg =_cegca .readHuffmanFlags ();_aagdg !=nil {return _aagdg ;};};if _aagdg =_cegca .readUseRefinement ();_aagdg !=nil {return _aagdg ;};if _aagdg =_cegca .readAmountOfSymbolInstances ();_aagdg !=nil {return _aagdg ;};if _aagdg =_cegca .getSymbols ();_aagdg !=nil {return _aagdg ;};if _aagdg =_cegca .computeSymbolCodeLength ();_aagdg !=nil {return _aagdg ;};if _aagdg =_cegca .checkInput ();_aagdg !=nil {return _aagdg ;};_baf .Log .Trace ("\u0025\u0073",_cegca .String ());return nil ;};func (_fb *EndOfStripe )LineNumber ()int {return _fb ._c };func _gbb (_abgb _f .StreamReader ,_bga *Header )*GenericRefinementRegion {return &GenericRefinementRegion {_ag :_abgb ,RegionInfo :NewRegionSegment (_abgb ),_gd :_bga ,_cf :&template0 {},_dc :&template1 {}};};func (_bebb *TextRegion )decodeDT ()(_gffea int64 ,_fcfa error ){if _bebb .IsHuffmanEncoded {if _bebb .SbHuffDT ==3{_gffea ,_fcfa =_bebb ._fgbbb .Decode (_bebb ._bfeb );if _fcfa !=nil {return 0,_fcfa ;};}else {var _cabc _adg .Tabler ;_cabc ,_fcfa =_adg .GetStandardTable (11+int (_bebb .SbHuffDT ));if _fcfa !=nil {return 0,_fcfa ;};_gffea ,_fcfa =_cabc .Decode (_bebb ._bfeb );if _fcfa !=nil {return 0,_fcfa ;};};}else {var _daaa int32 ;_daaa ,_fcfa =_bebb ._adcb .DecodeInt (_bebb ._abad );if _fcfa !=nil {return ;};_gffea =int64 (_daaa );};_gffea *=int64 (_bebb .SbStrips );return _gffea ,nil ;};func (_bege *TableSegment )parseHeader ()error {var (_cafb int ;_ebbf uint64 ;_gbfa error ;);_cafb ,_gbfa =_bege ._fegef .ReadBit ();if _gbfa !=nil {return _gbfa ;};if _cafb ==1{return _ad .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0061\u0062\u006c\u0065 \u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0064e\u0066\u0069\u006e\u0069\u0074\u0069\u006f\u006e\u002e\u0020\u0042\u002e\u0032\u002e1\u0020\u0043\u006f\u0064\u0065\u0020\u0054\u0061\u0062\u006c\u0065\u0020\u0066\u006c\u0061\u0067\u0073\u003a\u0020\u0042\u0069\u0074\u0020\u0037\u0020\u006d\u0075\u0073\u0074\u0020b\u0065\u0020\u007a\u0065\u0072\u006f\u002e\u0020\u0057a\u0073\u003a \u0025\u0064",_cafb );};if _ebbf ,_gbfa =_bege ._fegef .ReadBits (3);_gbfa !=nil {return _gbfa ;};_bege ._geeb =(int32 (_ebbf )+1)&0xf;if _ebbf ,_gbfa =_bege ._fegef .ReadBits (3);_gbfa !=nil {return _gbfa ;};_bege ._cbcg =(int32 (_ebbf )+1)&0xf;if _ebbf ,_gbfa =_bege ._fegef .ReadBits (32);_gbfa !=nil {return _gbfa ;};_bege ._gece =int32 (_ebbf &_a .MaxInt32 );if _ebbf ,_gbfa =_bege ._fegef .ReadBits (32);_gbfa !=nil {return _gbfa ;};_bege ._afga =int32 (_ebbf &_a .MaxInt32 );return nil ;};func (_abf *Header )pageSize ()uint {if _abf .PageAssociation <=255{return 1;};return 4;};func (_aggc *GenericRefinementRegion )updateOverride ()error {if _aggc .GrAtX ==nil ||_aggc .GrAtY ==nil {return _ea .New ("\u0041\u0054\u0020\u0070\u0069\u0078\u0065\u006c\u0073\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");};if len (_aggc .GrAtX )!=len (_aggc .GrAtY ){return _ea .New ("A\u0054\u0020\u0070\u0069xe\u006c \u0069\u006e\u0063\u006f\u006es\u0069\u0073\u0074\u0065\u006e\u0074");};_aggc ._abb =make ([]bool ,len (_aggc .GrAtX ));switch _aggc .TemplateID {case 0:if _aggc .GrAtX [0]!=-1&&_aggc .GrAtY [0]!=-1{_aggc ._abb [0]=true ;_aggc ._gdg =true ;};if _aggc .GrAtX [1]!=-1&&_aggc .GrAtY [1]!=-1{_aggc ._abb [1]=true ;_aggc ._gdg =true ;};case 1:_aggc ._gdg =false ;};return nil ;};const (ORandom OrganizationType =iota ;OSequential ;);func (_gad *GenericRegion )decodeLine (_bgeg ,_fgae ,_bdd int )error {const _cgeg ="\u0064\u0065\u0063\u006f\u0064\u0065\u004c\u0069\u006e\u0065";_abgf :=_gad .Bitmap .GetByteIndex (0,_bgeg );_febc :=_abgf -_gad .Bitmap .RowStride ;switch _gad .GBTemplate {case 0:if !_gad .UseExtTemplates {return _gad .decodeTemplate0a (_bgeg ,_fgae ,_bdd ,_abgf ,_febc );};return _gad .decodeTemplate0b (_bgeg ,_fgae ,_bdd ,_abgf ,_febc );case 1:return _gad .decodeTemplate1 (_bgeg ,_fgae ,_bdd ,_abgf ,_febc );case 2:return _gad .decodeTemplate2 (_bgeg ,_fgae ,_bdd ,_abgf ,_febc );case 3:return _gad .decodeTemplate3 (_bgeg ,_fgae ,_bdd ,_abgf ,_febc );};return _ab .Errorf (_cgeg ,"\u0069\u006e\u0076a\u006c\u0069\u0064\u0020G\u0042\u0054\u0065\u006d\u0070\u006c\u0061t\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064\u003a\u0020\u0025\u0064",_gad .GBTemplate );};func (_degb *TextRegion )decodeRI ()(int64 ,error ){if !_degb .UseRefinement {return 0,nil ;};if _degb .IsHuffmanEncoded {_efgb ,_dce :=_degb ._bfeb .ReadBit ();return int64 (_efgb ),_dce ;};_bcde ,_bgfb :=_degb ._adcb .DecodeInt (_degb ._egc );return int64 (_bcde ),_bgfb ;};var _ templater =&template0 {};func (_gddf Type )String ()string {switch _gddf {case TSymbolDictionary :return "\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079";case TIntermediateTextRegion :return "\u0049n\u0074\u0065\u0072\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020T\u0065\u0078\u0074\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateTextRegion :return "I\u006d\u006d\u0065\u0064ia\u0074e\u0020\u0054\u0065\u0078\u0074 \u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateLosslessTextRegion :return "\u0049\u006d\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020L\u006f\u0073\u0073\u006c\u0065\u0073\u0073 \u0054\u0065\u0078\u0074\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TPatternDictionary :return "\u0050a\u0074t\u0065\u0072\u006e\u0020\u0044i\u0063\u0074i\u006f\u006e\u0061\u0072\u0079";case TIntermediateHalftoneRegion :return "\u0049\u006e\u0074\u0065r\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0048\u0061l\u0066t\u006f\u006e\u0065\u0020\u0052\u0065\u0067i\u006f\u006e";case TImmediateHalftoneRegion :return "\u0049m\u006d\u0065\u0064\u0069a\u0074\u0065\u0020\u0048\u0061l\u0066t\u006fn\u0065\u0020\u0052\u0065\u0067\u0069\u006fn";case TImmediateLosslessHalftoneRegion :return "\u0049\u006d\u006ded\u0069\u0061\u0074\u0065\u0020\u004c\u006f\u0073\u0073l\u0065s\u0073 \u0048a\u006c\u0066\u0074\u006f\u006e\u0065\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TIntermediateGenericRegion :return "I\u006e\u0074\u0065\u0072\u006d\u0065d\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006e\u0065r\u0069\u0063\u0020R\u0065g\u0069\u006f\u006e";case TImmediateGenericRegion :return "\u0049m\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006ee\u0072\u0069\u0063\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateLosslessGenericRegion :return "\u0049\u006d\u006d\u0065\u0064\u0069a\u0074\u0065\u0020\u004c\u006f\u0073\u0073\u006c\u0065\u0073\u0073\u0020\u0047e\u006e\u0065\u0072\u0069\u0063\u0020\u0052e\u0067\u0069\u006f\u006e";case TIntermediateGenericRefinementRegion :return "\u0049\u006e\u0074\u0065\u0072\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006e\u0065\u0072\u0069\u0063\u0020\u0052\u0065\u0066i\u006e\u0065\u006d\u0065\u006et\u0020\u0052e\u0067\u0069\u006f\u006e";case TImmediateGenericRefinementRegion :return "I\u006d\u006d\u0065\u0064\u0069\u0061t\u0065\u0020\u0047\u0065\u006e\u0065r\u0069\u0063\u0020\u0052\u0065\u0066\u0069n\u0065\u006d\u0065\u006e\u0074\u0020\u0052\u0065\u0067\u0069o\u006e";case TImmediateLosslessGenericRefinementRegion :return "\u0049m\u006d\u0065d\u0069\u0061\u0074\u0065 \u004c\u006f\u0073s\u006c\u0065\u0073\u0073\u0020\u0047\u0065\u006e\u0065ri\u0063\u0020\u0052e\u0066\u0069n\u0065\u006d\u0065\u006e\u0074\u0020R\u0065\u0067i\u006f\u006e";case TPageInformation :return "\u0050\u0061g\u0065\u0020\u0049n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e";case TEndOfPage :return "E\u006e\u0064\u0020\u004f\u0066\u0020\u0050\u0061\u0067\u0065";case TEndOfStrip :return "\u0045\u006e\u0064 \u004f\u0066\u0020\u0053\u0074\u0072\u0069\u0070";case TEndOfFile :return "E\u006e\u0064\u0020\u004f\u0066\u0020\u0046\u0069\u006c\u0065";case TProfiles :return "\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0073";case TTables :return "\u0054\u0061\u0062\u006c\u0065\u0073";case TExtension :return "\u0045x\u0074\u0065\u006e\u0073\u0069\u006fn";case TBitmap :return "\u0042\u0069\u0074\u006d\u0061\u0070";};return "I\u006ev\u0061\u006c\u0069\u0064\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u0020Ki\u006e\u0064";};func (_efac *TextRegion )encodeFlags (_edgeb _f .BinaryWriter )(_cdde int ,_dgfe error ){const _fdacb ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _dgfe =_edgeb .WriteBit (int (_efac .SbrTemplate ));_dgfe !=nil {return _cdde ,_ab .Wrap (_dgfe ,_fdacb ,"s\u0062\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};if _ ,_dgfe =_edgeb .WriteBits (uint64 (_efac .SbdsOffset ),5);_dgfe !=nil {return _cdde ,_ab .Wrap (_dgfe ,_fdacb ,"\u0073\u0062\u0064\u0073\u004f\u0066\u0066\u0073\u0065\u0074");};if _dgfe =_edgeb .WriteBit (int (_efac .DefaultPixel ));_dgfe !=nil {return _cdde ,_ab .Wrap (_dgfe ,_fdacb ,"\u0044\u0065\u0066a\u0075\u006c\u0074\u0050\u0069\u0078\u0065\u006c");};if _ ,_dgfe =_edgeb .WriteBits (uint64 (_efac .CombinationOperator ),2);_dgfe !=nil {return _cdde ,_ab .Wrap (_dgfe ,_fdacb ,"\u0043\u006f\u006d\u0062in\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065\u0072\u0061\u0074\u006f\u0072");};if _dgfe =_edgeb .WriteBit (int (_efac .IsTransposed ));_dgfe !=nil {return _cdde ,_ab .Wrap (_dgfe ,_fdacb ,"\u0069\u0073\u0020\u0074\u0072\u0061\u006e\u0073\u0070\u006f\u0073\u0065\u0064");};if _ ,_dgfe =_edgeb .WriteBits (uint64 (_efac .ReferenceCorner ),2);_dgfe !=nil {return _cdde ,_ab .Wrap (_dgfe ,_fdacb ,"\u0072\u0065f\u0065\u0072\u0065n\u0063\u0065\u0020\u0063\u006f\u0072\u006e\u0065\u0072");};if _ ,_dgfe =_edgeb .WriteBits (uint64 (_efac .LogSBStrips ),2);_dgfe !=nil {return _cdde ,_ab .Wrap (_dgfe ,_fdacb ,"L\u006f\u0067\u0053\u0042\u0053\u0074\u0072\u0069\u0070\u0073");};var _bcfg int ;if _efac .UseRefinement {_bcfg =1;};if _dgfe =_edgeb .WriteBit (_bcfg );_dgfe !=nil {return _cdde ,_ab .Wrap (_dgfe ,_fdacb ,"\u0075\u0073\u0065\u0020\u0072\u0065\u0066\u0069\u006ee\u006d\u0065\u006e\u0074");};_bcfg =0;if _efac .IsHuffmanEncoded {_bcfg =1;};if _dgfe =_edgeb .WriteBit (_bcfg );_dgfe !=nil {return _cdde ,_ab .Wrap (_dgfe ,_fdacb ,"u\u0073\u0065\u0020\u0068\u0075\u0066\u0066\u006d\u0061\u006e");};_cdde =2;return _cdde ,nil ;};func (_edd *HalftoneRegion )GetPatterns ()([]*_af .Bitmap ,error ){var (_caac []*_af .Bitmap ;_dfg error ;);for _ ,_gbgb :=range _edd ._agddc .RTSegments {var _bgb Segmenter ;_bgb ,_dfg =_gbgb .GetSegmentData ();if _dfg !=nil {_baf .Log .Debug ("\u0047e\u0074\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061 \u0066a\u0069\u006c\u0065\u0064\u003a\u0020\u0025v",_dfg );return nil ,_dfg ;};_bef ,_gaf :=_bgb .(*PatternDictionary );if !_gaf {_dfg =_ad .Errorf ("\u0072e\u006c\u0061t\u0065\u0064\u0020\u0073e\u0067\u006d\u0065n\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0070at\u0074\u0065\u0072n\u0020\u0064i\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u003a \u0025\u0054",_bgb );return nil ,_dfg ;};var _febd []*_af .Bitmap ;_febd ,_dfg =_bef .GetDictionary ();if _dfg !=nil {_baf .Log .Debug ("\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076",_dfg );return nil ,_dfg ;};_caac =append (_caac ,_febd ...);};return _caac ,nil ;};func (_dd *GenericRefinementRegion )decodeSLTP ()(int ,error ){_dd .Template .setIndex (_dd ._afb );return _dd ._gac .DecodeBit (_dd ._afb );};func (_gca *SymbolDictionary )encodeATFlags (_ffaa _f .BinaryWriter )(_efff int ,_cbce error ){const _fbff ="\u0065\u006e\u0063\u006f\u0064\u0065\u0041\u0054\u0046\u006c\u0061\u0067\u0073";if _gca .IsHuffmanEncoded ||_gca .SdTemplate !=0{return 0,nil ;};_acdd :=4;if _gca .SdTemplate !=0{_acdd =1;};for _adfg :=0;_adfg < _acdd ;_adfg ++{if _cbce =_ffaa .WriteByte (byte (_gca .SdATX [_adfg ]));_cbce !=nil {return _efff ,_ab .Wrapf (_cbce ,_fbff ,"\u0053d\u0041\u0054\u0058\u005b\u0025\u0064]",_adfg );};_efff ++;if _cbce =_ffaa .WriteByte (byte (_gca .SdATY [_adfg ]));_cbce !=nil {return _efff ,_ab .Wrapf (_cbce ,_fbff ,"\u0053d\u0041\u0054\u0059\u005b\u0025\u0064]",_adfg );};_efff ++;};return _efff ,nil ;};func (_gbcec *SymbolDictionary )decodeDirectlyThroughGenericRegion (_fgag ,_cdaa uint32 )error {if _gbcec ._cbca ==nil {_gbcec ._cbca =NewGenericRegion (_gbcec ._caad );};_gbcec ._cbca .setParametersWithAt (false ,byte (_gbcec .SdTemplate ),false ,false ,_gbcec .SdATX ,_gbcec .SdATY ,_fgag ,_cdaa ,_gbcec ._bddc ,_gbcec ._aafg );return _gbcec .addSymbol (_gbcec ._cbca );};func (_abba *TableSegment )HtLow ()int32 {return _abba ._gece };func (_cdc *Header )referenceSize ()uint {switch {case _cdc .SegmentNumber <=255:return 1;case _cdc .SegmentNumber <=65535:return 2;default:return 4;};};func (_bgeee *RegionSegment )Size ()int {return 17};func (_gdbe *Header )CleanSegmentData (){if _gdbe .SegmentData !=nil {_gdbe .SegmentData =nil ;};};func (_acfe *PageInformationSegment )readIsStriped ()error {_cace ,_cfaeg :=_acfe ._feaf .ReadBit ();if _cfaeg !=nil {return _cfaeg ;};if _cace ==1{_acfe .IsStripe =true ;};return nil ;};var _ SegmentEncoder =&RegionSegment {};func (_bfgd *PatternDictionary )computeSegmentDataStructure ()error {_bfgd .DataOffset =_bfgd ._cbeg .StreamPosition ();_bfgd .DataHeaderLength =_bfgd .DataOffset -_bfgd .DataHeaderOffset ;_bfgd .DataLength =int64 (_bfgd ._cbeg .Length ())-_bfgd .DataHeaderLength ;return nil ;};func (_fddg *SymbolDictionary )decodeRefinedSymbol (_gcec ,_aead uint32 )error {var (_ceef int ;_ddcfb ,_dadc int32 ;);if _fddg .IsHuffmanEncoded {_ceff ,_bbdf :=_fddg ._caad .ReadBits (byte (_fddg ._gbba ));if _bbdf !=nil {return _bbdf ;};_ceef =int (_ceff );_fadcb ,_bbdf :=_adg .GetStandardTable (15);if _bbdf !=nil {return _bbdf ;};_ceab ,_bbdf :=_fadcb .Decode (_fddg ._caad );if _bbdf !=nil {return _bbdf ;};_ddcfb =int32 (_ceab );_ceab ,_bbdf =_fadcb .Decode (_fddg ._caad );if _bbdf !=nil {return _bbdf ;};_dadc =int32 (_ceab );_fadcb ,_bbdf =_adg .GetStandardTable (1);if _bbdf !=nil {return _bbdf ;};if _ ,_bbdf =_fadcb .Decode (_fddg ._caad );_bbdf !=nil {return _bbdf ;};_fddg ._caad .Align ();}else {_adgfb ,_eedeg :=_fddg ._aafg .DecodeIAID (uint64 (_fddg ._gbba ),_fddg ._fdff );if _eedeg !=nil {return _eedeg ;};_ceef =int (_adgfb );_ddcfb ,_eedeg =_fddg ._aafg .DecodeInt (_fddg ._gdbec );if _eedeg !=nil {return _eedeg ;};_dadc ,_eedeg =_fddg ._aafg .DecodeInt (_fddg ._fdbb );if _eedeg !=nil {return _eedeg ;};};if _edab :=_fddg .setSymbolsArray ();_edab !=nil {return _edab ;};_bcbgd :=_fddg ._daee [_ceef ];if _bffdg :=_fddg .decodeNewSymbols (_gcec ,_aead ,_bcbgd ,_ddcfb ,_dadc );_bffdg !=nil {return _bffdg ;};if _fddg .IsHuffmanEncoded {_fddg ._caad .Align ();};return nil ;};func (_agdd *GenericRefinementRegion )decodeTemplate (_aaff ,_age ,_dec ,_df ,_dge ,_acgf ,_cfd ,_dga ,_bgef ,_gfg int ,_eea templater )(_gacbb error ){var (_efa ,_dcdg ,_bdc ,_agda ,_cgf int16 ;_eebc ,_faf ,_cgg ,_eae int ;_cfdb byte ;);if _bgef >=1&&(_bgef -1)< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg -_df );if _gacbb !=nil {return ;};_eebc =int (_cfdb );};if _bgef >=0&&(_bgef )< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg );if _gacbb !=nil {return ;};_faf =int (_cfdb );};if _bgef >=-1&&(_bgef +1)< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg +_df );if _gacbb !=nil {return ;};_cgg =int (_cfdb );};_gfg ++;if _aaff >=1{_cfdb ,_gacbb =_agdd .RegionBitmap .GetByte (_dga -_dec );if _gacbb !=nil {return ;};_eae =int (_cfdb );};_dga ++;_cd :=_agdd .ReferenceDX %8;_dbd :=6+_cd ;_bfa :=_gfg %_df ;if _dbd >=0{if _dbd < 8{_efa =int16 (_eebc >>uint (_dbd ))&0x07;};if _dbd < 8{_dcdg =int16 (_faf >>uint (_dbd ))&0x07;};if _dbd < 8{_bdc =int16 (_cgg >>uint (_dbd ))&0x07;};if _dbd ==6&&_bfa > 1{if _bgef >=1&&(_bgef -1)< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg -_df -2);if _gacbb !=nil {return _gacbb ;};_efa |=int16 (_cfdb <<2)&0x04;};if _bgef >=0&&_bgef < _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg -2);if _gacbb !=nil {return _gacbb ;};_dcdg |=int16 (_cfdb <<2)&0x04;};if _bgef >=-1&&_bgef +1< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg +_df -2);if _gacbb !=nil {return _gacbb ;};_bdc |=int16 (_cfdb <<2)&0x04;};};if _dbd ==0{_eebc =0;_faf =0;_cgg =0;if _bfa < _df -1{if _bgef >=1&&_bgef -1< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg -_df );if _gacbb !=nil {return _gacbb ;};_eebc =int (_cfdb );};if _bgef >=0&&_bgef < _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg );if _gacbb !=nil {return _gacbb ;};_faf =int (_cfdb );};if _bgef >=-1&&_bgef +1< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg +_df );if _gacbb !=nil {return _gacbb ;};_cgg =int (_cfdb );};};_gfg ++;};}else {_efa =int16 (_eebc <<1)&0x07;_dcdg =int16 (_faf <<1)&0x07;_bdc =int16 (_cgg <<1)&0x07;_eebc =0;_faf =0;_cgg =0;if _bfa < _df -1{if _bgef >=1&&_bgef -1< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg -_df );if _gacbb !=nil {return _gacbb ;};_eebc =int (_cfdb );};if _bgef >=0&&_bgef < _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg );if _gacbb !=nil {return _gacbb ;};_faf =int (_cfdb );};if _bgef >=-1&&_bgef +1< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg +_df );if _gacbb !=nil {return _gacbb ;};_cgg =int (_cfdb );};_gfg ++;};_efa |=int16 ((_eebc >>7)&0x07);_dcdg |=int16 ((_faf >>7)&0x07);_bdc |=int16 ((_cgg >>7)&0x07);};_agda =int16 (_eae >>6);_cgf =0;_bgefa :=(2-_cd )%8;_eebc <<=uint (_bgefa );_faf <<=uint (_bgefa );_cgg <<=uint (_bgefa );_eae <<=2;var _ffb int ;for _fgg :=0;_fgg < _age ;_fgg ++{_fea :=_fgg &0x07;_abbe :=_eea .form (_efa ,_dcdg ,_bdc ,_agda ,_cgf );if _agdd ._gdg {_cfdb ,_gacbb =_agdd .RegionBitmap .GetByte (_agdd .RegionBitmap .GetByteIndex (_fgg ,_aaff ));if _gacbb !=nil {return _gacbb ;};_agdd ._afb .SetIndex (int32 (_agdd .overrideAtTemplate0 (int (_abbe ),_fgg ,_aaff ,int (_cfdb ),_fea )));}else {_agdd ._afb .SetIndex (int32 (_abbe ));};_ffb ,_gacbb =_agdd ._gac .DecodeBit (_agdd ._afb );if _gacbb !=nil {return _gacbb ;};if _gacbb =_agdd .RegionBitmap .SetPixel (_fgg ,_aaff ,byte (_ffb ));_gacbb !=nil {return _gacbb ;};_efa =((_efa <<1)|0x01&int16 (_eebc >>7))&0x07;_dcdg =((_dcdg <<1)|0x01&int16 (_faf >>7))&0x07;_bdc =((_bdc <<1)|0x01&int16 (_cgg >>7))&0x07;_agda =((_agda <<1)|0x01&int16 (_eae >>7))&0x07;_cgf =int16 (_ffb );if (_fgg -int (_agdd .ReferenceDX ))%8==5{_eebc =0;_faf =0;_cgg =0;if ((_fgg -int (_agdd .ReferenceDX ))/8)+1< _agdd .ReferenceBitmap .RowStride {if _bgef >=1&&(_bgef -1)< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg -_df );if _gacbb !=nil {return _gacbb ;};_eebc =int (_cfdb );};if _bgef >=0&&_bgef < _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg );if _gacbb !=nil {return _gacbb ;};_faf =int (_cfdb );};if _bgef >=-1&&(_bgef +1)< _agdd .ReferenceBitmap .Height {_cfdb ,_gacbb =_agdd .ReferenceBitmap .GetByte (_gfg +_df );if _gacbb !=nil {return _gacbb ;};_cgg =int (_cfdb );};};_gfg ++;}else {_eebc <<=1;_faf <<=1;_cgg <<=1;};if _fea ==5&&_aaff >=1{if ((_fgg >>3)+1)>=_agdd .RegionBitmap .RowStride {_eae =0;}else {_cfdb ,_gacbb =_agdd .RegionBitmap .GetByte (_dga -_dec );if _gacbb !=nil {return _gacbb ;};_eae =int (_cfdb );};_dga ++;}else {_eae <<=1;};};return nil ;};const (TSymbolDictionary Type =0;TIntermediateTextRegion Type =4;TImmediateTextRegion Type =6;TImmediateLosslessTextRegion Type =7;TPatternDictionary Type =16;TIntermediateHalftoneRegion Type =20;TImmediateHalftoneRegion Type =22;TImmediateLosslessHalftoneRegion Type =23;TIntermediateGenericRegion Type =36;TImmediateGenericRegion Type =38;TImmediateLosslessGenericRegion Type =39;TIntermediateGenericRefinementRegion Type =40;TImmediateGenericRefinementRegion Type =42;TImmediateLosslessGenericRefinementRegion Type =43;TPageInformation Type =48;TEndOfPage Type =49;TEndOfStrip Type =50;TEndOfFile Type =51;TProfiles Type =52;TTables Type =53;TExtension Type =62;TBitmap Type =70;);var _ templater =&template1 {};func (_egfa *PatternDictionary )GetDictionary ()([]*_af .Bitmap ,error ){if _egfa .Patterns !=nil {return _egfa .Patterns ,nil ;};if !_egfa .IsMMREncoded {_egfa .setGbAtPixels ();};_ebade :=NewGenericRegion (_egfa ._cbeg );_ebade .setParametersMMR (_egfa .IsMMREncoded ,_egfa .DataOffset ,_egfa .DataLength ,uint32 (_egfa .HdpHeight ),(_egfa .GrayMax +1)*uint32 (_egfa .HdpWidth ),_egfa .HDTemplate ,false ,false ,_egfa .GBAtX ,_egfa .GBAtY );_gccd ,_abbd :=_ebade .GetRegionBitmap ();if _abbd !=nil {return nil ,_abbd ;};if _abbd =_egfa .extractPatterns (_gccd );_abbd !=nil {return nil ,_abbd ;};return _egfa .Patterns ,nil ;};func (_fagcd *SymbolDictionary )setRetainedCodingContexts (_bfcg *SymbolDictionary ){_fagcd ._aafg =_bfcg ._aafg ;_fagcd .IsHuffmanEncoded =_bfcg .IsHuffmanEncoded ;_fagcd .UseRefinementAggregation =_bfcg .UseRefinementAggregation ;_fagcd .SdTemplate =_bfcg .SdTemplate ;_fagcd .SdrTemplate =_bfcg .SdrTemplate ;_fagcd .SdATX =_bfcg .SdATX ;_fagcd .SdATY =_bfcg .SdATY ;_fagcd .SdrATX =_bfcg .SdrATX ;_fagcd .SdrATY =_bfcg .SdrATY ;_fagcd ._bddc =_bfcg ._bddc ;};type HalftoneRegion struct{_adbg _f .StreamReader ;_agddc *Header ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;RegionSegment *RegionSegment ;HDefaultPixel int8 ;CombinationOperator _af .CombinationOperator ;HSkipEnabled bool ;HTemplate byte ;IsMMREncoded bool ;HGridWidth uint32 ;HGridHeight uint32 ;HGridX int32 ;HGridY int32 ;HRegionX uint16 ;HRegionY uint16 ;HalftoneRegionBitmap *_af .Bitmap ;Patterns []*_af .Bitmap ;};func (_gfgd *PatternDictionary )readIsMMREncoded ()error {_agdf ,_bdbc :=_gfgd ._cbeg .ReadBit ();if _bdbc !=nil {return _bdbc ;};if _agdf !=0{_gfgd .IsMMREncoded =true ;};return nil ;};func (_gagg *Header )writeSegmentDataLength (_eecae _f .BinaryWriter )(_bedd int ,_bfff error ){_ffde :=make ([]byte ,4);_e .BigEndian .PutUint32 (_ffde ,uint32 (_gagg .SegmentDataLength ));if _bedd ,_bfff =_eecae .Write (_ffde );_bfff !=nil {return 0,_ab .Wrap (_bfff ,"\u0048\u0065a\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0044\u0061\u0074\u0061\u004c\u0065ng\u0074\u0068","");};return _bedd ,nil ;};func (_ffgg *Header )readReferredToSegmentNumbers (_feaa _f .StreamReader ,_gabf int )([]int ,error ){const _caca ="\u0072\u0065\u0061\u0064R\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053e\u0067m\u0065\u006e\u0074\u004e\u0075\u006d\u0062e\u0072\u0073";_fcdd :=make ([]int ,_gabf );if _gabf > 0{_ffgg .RTSegments =make ([]*Header ,_gabf );var (_gacbc uint64 ;_dbdg error ;);for _beda :=0;_beda < _gabf ;_beda ++{_gacbc ,_dbdg =_feaa .ReadBits (byte (_ffgg .referenceSize ())<<3);if _dbdg !=nil {return nil ,_ab .Wrapf (_dbdg ,_caca ,"\u0027\u0025\u0064\u0027 \u0072\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0020\u0073e\u0067m\u0065\u006e\u0074\u0020\u006e\u0075\u006db\u0065\u0072",_beda );};_fcdd [_beda ]=int (_gacbc &_a .MaxInt32 );};};return _fcdd ,nil ;};func (_cdeg *GenericRegion )decodeTemplate0b (_acf ,_fcc ,_bcg int ,_fadc ,_geaa int )(_bbbd error ){const _adcd ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0062";var (_ffd ,_gacec int ;_ece ,_bdcb int ;_bbaa byte ;_decb int ;);if _acf >=1{_bbaa ,_bbbd =_cdeg .Bitmap .GetByte (_geaa );if _bbbd !=nil {return _ab .Wrap (_bbbd ,_adcd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_ece =int (_bbaa );};if _acf >=2{_bbaa ,_bbbd =_cdeg .Bitmap .GetByte (_geaa -_cdeg .Bitmap .RowStride );if _bbbd !=nil {return _ab .Wrap (_bbbd ,_adcd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_bdcb =int (_bbaa )<<6;};_ffd =(_ece &0xf0)|(_bdcb &0x3800);for _aee :=0;_aee < _bcg ;_aee =_decb {var (_eee byte ;_adgc int ;);_decb =_aee +8;if _bded :=_fcc -_aee ;_bded > 8{_adgc =8;}else {_adgc =_bded ;};if _acf > 0{_ece <<=8;if _decb < _fcc {_bbaa ,_bbbd =_cdeg .Bitmap .GetByte (_geaa +1);if _bbbd !=nil {return _ab .Wrap (_bbbd ,_adcd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_ece |=int (_bbaa );};};if _acf > 1{_bdcb <<=8;if _decb < _fcc {_bbaa ,_bbbd =_cdeg .Bitmap .GetByte (_geaa -_cdeg .Bitmap .RowStride +1);if _bbbd !=nil {return _ab .Wrap (_bbbd ,_adcd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_bdcb |=int (_bbaa )<<6;};};for _ceg :=0;_ceg < _adgc ;_ceg ++{_dfbf :=uint (7-_ceg );if _cdeg ._cccgf {_gacec =_cdeg .overrideAtTemplate0b (_ffd ,_aee +_ceg ,_acf ,int (_eee ),_ceg ,int (_dfbf ));_cdeg ._dgbb .SetIndex (int32 (_gacec ));}else {_cdeg ._dgbb .SetIndex (int32 (_ffd ));};var _bdb int ;_bdb ,_bbbd =_cdeg ._bba .DecodeBit (_cdeg ._dgbb );if _bbbd !=nil {return _ab .Wrap (_bbbd ,_adcd ,"");};_eee |=byte (_bdb <<uint (_dfbf ));_ffd =((_ffd &0x7bf7)<<1)|_bdb |((_ece >>_dfbf )&0x10)|((_bdcb >>_dfbf )&0x800);};if _dbf :=_cdeg .Bitmap .SetByte (_fadc ,_eee );_dbf !=nil {return _ab .Wrap (_dbf ,_adcd ,"");};_fadc ++;_geaa ++;};return nil ;};func (_dffg *TextRegion )GetRegionBitmap ()(*_af .Bitmap ,error ){if _dffg .RegionBitmap !=nil {return _dffg .RegionBitmap ,nil ;};if !_dffg .IsHuffmanEncoded {if _gdcf :=_dffg .setCodingStatistics ();_gdcf !=nil {return nil ,_gdcf ;};};if _cdabg :=_dffg .createRegionBitmap ();_cdabg !=nil {return nil ,_cdabg ;};if _cafg :=_dffg .decodeSymbolInstances ();_cafg !=nil {return nil ,_cafg ;};return _dffg .RegionBitmap ,nil ;};func (_ddcf *PageInformationSegment )readIsLossless ()error {_dfeg ,_cdbc :=_ddcf ._feaf .ReadBit ();if _cdbc !=nil {return _cdbc ;};if _dfeg ==1{_ddcf .IsLossless =true ;};return nil ;};func (_bdbf *TextRegion )setCodingStatistics ()error {if _bdbf ._abad ==nil {_bdbf ._abad =_ba .NewStats (512,1);};if _bdbf ._ddfb ==nil {_bdbf ._ddfb =_ba .NewStats (512,1);};if _bdbf ._dcbge ==nil {_bdbf ._dcbge =_ba .NewStats (512,1);};if _bdbf ._edgcc ==nil {_bdbf ._edgcc =_ba .NewStats (512,1);};if _bdbf ._egc ==nil {_bdbf ._egc =_ba .NewStats (512,1);};if _bdbf ._bbgc ==nil {_bdbf ._bbgc =_ba .NewStats (512,1);};if _bdbf ._cdfe ==nil {_bdbf ._cdfe =_ba .NewStats (512,1);};if _bdbf ._cegce ==nil {_bdbf ._cegce =_ba .NewStats (1<<uint (_bdbf ._edbd ),1);};if _bdbf ._abge ==nil {_bdbf ._abge =_ba .NewStats (512,1);};if _bdbf ._cfgb ==nil {_bdbf ._cfgb =_ba .NewStats (512,1);};if _bdbf ._adcb ==nil {var _fgbgd error ;_bdbf ._adcb ,_fgbgd =_ba .New (_bdbf ._bfeb );if _fgbgd !=nil {return _fgbgd ;};};return nil ;};func (_eafb *GenericRegion )String ()string {_ddeg :=&_bd .Builder {};_ddeg .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");_ddeg .WriteString (_eafb .RegionSegment .String ()+"\u000a");_ddeg .WriteString (_ad .Sprintf ("\u0009\u002d\u0020Us\u0065\u0045\u0078\u0074\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_eafb .UseExtTemplates ));_ddeg .WriteString (_ad .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0044\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_eafb .IsTPGDon ));_ddeg .WriteString (_ad .Sprintf ("\u0009-\u0020G\u0042\u0054\u0065\u006d\u0070l\u0061\u0074e\u003a\u0020\u0025\u0064\u000a",_eafb .GBTemplate ));_ddeg .WriteString (_ad .Sprintf ("\t\u002d \u0049\u0073\u004d\u004d\u0052\u0045\u006e\u0063o\u0064\u0065\u0064\u003a %\u0076\u000a",_eafb .IsMMREncoded ));_ddeg .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_eafb .GBAtX ));_ddeg .WriteString (_ad .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_eafb .GBAtY ));_ddeg .WriteString (_ad .Sprintf ("\t\u002d \u0047\u0042\u0041\u0074\u004f\u0076\u0065\u0072r\u0069\u0064\u0065\u003a %\u0076\u000a",_eafb .GBAtOverride ));return _ddeg .String ();};type Regioner interface{GetRegionBitmap ()(*_af .Bitmap ,error );GetRegionInfo ()*RegionSegment ;};func (_baabd *SymbolDictionary )readNumberOfExportedSymbols ()error {_fgbe ,_gfgc :=_baabd ._caad .ReadBits (32);if _gfgc !=nil {return _gfgc ;};_baabd .NumberOfExportedSymbols =uint32 (_fgbe &_a .MaxUint32 );return nil ;};type Pager interface{GetSegment (int )(*Header ,error );GetBitmap ()(*_af .Bitmap ,error );};func (_ebc *GenericRegion )overrideAtTemplate0a (_dbdc ,_afg ,_deeb ,_ffe ,_ceb ,_efd int )int {if _ebc .GBAtOverride [0]{_dbdc &=0xFFEF;if _ebc .GBAtY [0]==0&&_ebc .GBAtX [0]>=-int8 (_ceb ){_dbdc |=(_ffe >>uint (int8 (_efd )-_ebc .GBAtX [0]&0x1))<<4;}else {_dbdc |=int (_ebc .getPixel (_afg +int (_ebc .GBAtX [0]),_deeb +int (_ebc .GBAtY [0])))<<4;};};if _ebc .GBAtOverride [1]{_dbdc &=0xFBFF;if _ebc .GBAtY [1]==0&&_ebc .GBAtX [1]>=-int8 (_ceb ){_dbdc |=(_ffe >>uint (int8 (_efd )-_ebc .GBAtX [1]&0x1))<<10;}else {_dbdc |=int (_ebc .getPixel (_afg +int (_ebc .GBAtX [1]),_deeb +int (_ebc .GBAtY [1])))<<10;};};if _ebc .GBAtOverride [2]{_dbdc &=0xF7FF;if _ebc .GBAtY [2]==0&&_ebc .GBAtX [2]>=-int8 (_ceb ){_dbdc |=(_ffe >>uint (int8 (_efd )-_ebc .GBAtX [2]&0x1))<<11;}else {_dbdc |=int (_ebc .getPixel (_afg +int (_ebc .GBAtX [2]),_deeb +int (_ebc .GBAtY [2])))<<11;};};if _ebc .GBAtOverride [3]{_dbdc &=0x7FFF;if _ebc .GBAtY [3]==0&&_ebc .GBAtX [3]>=-int8 (_ceb ){_dbdc |=(_ffe >>uint (int8 (_efd )-_ebc .GBAtX [3]&0x1))<<15;}else {_dbdc |=int (_ebc .getPixel (_afg +int (_ebc .GBAtX [3]),_deeb +int (_ebc .GBAtY [3])))<<15;};};return _dbdc ;};func (_ffad *template0 )setIndex (_aec *_ba .DecoderStats ){_aec .SetIndex (0x100)};func (_agefd *RegionSegment )parseHeader ()error {const _fafd ="p\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072";_baf .Log .Trace ("\u005b\u0052\u0045\u0047I\u004f\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002dH\u0045A\u0044\u0045\u0052\u005d\u0020\u0042\u0065g\u0069\u006e");defer func (){_baf .Log .Trace ("\u005b\u0052\u0045G\u0049\u004f\u004e\u005d[\u0050\u0041\u0052\u0053\u0045\u002d\u0048E\u0041\u0044\u0045\u0052\u005d\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064");}();_fbc ,_caff :=_agefd ._feag .ReadBits (32);if _caff !=nil {return _ab .Wrap (_caff ,_fafd ,"\u0077\u0069\u0064t\u0068");};_agefd .BitmapWidth =uint32 (_fbc &_a .MaxUint32 );_fbc ,_caff =_agefd ._feag .ReadBits (32);if _caff !=nil {return _ab .Wrap (_caff ,_fafd ,"\u0068\u0065\u0069\u0067\u0068\u0074");};_agefd .BitmapHeight =uint32 (_fbc &_a .MaxUint32 );_fbc ,_caff =_agefd ._feag .ReadBits (32);if _caff !=nil {return _ab .Wrap (_caff ,_fafd ,"\u0078\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_agefd .XLocation =uint32 (_fbc &_a .MaxUint32 );_fbc ,_caff =_agefd ._feag .ReadBits (32);if _caff !=nil {return _ab .Wrap (_caff ,_fafd ,"\u0079\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_agefd .YLocation =uint32 (_fbc &_a .MaxUint32 );if _ ,_caff =_agefd ._feag .ReadBits (5);_caff !=nil {return _ab .Wrap (_caff ,_fafd ,"\u0064i\u0072\u0079\u0020\u0072\u0065\u0061d");};if _caff =_agefd .readCombinationOperator ();_caff !=nil {return _ab .Wrap (_caff ,_fafd ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};return nil ;};func (_bega *SymbolDictionary )InitEncode (symbols *_af .Bitmaps ,symbolList []int ,symbolMap map[int ]int ,unborderSymbols bool )error {const _eced ="S\u0079\u006d\u0062\u006f\u006c\u0044i\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002eI\u006e\u0069\u0074E\u006ec\u006f\u0064\u0065";_bega .SdATX =[]int8 {3,-3,2,-2};_bega .SdATY =[]int8 {-1,-1,-2,-2};_bega ._ceac =symbols ;_bega ._eabd =make ([]int ,len (symbolList ));copy (_bega ._eabd ,symbolList );if len (_bega ._eabd )!=_bega ._ceac .Size (){return _ab .Error (_eced ,"s\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0061\u006e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u004ci\u0073\u0074\u0020\u006f\u0066\u0020\u0064\u0069\u0066\u0066er\u0065\u006e\u0074 \u0073i\u007a\u0065");};_bega .NumberOfNewSymbols =uint32 (symbols .Size ());_bega .NumberOfExportedSymbols =uint32 (symbols .Size ());_bega ._cbgg =symbolMap ;_bega ._cgac =unborderSymbols ;return nil ;};type Header struct{SegmentNumber uint32 ;Type Type ;RetainFlag bool ;PageAssociation int ;PageAssociationFieldSize bool ;RTSegments []*Header ;HeaderLength int64 ;SegmentDataLength uint64 ;SegmentDataStartOffset uint64 ;Reader _f .StreamReader ;SegmentData Segmenter ;RTSNumbers []int ;RetainBits []uint8 ;};func (_eafba *GenericRegion )decodeTemplate2 (_ddd ,_fce ,_egf int ,_fadg ,_aef int )(_gbcb error ){const _bffd ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0032";var (_bgfe ,_cfae int ;_bgae ,_aeb int ;_dca byte ;_ffcb ,_cdegf int ;);if _ddd >=1{_dca ,_gbcb =_eafba .Bitmap .GetByte (_aef );if _gbcb !=nil {return _ab .Wrap (_gbcb ,_bffd ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0031");};_bgae =int (_dca );};if _ddd >=2{_dca ,_gbcb =_eafba .Bitmap .GetByte (_aef -_eafba .Bitmap .RowStride );if _gbcb !=nil {return _ab .Wrap (_gbcb ,_bffd ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0032");};_aeb =int (_dca )<<4;};_bgfe =(_bgae >>3&0x7c)|(_aeb >>3&0x380);for _aga :=0;_aga < _egf ;_aga =_ffcb {var (_fbec byte ;_cff int ;);_ffcb =_aga +8;if _cdb :=_fce -_aga ;_cdb > 8{_cff =8;}else {_cff =_cdb ;};if _ddd > 0{_bgae <<=8;if _ffcb < _fce {_dca ,_gbcb =_eafba .Bitmap .GetByte (_aef +1);if _gbcb !=nil {return _ab .Wrap (_gbcb ,_bffd ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0030");};_bgae |=int (_dca );};};if _ddd > 1{_aeb <<=8;if _ffcb < _fce {_dca ,_gbcb =_eafba .Bitmap .GetByte (_aef -_eafba .Bitmap .RowStride +1);if _gbcb !=nil {return _ab .Wrap (_gbcb ,_bffd ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0031");};_aeb |=int (_dca )<<4;};};for _ccaf :=0;_ccaf < _cff ;_ccaf ++{_gbd :=uint (10-_ccaf );if _eafba ._cccgf {_cfae =_eafba .overrideAtTemplate2 (_bgfe ,_aga +_ccaf ,_ddd ,int (_fbec ),_ccaf );_eafba ._dgbb .SetIndex (int32 (_cfae ));}else {_eafba ._dgbb .SetIndex (int32 (_bgfe ));};_cdegf ,_gbcb =_eafba ._bba .DecodeBit (_eafba ._dgbb );if _gbcb !=nil {return _ab .Wrap (_gbcb ,_bffd ,"");};_fbec |=byte (_cdegf <<uint (7-_ccaf ));_bgfe =((_bgfe &0x1bd)<<1)|_cdegf |((_bgae >>_gbd )&0x4)|((_aeb >>_gbd )&0x80);};if _add :=_eafba .Bitmap .SetByte (_fadg ,_fbec );_add !=nil {return _ab .Wrap (_add ,_bffd ,"");};_fadg ++;_aef ++;};return nil ;};func (_aeec *TextRegion )decodeStripT ()(_fceb int64 ,_ffdg error ){if _aeec .IsHuffmanEncoded {if _aeec .SbHuffDT ==3{if _aeec ._fgbbb ==nil {var _dbag int ;if _aeec .SbHuffFS ==3{_dbag ++;};if _aeec .SbHuffDS ==3{_dbag ++;};_aeec ._fgbbb ,_ffdg =_aeec .getUserTable (_dbag );if _ffdg !=nil {return 0,_ffdg ;};};_fceb ,_ffdg =_aeec ._fgbbb .Decode (_aeec ._bfeb );if _ffdg !=nil {return 0,_ffdg ;};}else {var _ffec _adg .Tabler ;_ffec ,_ffdg =_adg .GetStandardTable (11+int (_aeec .SbHuffDT ));if _ffdg !=nil {return 0,_ffdg ;};_fceb ,_ffdg =_ffec .Decode (_aeec ._bfeb );if _ffdg !=nil {return 0,_ffdg ;};};}else {var _bffdd int32 ;_bffdd ,_ffdg =_aeec ._adcb .DecodeInt (_aeec ._abad );if _ffdg !=nil {return 0,_ffdg ;};_fceb =int64 (_bffdd );};_fceb *=int64 (-_aeec .SbStrips );return _fceb ,nil ;};func (_eede *Header )writeReferredToSegments (_aabd _f .BinaryWriter )(_efaf int ,_ggdd error ){const _cgbe ="\u0077\u0072\u0069te\u0052\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";var (_gaae uint16 ;_ebb uint32 ;);_bfde :=_eede .referenceSize ();_bada :=1;_abe :=make ([]byte ,_bfde );for _ ,_bbg :=range _eede .RTSNumbers {switch _bfde {case 4:_ebb =uint32 (_bbg );_e .BigEndian .PutUint32 (_abe ,_ebb );_bada ,_ggdd =_aabd .Write (_abe );if _ggdd !=nil {return 0,_ab .Wrap (_ggdd ,_cgbe ,"u\u0069\u006e\u0074\u0033\u0032\u0020\u0073\u0069\u007a\u0065");};case 2:_gaae =uint16 (_bbg );_e .BigEndian .PutUint16 (_abe ,_gaae );_bada ,_ggdd =_aabd .Write (_abe );if _ggdd !=nil {return 0,_ab .Wrap (_ggdd ,_cgbe ,"\u0075\u0069\u006e\u0074\u0031\u0036");};default:if _ggdd =_aabd .WriteByte (byte (_bbg ));_ggdd !=nil {return 0,_ab .Wrap (_ggdd ,_cgbe ,"\u0075\u0069\u006et\u0038");};};_efaf +=_bada ;};return _efaf ,nil ;};func (_efbd *Header )readSegmentNumber (_deef _f .StreamReader )error {const _agga ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u004eu\u006d\u0062\u0065\u0072";_ddda :=make ([]byte ,4);_ ,_bgega :=_deef .Read (_ddda );if _bgega !=nil {return _ab .Wrap (_bgega ,_agga ,"");};_efbd .SegmentNumber =_e .BigEndian .Uint32 (_ddda );return nil ;};func (_daeg *template1 )setIndex (_cad *_ba .DecoderStats ){_cad .SetIndex (0x080)};func (_deff *SymbolDictionary )getToExportFlags ()([]int ,error ){var (_gfffb int ;_ccbd int32 ;_aeag error ;_bddd =int32 (_deff ._bdf +_deff .NumberOfNewSymbols );_gee =make ([]int ,_bddd ););for _cffd :=int32 (0);_cffd < _bddd ;_cffd +=_ccbd {if _deff .IsHuffmanEncoded {_bbba ,_bffg :=_adg .GetStandardTable (1);if _bffg !=nil {return nil ,_bffg ;};_eccf ,_bffg :=_bbba .Decode (_deff ._caad );if _bffg !=nil {return nil ,_bffg ;};_ccbd =int32 (_eccf );}else {_ccbd ,_aeag =_deff ._aafg .DecodeInt (_deff ._fgbd );if _aeag !=nil {return nil ,_aeag ;};};if _ccbd !=0{for _ccce :=_cffd ;_ccce < _cffd +_ccbd ;_ccce ++{_gee [_ccce ]=_gfffb ;};};if _gfffb ==0{_gfffb =1;}else {_gfffb =0;};};return _gee ,nil ;};func _fbgc (_gcgf _f .StreamReader ,_efed *Header )*TextRegion {_fgbeb :=&TextRegion {_bfeb :_gcgf ,Header :_efed ,RegionInfo :NewRegionSegment (_gcgf )};return _fgbeb ;};func (_cccb *SymbolDictionary )encodeSymbols (_fadd _f .BinaryWriter )(_bfge int ,_efbe error ){const _dbe ="\u0065\u006e\u0063o\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c";_gacda :=_d .New ();_gacda .Init ();_aggca ,_efbe :=_cccb ._ceac .SelectByIndexes (_cccb ._eabd );if _efbe !=nil {return 0,_ab .Wrap (_efbe ,_dbe ,"\u0069n\u0069\u0074\u0069\u0061\u006c");};_fecb :=map[*_af .Bitmap ]int {};for _dead ,_cfaa :=range _aggca .Values {_fecb [_cfaa ]=_dead ;};_aggca .SortByHeight ();var _eacc ,_gfbb int ;_gade ,_efbe :=_aggca .GroupByHeight ();if _efbe !=nil {return 0,_ab .Wrap (_efbe ,_dbe ,"");};for _ ,_gccc :=range _gade .Values {_gafe :=_gccc .Values [0].Height ;_befg :=_gafe -_eacc ;if _efbe =_gacda .EncodeInteger (_d .IADH ,_befg );_efbe !=nil {return 0,_ab .Wrapf (_efbe ,_dbe ,"\u0049\u0041\u0044\u0048\u0020\u0066\u006f\u0072\u0020\u0064\u0068\u003a \u0027\u0025\u0064\u0027",_befg );};_eacc =_gafe ;_eacg ,_ecfd :=_gccc .GroupByWidth ();if _ecfd !=nil {return 0,_ab .Wrapf (_ecfd ,_dbe ,"\u0068\u0065\u0069g\u0068\u0074\u003a\u0020\u0027\u0025\u0064\u0027",_gafe );};var _ccfd int ;for _ ,_facd :=range _eacg .Values {for _ ,_ddee :=range _facd .Values {_edfc :=_ddee .Width ;_edbg :=_edfc -_ccfd ;if _ecfd =_gacda .EncodeInteger (_d .IADW ,_edbg );_ecfd !=nil {return 0,_ab .Wrapf (_ecfd ,_dbe ,"\u0049\u0041\u0044\u0057\u0020\u0066\u006f\u0072\u0020\u0064\u0077\u003a \u0027\u0025\u0064\u0027",_edbg );};_ccfd +=_edbg ;if _ecfd =_gacda .EncodeBitmap (_ddee ,false );_ecfd !=nil {return 0,_ab .Wrapf (_ecfd ,_dbe ,"H\u0065i\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u0020W\u0069\u0064\u0074\u0068: \u0025\u0064",_gafe ,_edfc );};_feec :=_fecb [_ddee ];_cccb ._cbgg [_feec ]=_gfbb ;_gfbb ++;};};if _ecfd =_gacda .EncodeOOB (_d .IADW );_ecfd !=nil {return 0,_ab .Wrap (_ecfd ,_dbe ,"\u0049\u0041\u0044\u0057");};};if _efbe =_gacda .EncodeInteger (_d .IAEX ,0);_efbe !=nil {return 0,_ab .Wrap (_efbe ,_dbe ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};if _efbe =_gacda .EncodeInteger (_d .IAEX ,len (_cccb ._eabd ));_efbe !=nil {return 0,_ab .Wrap (_efbe ,_dbe ,"\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0073\u0079m\u0062\u006f\u006c\u0073");};_gacda .Final ();_eecbd ,_efbe :=_gacda .WriteTo (_fadd );if _efbe !=nil {return 0,_ab .Wrap (_efbe ,_dbe ,"\u0077\u0072i\u0074\u0069\u006e\u0067 \u0065\u006ec\u006f\u0064\u0065\u0072\u0020\u0063\u006f\u006et\u0065\u0078\u0074\u0020\u0074\u006f\u0020\u0027\u0077\u0027\u0020\u0077r\u0069\u0074\u0065\u0072");};return int (_eecbd ),nil ;};