2021-04-23 20:28:14 +00:00

43 lines
11 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 huffman ;import (_c "errors";_a "fmt";_gb "github.com/unidoc/unipdf/v3/internal/bitwise";_gbd "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_da "math";_d "strings";);func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_abc :=&FixedSizeTable {_ddd :&InternalNode {}};
if _fd :=_abc .InitTree (codeTable );_fd !=nil {return nil ,_fd ;};return _abc ,nil ;};func (_ddf *InternalNode )Decode (r _gb .StreamReader )(int64 ,error ){_ded ,_bg :=r .ReadBit ();if _bg !=nil {return 0,_bg ;};if _ded ==0{return _ddf ._df .Decode (r );
};return _ddf ._ba .Decode (r );};type InternalNode struct{_bba int32 ;_df Node ;_ba Node ;};type Tabler interface{Decode (_bde _gb .StreamReader )(int64 ,error );InitTree (_cfc []*Code )error ;String ()string ;RootNode ()*InternalNode ;};var _ Node =&InternalNode {};
var _ffc =[][][]int32 {{{1,4,0},{2,8,16},{3,16,272},{3,32,65808}},{{1,0,0},{2,0,1},{3,0,2},{4,3,3},{5,6,11},{6,32,75},{6,-1,0}},{{8,8,-256},{1,0,0},{2,0,1},{3,0,2},{4,3,3},{5,6,11},{8,32,-257,999},{7,32,75},{6,-1,0}},{{1,0,1},{2,0,2},{3,0,3},{4,3,4},{5,6,12},{5,32,76}},{{7,8,-255},{1,0,1},{2,0,2},{3,0,3},{4,3,4},{5,6,12},{7,32,-256,999},{6,32,76}},{{5,10,-2048},{4,9,-1024},{4,8,-512},{4,7,-256},{5,6,-128},{5,5,-64},{4,5,-32},{2,7,0},{3,7,128},{3,8,256},{4,9,512},{4,10,1024},{6,32,-2049,999},{6,32,2048}},{{4,9,-1024},{3,8,-512},{4,7,-256},{5,6,-128},{5,5,-64},{4,5,-32},{4,5,0},{5,5,32},{5,6,64},{4,7,128},{3,8,256},{3,9,512},{3,10,1024},{5,32,-1025,999},{5,32,2048}},{{8,3,-15},{9,1,-7},{8,1,-5},{9,0,-3},{7,0,-2},{4,0,-1},{2,1,0},{5,0,2},{6,0,3},{3,4,4},{6,1,20},{4,4,22},{4,5,38},{5,6,70},{5,7,134},{6,7,262},{7,8,390},{6,10,646},{9,32,-16,999},{9,32,1670},{2,-1,0}},{{8,4,-31},{9,2,-15},{8,2,-11},{9,1,-7},{7,1,-5},{4,1,-3},{3,1,-1},{3,1,1},{5,1,3},{6,1,5},{3,5,7},{6,2,39},{4,5,43},{4,6,75},{5,7,139},{5,8,267},{6,8,523},{7,9,779},{6,11,1291},{9,32,-32,999},{9,32,3339},{2,-1,0}},{{7,4,-21},{8,0,-5},{7,0,-4},{5,0,-3},{2,2,-2},{5,0,2},{6,0,3},{7,0,4},{8,0,5},{2,6,6},{5,5,70},{6,5,102},{6,6,134},{6,7,198},{6,8,326},{6,9,582},{6,10,1094},{7,11,2118},{8,32,-22,999},{8,32,4166},{2,-1,0}},{{1,0,1},{2,1,2},{4,0,4},{4,1,5},{5,1,7},{5,2,9},{6,2,13},{7,2,17},{7,3,21},{7,4,29},{7,5,45},{7,6,77},{7,32,141}},{{1,0,1},{2,0,2},{3,1,3},{5,0,5},{5,1,6},{6,1,8},{7,0,10},{7,1,11},{7,2,13},{7,3,17},{7,4,25},{8,5,41},{8,32,73}},{{1,0,1},{3,0,2},{4,0,3},{5,0,4},{4,1,5},{3,3,7},{6,1,15},{6,2,17},{6,3,21},{6,4,29},{6,5,45},{7,6,77},{7,32,141}},{{3,0,-2},{3,0,-1},{1,0,0},{3,0,1},{3,0,2}},{{7,4,-24},{6,2,-8},{5,1,-4},{4,0,-2},{3,0,-1},{1,0,0},{3,0,1},{4,0,2},{5,1,3},{6,2,5},{7,4,9},{7,32,-25,999},{7,32,25}}};
func (_cef *FixedSizeTable )Decode (r _gb .StreamReader )(int64 ,error ){return _cef ._ddd .Decode (r )};func (_fe *StandardTable )InitTree (codeTable []*Code )error {_ebd (codeTable );for _ ,_acf :=range codeTable {if _eeb :=_fe ._acc .append (_acf );
_eeb !=nil {return _eeb ;};};return nil ;};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_gb .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};func (_bf *FixedSizeTable )RootNode ()*InternalNode {return _bf ._ddd };
func (_ce *EncodedTable )Decode (r _gb .StreamReader )(int64 ,error ){return _ce ._ac .Decode (r )};func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_e :=&EncodedTable {_ac :&InternalNode {},BasicTabler :table };if _eb :=_e .parseTable ();
_eb !=nil {return nil ,_eb ;};return _e ,nil ;};func (_bbb *StandardTable )String ()string {return _bbb ._acc .String ()+"\u000a"};func _bdg (_bdc ,_accb int32 )string {var _ffe int32 ;_faf :=make ([]rune ,_accb );for _ed :=int32 (1);_ed <=_accb ;_ed ++{_ffe =_bdc >>uint (_accb -_ed )&1;
if _ffe !=0{_faf [_ed -1]='1';}else {_faf [_ed -1]='0';};};return string (_faf );};func _ae (_de *Code )*OutOfBandNode {return &OutOfBandNode {}};func (_gd *EncodedTable )InitTree (codeTable []*Code )error {_ebd (codeTable );for _ ,_dae :=range codeTable {if _dd :=_gd ._ac .append (_dae );
_dd !=nil {return _dd ;};};return nil ;};type Node interface{Decode (_fg _gb .StreamReader )(int64 ,error );String ()string ;};func (_fdcc *StandardTable )Decode (r _gb .StreamReader )(int64 ,error ){return _fdcc ._acc .Decode (r )};func (_bfb *InternalNode )String ()string {_fbe :=&_d .Builder {};
_fbe .WriteString ("\u000a");_bfb .pad (_fbe );_fbe .WriteString ("\u0030\u003a\u0020");_fbe .WriteString (_bfb ._df .String ()+"\u000a");_bfb .pad (_fbe );_fbe .WriteString ("\u0031\u003a\u0020");_fbe .WriteString (_bfb ._ba .String ()+"\u000a");return _fbe .String ();
};type StandardTable struct{_acc *InternalNode };func (_cfb *OutOfBandNode )Decode (r _gb .StreamReader )(int64 ,error ){return 0,_gbd .ErrOOB };func _ebd (_deg []*Code ){var _bca int32 ;for _ ,_cgfg :=range _deg {_bca =_feg (_bca ,_cgfg ._fde );};_bgb :=make ([]int32 ,_bca +1);
for _ ,_gbdg :=range _deg {_bgb [_gbdg ._fde ]++;};var _gf int32 ;_accd :=make ([]int32 ,len (_bgb )+1);_bgb [0]=0;for _dfb :=int32 (1);_dfb <=int32 (len (_bgb ));_dfb ++{_accd [_dfb ]=(_accd [_dfb -1]+(_bgb [_dfb -1]))<<1;_gf =_accd [_dfb ];for _ ,_aced :=range _deg {if _aced ._fde ==_dfb {_aced ._dc =_gf ;
_gf ++;};};};};func _bbfa (_fbd [][]int32 )(*StandardTable ,error ){var _ad []*Code ;for _deb :=0;_deb < len (_fbd );_deb ++{_ecb :=_fbd [_deb ][0];_fdg :=_fbd [_deb ][1];_bc :=_fbd [_deb ][2];var _gce bool ;if len (_fbd [_deb ])> 3{_gce =true ;};_ad =append (_ad ,NewCode (_ecb ,_fdg ,_bc ,_gce ));
};_af :=&StandardTable {_acc :_cgf (0)};if _ea :=_af .InitTree (_ad );_ea !=nil {return nil ,_ea ;};return _af ,nil ;};func (_bbf *InternalNode )append (_ggc *Code )(_ddb error ){if _ggc ._fde ==0{return nil ;};_cga :=_ggc ._fde -1-_bbf ._bba ;if _cga < 0{return _c .New ("\u004e\u0065\u0067\u0061\u0074\u0069\u0076\u0065\u0020\u0073\u0068\u0069\u0066\u0074\u0069n\u0067 \u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006c\u006c\u006f\u0077\u0065\u0064");
};_eg :=(_ggc ._dc >>uint (_cga ))&0x1;if _cga ==0{if _ggc ._afg ==-1{if _eg ==1{if _bbf ._ba !=nil {return _a .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_ggc );
};_bbf ._ba =_ae (_ggc );}else {if _bbf ._df !=nil {return _a .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_ggc );};_bbf ._df =_ae (_ggc );};}else {if _eg ==1{if _bbf ._ba !=nil {return _a .Errorf ("\u0056\u0061\u006cue\u0020\u004e\u006f\u0064\u0065\u0020\u0061\u006c\u0072e\u0061d\u0079 \u0073e\u0074\u0020\u0066\u006f\u0072\u0020\u0063\u006f\u0064\u0065\u0020\u0025\u0073",_ggc );
};_bbf ._ba =_cdd (_ggc );}else {if _bbf ._df !=nil {return _a .Errorf ("\u0056\u0061\u006cue\u0020\u004e\u006f\u0064\u0065\u0020\u0061\u006c\u0072e\u0061d\u0079 \u0073e\u0074\u0020\u0066\u006f\u0072\u0020\u0063\u006f\u0064\u0065\u0020\u0025\u0073",_ggc );
};_bbf ._df =_cdd (_ggc );};};}else {if _eg ==1{if _bbf ._ba ==nil {_bbf ._ba =_cgf (_bbf ._bba +1);};if _ddb =_bbf ._ba .(*InternalNode ).append (_ggc );_ddb !=nil {return _ddb ;};}else {if _bbf ._df ==nil {_bbf ._df =_cgf (_bbf ._bba +1);};if _ddb =_bbf ._df .(*InternalNode ).append (_ggc );
_ddb !=nil {return _ddb ;};};};return nil ;};type OutOfBandNode struct{};func (_fdc *InternalNode )pad (_aa *_d .Builder ){for _dbf :=int32 (0);_dbf < _fdc ._bba ;_dbf ++{_aa .WriteString ("\u0020\u0020\u0020");};};func (_cac *ValueNode )String ()string {return _a .Sprintf ("\u0025\u0064\u002f%\u0064",_cac ._be ,_cac ._dg );
};func (_db *FixedSizeTable )String ()string {return _db ._ddd .String ()+"\u000a"};func _cgf (_cgd int32 )*InternalNode {return &InternalNode {_bba :_cgd }};func (_gda *ValueNode )Decode (r _gb .StreamReader )(int64 ,error ){_bb ,_cd :=r .ReadBits (byte (_gda ._be ));
if _cd !=nil {return 0,_cd ;};if _gda ._gea {_bb =-_bb ;};return int64 (_gda ._dg )+int64 (_bb ),nil ;};func (_ge *EncodedTable )parseTable ()error {var (_ab []*Code ;_ca ,_bd ,_ag int32 ;_cb uint64 ;_ee error ;);_ff :=_ge .StreamReader ();_eec :=_ge .HtLow ();
for _eec < _ge .HtHigh (){_cb ,_ee =_ff .ReadBits (byte (_ge .HtPS ()));if _ee !=nil {return _ee ;};_ca =int32 (_cb );_cb ,_ee =_ff .ReadBits (byte (_ge .HtRS ()));if _ee !=nil {return _ee ;};_bd =int32 (_cb );_ab =append (_ab ,NewCode (_ca ,_bd ,_ag ,false ));
_eec +=1<<uint (_bd );};_cb ,_ee =_ff .ReadBits (byte (_ge .HtPS ()));if _ee !=nil {return _ee ;};_ca =int32 (_cb );_bd =32;_ag =_ge .HtLow ()-1;_ab =append (_ab ,NewCode (_ca ,_bd ,_ag ,true ));_cb ,_ee =_ff .ReadBits (byte (_ge .HtPS ()));if _ee !=nil {return _ee ;
};_ca =int32 (_cb );_bd =32;_ag =_ge .HtHigh ();_ab =append (_ab ,NewCode (_ca ,_bd ,_ag ,false ));if _ge .HtOOB ()==1{_cb ,_ee =_ff .ReadBits (byte (_ge .HtPS ()));if _ee !=nil {return _ee ;};_ca =int32 (_cb );_ab =append (_ab ,NewCode (_ca ,-1,-1,false ));
};if _ee =_ge .InitTree (_ab );_ee !=nil {return _ee ;};return nil ;};type ValueNode struct{_be int32 ;_dg int32 ;_gea bool ;};func (_gg *OutOfBandNode )String ()string {return _a .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_da .MaxInt64 ));};var _ Node =&ValueNode {};
func (_gc *StandardTable )RootNode ()*InternalNode {return _gc ._acc };var _ Node =&OutOfBandNode {};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_fde :prefixLength ,_afg :rangeLength ,_cfe :rangeLow ,_ga :isLowerRange ,_dc :-1};
};var _dee =make ([]Tabler ,len (_ffc ));func _cdd (_cce *Code )*ValueNode {return &ValueNode {_be :_cce ._afg ,_dg :_cce ._cfe ,_gea :_cce ._ga }};func (_b *EncodedTable )String ()string {return _b ._ac .String ()+"\u000a"};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_dee ){return nil ,_c .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
};_fgb :=_dee [number -1];if _fgb ==nil {var _cbe error ;_fgb ,_cbe =_bbfa (_ffc [number -1]);if _cbe !=nil {return nil ,_cbe ;};_dee [number -1]=_fgb ;};return _fgb ,nil ;};type Code struct{_fde int32 ;_afg int32 ;_cfe int32 ;_ga bool ;_dc int32 ;};func _feg (_acb ,_cgfd int32 )int32 {if _acb > _cgfd {return _acb ;
};return _cgfd ;};var _ Tabler =&EncodedTable {};func (_cg *FixedSizeTable )InitTree (codeTable []*Code )error {_ebd (codeTable );for _ ,_cc :=range codeTable {_cf :=_cg ._ddd .append (_cc );if _cf !=nil {return _cf ;};};return nil ;};type EncodedTable struct{BasicTabler ;
_ac *InternalNode ;};type FixedSizeTable struct{_ddd *InternalNode };func (_fae *Code )String ()string {var _eaf string ;if _fae ._dc !=-1{_eaf =_bdg (_fae ._dc ,_fae ._fde );}else {_eaf ="\u003f";};return _a .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_eaf ,_fae ._fde ,_fae ._afg ,_fae ._cfe );
};func (_fa *EncodedTable )RootNode ()*InternalNode {return _fa ._ac };