aboutsummaryrefslogtreecommitdiff
path: root/unipdf/internal/ccittfax
diff options
context:
space:
mode:
Diffstat (limited to 'unipdf/internal/ccittfax')
-rw-r--r--unipdf/internal/ccittfax/ccittfax.go130
1 files changed, 130 insertions, 0 deletions
diff --git a/unipdf/internal/ccittfax/ccittfax.go b/unipdf/internal/ccittfax/ccittfax.go
new file mode 100644
index 0000000..eebeb02
--- /dev/null
+++ b/unipdf/internal/ccittfax/ccittfax.go
@@ -0,0 +1,130 @@
+//
+// 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 ccittfax ;import (_e "errors";_d "github.com/unidoc/unipdf/v4/internal/bitwise";_g "io";_b "math";);func _affc (_gbbe int ,_aac bool )(code ,int ,bool ){if _gbbe < 64{if _aac {return _db [_gbbe ],0,true ;};return _fe [_gbbe ],0,true ;};_gbfd :=_gbbe /64;
+if _gbfd > 40{return _dgb [2560],_gbbe -2560,false ;};if _gbfd > 27{return _dgb [_gbfd *64],_gbbe -_gbfd *64,false ;};if _aac {return _ed [_gbfd *64],_gbbe -_gbfd *64,false ;};return _fab [_gbfd *64],_gbbe -_gbfd *64,false ;};func init (){_c =&treeNode {_fefg :true ,_beb :_fa };
+_dc =&treeNode {_beb :_ca ,_dac :_c };_dc ._efcb =_dc ;_a =&tree {_cfd :&treeNode {}};if _ce :=_a .fillWithNode (12,0,_dc );_ce !=nil {panic (_ce .Error ());};if _cc :=_a .fillWithNode (12,1,_c );_cc !=nil {panic (_cc .Error ());};_cf =&tree {_cfd :&treeNode {}};
+for _fbe :=0;_fbe < len (_dg );_fbe ++{for _ag :=0;_ag < len (_dg [_fbe ]);_ag ++{if _bf :=_cf .fill (_fbe +2,int (_dg [_fbe ][_ag ]),int (_fbg [_fbe ][_ag ]));_bf !=nil {panic (_bf .Error ());};};};if _ff :=_cf .fillWithNode (12,0,_dc );_ff !=nil {panic (_ff .Error ());
+};if _fae :=_cf .fillWithNode (12,1,_c );_fae !=nil {panic (_fae .Error ());};_ba =&tree {_cfd :&treeNode {}};for _ffd :=0;_ffd < len (_bdg );_ffd ++{for _bd :=0;_bd < len (_bdg [_ffd ]);_bd ++{if _ae :=_ba .fill (_ffd +4,int (_bdg [_ffd ][_bd ]),int (_ge [_ffd ][_bd ]));
+_ae !=nil {panic (_ae .Error ());};};};if _ab :=_ba .fillWithNode (12,0,_dc );_ab !=nil {panic (_ab .Error ());};if _bb :=_ba .fillWithNode (12,1,_c );_bb !=nil {panic (_bb .Error ());};_cg =&tree {_cfd :&treeNode {}};if _ced :=_cg .fill (4,1,_eb );_ced !=nil {panic (_ced .Error ());
+};if _cd :=_cg .fill (3,1,_df );_cd !=nil {panic (_cd .Error ());};if _af :=_cg .fill (1,1,0);_af !=nil {panic (_af .Error ());};if _be :=_cg .fill (3,3,1);_be !=nil {panic (_be .Error ());};if _gc :=_cg .fill (6,3,2);_gc !=nil {panic (_gc .Error ());};
+if _aff :=_cg .fill (7,3,3);_aff !=nil {panic (_aff .Error ());};if _ea :=_cg .fill (3,2,-1);_ea !=nil {panic (_ea .Error ());};if _ec :=_cg .fill (6,2,-2);_ec !=nil {panic (_ec .Error ());};if _cda :=_cg .fill (7,2,-3);_cda !=nil {panic (_cda .Error ());
+};};func (_dbfd *Decoder )decodeRun (_egf *tree )(int ,error ){var _edd int ;_ggae :=_egf ._cfd ;for {_fegc ,_dfe :=_dbfd ._ddg .ReadBool ();if _dfe !=nil {return 0,_dfe ;};_ggae =_ggae .walk (_fegc );if _ggae ==nil {return 0,_e .New ("\u0075\u006e\u006bno\u0077\u006e\u0020\u0063\u006f\u0064\u0065\u0020\u0069n\u0020H\u0075f\u0066m\u0061\u006e\u0020\u0052\u004c\u0045\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
+};if _ggae ._fefg {_edd +=_ggae ._beb ;switch {case _ggae ._beb >=64:_ggae =_egf ._cfd ;case _ggae ._beb >=0:return _edd ,nil ;default:return _dbfd ._ddc ,nil ;};};};};func (_dbbe *Encoder )appendEncodedRow (_bafg ,_efa []byte ,_fdea int )[]byte {if len (_bafg )> 0&&_fdea !=0&&!_dbbe .EncodedByteAlign {_bafg [len (_bafg )-1]=_bafg [len (_bafg )-1]|_efa [0];
+_bafg =append (_bafg ,_efa [1:]...);}else {_bafg =append (_bafg ,_efa ...);};return _bafg ;};func (_eba *Encoder )encodeG4 (_dgf [][]byte )[]byte {_daf :=make ([][]byte ,len (_dgf ));copy (_daf ,_dgf );_daf =_dea (_daf );var _dcb []byte ;var _gea int ;
+for _bca :=1;_bca < len (_daf );_bca ++{if _eba .Rows > 0&&!_eba .EndOfBlock &&_bca ==(_eba .Rows +1){break ;};var _gbg []byte ;var _ffe ,_eegg ,_bedb int ;_efca :=_gea ;_feag :=-1;for _feag < len (_daf [_bca ]){_ffe =_afc (_daf [_bca ],_feag );_eegg =_gfgf (_daf [_bca ],_daf [_bca -1],_feag );
+_bedb =_afc (_daf [_bca -1],_eegg );if _bedb < _ffe {_gbg ,_efca =_bea (_gbg ,_efca ,_de );_feag =_bedb ;}else {if _b .Abs (float64 (_eegg -_ffe ))> 3{_gbg ,_efca ,_feag =_dfg (_daf [_bca ],_gbg ,_efca ,_feag ,_ffe );}else {_gbg ,_efca =_fcga (_gbg ,_efca ,_ffe ,_eegg );
+_feag =_ffe ;};};};_dcb =_eba .appendEncodedRow (_dcb ,_gbg ,_gea );if _eba .EncodedByteAlign {_efca =0;};_gea =_efca %8;};if _eba .EndOfBlock {_ggd ,_ :=_caac (_gea );_dcb =_eba .appendEncodedRow (_dcb ,_ggd ,_gea );};return _dcb ;};func (_cfa *Encoder )Encode (pixels [][]byte )[]byte {if _cfa .BlackIs1 {_gcfc =0;
+_cae =1;}else {_gcfc =1;_cae =0;};if _cfa .K ==0{return _cfa .encodeG31D (pixels );};if _cfa .K > 0{return _cfa .encodeG32D (pixels );};if _cfa .K < 0{return _cfa .encodeG4 (pixels );};return nil ;};func _gfgf (_gge ,_dfc []byte ,_bfa int )int {_bgaf :=_afc (_dfc ,_bfa );
+if _bgaf < len (_dfc )&&(_bfa ==-1&&_dfc [_bgaf ]==_gcfc ||_bfa >=0&&_bfa < len (_gge )&&_gge [_bfa ]==_dfc [_bgaf ]||_bfa >=len (_gge )&&_gge [_bfa -1]!=_dfc [_bgaf ]){_bgaf =_afc (_dfc ,_bgaf );};return _bgaf ;};func (_eecc *treeNode )set (_cbef bool ,_ggb *treeNode ){if !_cbef {_eecc ._efcb =_ggb ;
+}else {_eecc ._dac =_ggb ;};};func init (){_fe =make (map[int ]code );_fe [0]=code {Code :13<<8|3<<6,BitsWritten :10};_fe [1]=code {Code :2<<(5+8),BitsWritten :3};_fe [2]=code {Code :3<<(6+8),BitsWritten :2};_fe [3]=code {Code :2<<(6+8),BitsWritten :2};
+_fe [4]=code {Code :3<<(5+8),BitsWritten :3};_fe [5]=code {Code :3<<(4+8),BitsWritten :4};_fe [6]=code {Code :2<<(4+8),BitsWritten :4};_fe [7]=code {Code :3<<(3+8),BitsWritten :5};_fe [8]=code {Code :5<<(2+8),BitsWritten :6};_fe [9]=code {Code :4<<(2+8),BitsWritten :6};
+_fe [10]=code {Code :4<<(1+8),BitsWritten :7};_fe [11]=code {Code :5<<(1+8),BitsWritten :7};_fe [12]=code {Code :7<<(1+8),BitsWritten :7};_fe [13]=code {Code :4<<8,BitsWritten :8};_fe [14]=code {Code :7<<8,BitsWritten :8};_fe [15]=code {Code :12<<8,BitsWritten :9};
+_fe [16]=code {Code :5<<8|3<<6,BitsWritten :10};_fe [17]=code {Code :6<<8,BitsWritten :10};_fe [18]=code {Code :2<<8,BitsWritten :10};_fe [19]=code {Code :12<<8|7<<5,BitsWritten :11};_fe [20]=code {Code :13<<8,BitsWritten :11};_fe [21]=code {Code :13<<8|4<<5,BitsWritten :11};
+_fe [22]=code {Code :6<<8|7<<5,BitsWritten :11};_fe [23]=code {Code :5<<8,BitsWritten :11};_fe [24]=code {Code :2<<8|7<<5,BitsWritten :11};_fe [25]=code {Code :3<<8,BitsWritten :11};_fe [26]=code {Code :12<<8|10<<4,BitsWritten :12};_fe [27]=code {Code :12<<8|11<<4,BitsWritten :12};
+_fe [28]=code {Code :12<<8|12<<4,BitsWritten :12};_fe [29]=code {Code :12<<8|13<<4,BitsWritten :12};_fe [30]=code {Code :6<<8|8<<4,BitsWritten :12};_fe [31]=code {Code :6<<8|9<<4,BitsWritten :12};_fe [32]=code {Code :6<<8|10<<4,BitsWritten :12};_fe [33]=code {Code :6<<8|11<<4,BitsWritten :12};
+_fe [34]=code {Code :13<<8|2<<4,BitsWritten :12};_fe [35]=code {Code :13<<8|3<<4,BitsWritten :12};_fe [36]=code {Code :13<<8|4<<4,BitsWritten :12};_fe [37]=code {Code :13<<8|5<<4,BitsWritten :12};_fe [38]=code {Code :13<<8|6<<4,BitsWritten :12};_fe [39]=code {Code :13<<8|7<<4,BitsWritten :12};
+_fe [40]=code {Code :6<<8|12<<4,BitsWritten :12};_fe [41]=code {Code :6<<8|13<<4,BitsWritten :12};_fe [42]=code {Code :13<<8|10<<4,BitsWritten :12};_fe [43]=code {Code :13<<8|11<<4,BitsWritten :12};_fe [44]=code {Code :5<<8|4<<4,BitsWritten :12};_fe [45]=code {Code :5<<8|5<<4,BitsWritten :12};
+_fe [46]=code {Code :5<<8|6<<4,BitsWritten :12};_fe [47]=code {Code :5<<8|7<<4,BitsWritten :12};_fe [48]=code {Code :6<<8|4<<4,BitsWritten :12};_fe [49]=code {Code :6<<8|5<<4,BitsWritten :12};_fe [50]=code {Code :5<<8|2<<4,BitsWritten :12};_fe [51]=code {Code :5<<8|3<<4,BitsWritten :12};
+_fe [52]=code {Code :2<<8|4<<4,BitsWritten :12};_fe [53]=code {Code :3<<8|7<<4,BitsWritten :12};_fe [54]=code {Code :3<<8|8<<4,BitsWritten :12};_fe [55]=code {Code :2<<8|7<<4,BitsWritten :12};_fe [56]=code {Code :2<<8|8<<4,BitsWritten :12};_fe [57]=code {Code :5<<8|8<<4,BitsWritten :12};
+_fe [58]=code {Code :5<<8|9<<4,BitsWritten :12};_fe [59]=code {Code :2<<8|11<<4,BitsWritten :12};_fe [60]=code {Code :2<<8|12<<4,BitsWritten :12};_fe [61]=code {Code :5<<8|10<<4,BitsWritten :12};_fe [62]=code {Code :6<<8|6<<4,BitsWritten :12};_fe [63]=code {Code :6<<8|7<<4,BitsWritten :12};
+_db =make (map[int ]code );_db [0]=code {Code :53<<8,BitsWritten :8};_db [1]=code {Code :7<<(2+8),BitsWritten :6};_db [2]=code {Code :7<<(4+8),BitsWritten :4};_db [3]=code {Code :8<<(4+8),BitsWritten :4};_db [4]=code {Code :11<<(4+8),BitsWritten :4};_db [5]=code {Code :12<<(4+8),BitsWritten :4};
+_db [6]=code {Code :14<<(4+8),BitsWritten :4};_db [7]=code {Code :15<<(4+8),BitsWritten :4};_db [8]=code {Code :19<<(3+8),BitsWritten :5};_db [9]=code {Code :20<<(3+8),BitsWritten :5};_db [10]=code {Code :7<<(3+8),BitsWritten :5};_db [11]=code {Code :8<<(3+8),BitsWritten :5};
+_db [12]=code {Code :8<<(2+8),BitsWritten :6};_db [13]=code {Code :3<<(2+8),BitsWritten :6};_db [14]=code {Code :52<<(2+8),BitsWritten :6};_db [15]=code {Code :53<<(2+8),BitsWritten :6};_db [16]=code {Code :42<<(2+8),BitsWritten :6};_db [17]=code {Code :43<<(2+8),BitsWritten :6};
+_db [18]=code {Code :39<<(1+8),BitsWritten :7};_db [19]=code {Code :12<<(1+8),BitsWritten :7};_db [20]=code {Code :8<<(1+8),BitsWritten :7};_db [21]=code {Code :23<<(1+8),BitsWritten :7};_db [22]=code {Code :3<<(1+8),BitsWritten :7};_db [23]=code {Code :4<<(1+8),BitsWritten :7};
+_db [24]=code {Code :40<<(1+8),BitsWritten :7};_db [25]=code {Code :43<<(1+8),BitsWritten :7};_db [26]=code {Code :19<<(1+8),BitsWritten :7};_db [27]=code {Code :36<<(1+8),BitsWritten :7};_db [28]=code {Code :24<<(1+8),BitsWritten :7};_db [29]=code {Code :2<<8,BitsWritten :8};
+_db [30]=code {Code :3<<8,BitsWritten :8};_db [31]=code {Code :26<<8,BitsWritten :8};_db [32]=code {Code :27<<8,BitsWritten :8};_db [33]=code {Code :18<<8,BitsWritten :8};_db [34]=code {Code :19<<8,BitsWritten :8};_db [35]=code {Code :20<<8,BitsWritten :8};
+_db [36]=code {Code :21<<8,BitsWritten :8};_db [37]=code {Code :22<<8,BitsWritten :8};_db [38]=code {Code :23<<8,BitsWritten :8};_db [39]=code {Code :40<<8,BitsWritten :8};_db [40]=code {Code :41<<8,BitsWritten :8};_db [41]=code {Code :42<<8,BitsWritten :8};
+_db [42]=code {Code :43<<8,BitsWritten :8};_db [43]=code {Code :44<<8,BitsWritten :8};_db [44]=code {Code :45<<8,BitsWritten :8};_db [45]=code {Code :4<<8,BitsWritten :8};_db [46]=code {Code :5<<8,BitsWritten :8};_db [47]=code {Code :10<<8,BitsWritten :8};
+_db [48]=code {Code :11<<8,BitsWritten :8};_db [49]=code {Code :82<<8,BitsWritten :8};_db [50]=code {Code :83<<8,BitsWritten :8};_db [51]=code {Code :84<<8,BitsWritten :8};_db [52]=code {Code :85<<8,BitsWritten :8};_db [53]=code {Code :36<<8,BitsWritten :8};
+_db [54]=code {Code :37<<8,BitsWritten :8};_db [55]=code {Code :88<<8,BitsWritten :8};_db [56]=code {Code :89<<8,BitsWritten :8};_db [57]=code {Code :90<<8,BitsWritten :8};_db [58]=code {Code :91<<8,BitsWritten :8};_db [59]=code {Code :74<<8,BitsWritten :8};
+_db [60]=code {Code :75<<8,BitsWritten :8};_db [61]=code {Code :50<<8,BitsWritten :8};_db [62]=code {Code :51<<8,BitsWritten :8};_db [63]=code {Code :52<<8,BitsWritten :8};_fab =make (map[int ]code );_fab [64]=code {Code :3<<8|3<<6,BitsWritten :10};_fab [128]=code {Code :12<<8|8<<4,BitsWritten :12};
+_fab [192]=code {Code :12<<8|9<<4,BitsWritten :12};_fab [256]=code {Code :5<<8|11<<4,BitsWritten :12};_fab [320]=code {Code :3<<8|3<<4,BitsWritten :12};_fab [384]=code {Code :3<<8|4<<4,BitsWritten :12};_fab [448]=code {Code :3<<8|5<<4,BitsWritten :12};
+_fab [512]=code {Code :3<<8|12<<3,BitsWritten :13};_fab [576]=code {Code :3<<8|13<<3,BitsWritten :13};_fab [640]=code {Code :2<<8|10<<3,BitsWritten :13};_fab [704]=code {Code :2<<8|11<<3,BitsWritten :13};_fab [768]=code {Code :2<<8|12<<3,BitsWritten :13};
+_fab [832]=code {Code :2<<8|13<<3,BitsWritten :13};_fab [896]=code {Code :3<<8|18<<3,BitsWritten :13};_fab [960]=code {Code :3<<8|19<<3,BitsWritten :13};_fab [1024]=code {Code :3<<8|20<<3,BitsWritten :13};_fab [1088]=code {Code :3<<8|21<<3,BitsWritten :13};
+_fab [1152]=code {Code :3<<8|22<<3,BitsWritten :13};_fab [1216]=code {Code :119<<3,BitsWritten :13};_fab [1280]=code {Code :2<<8|18<<3,BitsWritten :13};_fab [1344]=code {Code :2<<8|19<<3,BitsWritten :13};_fab [1408]=code {Code :2<<8|20<<3,BitsWritten :13};
+_fab [1472]=code {Code :2<<8|21<<3,BitsWritten :13};_fab [1536]=code {Code :2<<8|26<<3,BitsWritten :13};_fab [1600]=code {Code :2<<8|27<<3,BitsWritten :13};_fab [1664]=code {Code :3<<8|4<<3,BitsWritten :13};_fab [1728]=code {Code :3<<8|5<<3,BitsWritten :13};
+_ed =make (map[int ]code );_ed [64]=code {Code :27<<(3+8),BitsWritten :5};_ed [128]=code {Code :18<<(3+8),BitsWritten :5};_ed [192]=code {Code :23<<(2+8),BitsWritten :6};_ed [256]=code {Code :55<<(1+8),BitsWritten :7};_ed [320]=code {Code :54<<8,BitsWritten :8};
+_ed [384]=code {Code :55<<8,BitsWritten :8};_ed [448]=code {Code :100<<8,BitsWritten :8};_ed [512]=code {Code :101<<8,BitsWritten :8};_ed [576]=code {Code :104<<8,BitsWritten :8};_ed [640]=code {Code :103<<8,BitsWritten :8};_ed [704]=code {Code :102<<8,BitsWritten :9};
+_ed [768]=code {Code :102<<8|1<<7,BitsWritten :9};_ed [832]=code {Code :105<<8,BitsWritten :9};_ed [896]=code {Code :105<<8|1<<7,BitsWritten :9};_ed [960]=code {Code :106<<8,BitsWritten :9};_ed [1024]=code {Code :106<<8|1<<7,BitsWritten :9};_ed [1088]=code {Code :107<<8,BitsWritten :9};
+_ed [1152]=code {Code :107<<8|1<<7,BitsWritten :9};_ed [1216]=code {Code :108<<8,BitsWritten :9};_ed [1280]=code {Code :108<<8|1<<7,BitsWritten :9};_ed [1344]=code {Code :109<<8,BitsWritten :9};_ed [1408]=code {Code :109<<8|1<<7,BitsWritten :9};_ed [1472]=code {Code :76<<8,BitsWritten :9};
+_ed [1536]=code {Code :76<<8|1<<7,BitsWritten :9};_ed [1600]=code {Code :77<<8,BitsWritten :9};_ed [1664]=code {Code :24<<(2+8),BitsWritten :6};_ed [1728]=code {Code :77<<8|1<<7,BitsWritten :9};_dgb =make (map[int ]code );_dgb [1792]=code {Code :1<<8,BitsWritten :11};
+_dgb [1856]=code {Code :1<<8|4<<5,BitsWritten :11};_dgb [1920]=code {Code :1<<8|5<<5,BitsWritten :11};_dgb [1984]=code {Code :1<<8|2<<4,BitsWritten :12};_dgb [2048]=code {Code :1<<8|3<<4,BitsWritten :12};_dgb [2112]=code {Code :1<<8|4<<4,BitsWritten :12};
+_dgb [2176]=code {Code :1<<8|5<<4,BitsWritten :12};_dgb [2240]=code {Code :1<<8|6<<4,BitsWritten :12};_dgb [2304]=code {Code :1<<8|7<<4,BitsWritten :12};_dgb [2368]=code {Code :1<<8|12<<4,BitsWritten :12};_dgb [2432]=code {Code :1<<8|13<<4,BitsWritten :12};
+_dgb [2496]=code {Code :1<<8|14<<4,BitsWritten :12};_dgb [2560]=code {Code :1<<8|15<<4,BitsWritten :12};_gb =make (map[int ]byte );_gb [0]=0xFF;_gb [1]=0xFE;_gb [2]=0xFC;_gb [3]=0xF8;_gb [4]=0xF0;_gb [5]=0xE0;_gb [6]=0xC0;_gb [7]=0x80;_gb [8]=0x00;};type Decoder struct{_ddc int ;
+_ef int ;_fc int ;_ebf []byte ;_edb int ;_gd bool ;_faf bool ;_feg bool ;_adf bool ;_cb bool ;_gg bool ;_cff bool ;_ee int ;_bac int ;_ebd []int ;_bg []int ;_dbc int ;_eaf int ;_gcc int ;_eef int ;_ddg *_d .Reader ;_bff tiffType ;_ceg error ;};func (_eegd *Decoder )decodeRowType6 ()error {if _eegd ._cff {_eegd ._ddg .Align ();
+};if _eegd ._gg {_eegd ._ddg .Mark ();_fgd ,_cbg :=_eegd .tryFetchEOL ();if _cbg !=nil {return _cbg ;};if _fgd {_fgd ,_cbg =_eegd .tryFetchEOL ();if _cbg !=nil {return _cbg ;};if _fgd {return _g .EOF ;};};_eegd ._ddg .Reset ();};return _eegd .decode2D ();
+};func (_afbd *Decoder )tryFetchRTC2D ()(_cgd error ){_afbd ._ddg .Mark ();var _effd bool ;for _bfd :=0;_bfd < 5;_bfd ++{_effd ,_cgd =_afbd .tryFetchEOL1 ();if _cgd !=nil {if _e .Is (_cgd ,_g .EOF ){if _bfd ==0{break ;};return _fg ;};};if _effd {continue ;
+};if _bfd > 0{return _fg ;};break ;};if _effd {return _g .EOF ;};_afbd ._ddg .Reset ();return _cgd ;};func _bea (_bgb []byte ,_agb int ,_ebff code )([]byte ,int ){_dfb :=0;for _dfb < _ebff .BitsWritten {_cdd :=_agb /8;_abge :=_agb %8;if _cdd >=len (_bgb ){_bgb =append (_bgb ,0);
+};_cbbb :=8-_abge ;_eede :=_ebff .BitsWritten -_dfb ;if _cbbb > _eede {_cbbb =_eede ;};if _dfb < 8{_bgb [_cdd ]=_bgb [_cdd ]|byte (_ebff .Code >>uint (8+_abge -_dfb ))&_gb [8-_cbbb -_abge ];}else {_bgb [_cdd ]=_bgb [_cdd ]|(byte (_ebff .Code <<uint (_dfb -8))&_gb [8-_cbbb ])>>uint (_abge );
+};_agb +=_cbbb ;_dfb +=_cbbb ;};return _bgb ,_agb ;};func (_efg *Decoder )decoderRowType41D ()error {if _efg ._cff {_efg ._ddg .Align ();};_efg ._ddg .Mark ();var (_cce bool ;_gee error ;);if _efg ._cb {_cce ,_gee =_efg .tryFetchEOL ();if _gee !=nil {return _gee ;
+};if !_cce {return _agg ;};}else {_cce ,_gee =_efg .looseFetchEOL ();if _gee !=nil {return _gee ;};};if !_cce {_efg ._ddg .Reset ();};if _cce &&_efg ._gg {_efg ._ddg .Mark ();for _fafc :=0;_fafc < 5;_fafc ++{_cce ,_gee =_efg .tryFetchEOL ();if _gee !=nil {if _e .Is (_gee ,_g .EOF ){if _fafc ==0{break ;
+};return _fg ;};};if _cce {continue ;};if _fafc > 0{return _fg ;};break ;};if _cce {return _g .EOF ;};_efg ._ddg .Reset ();};if _gee =_efg .decode1D ();_gee !=nil {return _gee ;};return nil ;};func (_eec *Decoder )tryFetchEOL1 ()(bool ,error ){_fea ,_ddgg :=_eec ._ddg .ReadBits (13);
+if _ddgg !=nil {return false ,_ddgg ;};return _fea ==0x3,nil ;};func NewDecoder (data []byte ,options DecodeOptions )(*Decoder ,error ){_acc :=&Decoder {_ddg :_d .NewReader (data ),_ddc :options .Columns ,_ef :options .Rows ,_edb :options .DamagedRowsBeforeError ,_ebf :make ([]byte ,(options .Columns +7)/8),_ebd :make ([]int ,options .Columns +2),_bg :make ([]int ,options .Columns +2),_cff :options .EncodedByteAligned ,_adf :options .BlackIsOne ,_cb :options .EndOfLine ,_gg :options .EndOfBlock };
+switch {case options .K ==0:_acc ._bff =_gf ;if len (data )< 20{return nil ,_e .New ("\u0074o\u006f\u0020\u0073\u0068o\u0072\u0074\u0020\u0063\u0063i\u0074t\u0066a\u0078\u0020\u0073\u0074\u0072\u0065\u0061m");};_caf :=data [:20];if _caf [0]!=0||(_caf [1]>>4!=1&&_caf [1]!=1){_acc ._bff =_bc ;
+_ddf :=(uint16 (_caf [0])<<8+uint16 (_caf [1]&0xff))>>4;for _bgd :=12;_bgd < 160;_bgd ++{_ddf =(_ddf <<1)+uint16 ((_caf [_bgd /8]>>uint16 (7-(_bgd %8)))&0x01);if _ddf &0xfff==1{_acc ._bff =_gf ;break ;};};};case options .K < 0:_acc ._bff =_ecc ;case options .K > 0:_acc ._bff =_gf ;
+_acc ._gd =true ;};switch _acc ._bff {case _bc ,_gf ,_ecc :default:return nil ,_e .New ("\u0075\u006ek\u006e\u006f\u0077\u006e\u0020\u0063\u0063\u0069\u0074\u0074\u0066\u0061\u0078\u002e\u0044\u0065\u0063\u006f\u0064\u0065\u0072\u0020ty\u0070\u0065");};
+return _acc ,nil ;};func (_dcc tiffType )String ()string {switch _dcc {case _bc :return "\u0074\u0069\u0066\u0066\u0054\u0079\u0070\u0065\u004d\u006f\u0064i\u0066\u0069\u0065\u0064\u0048\u0075\u0066\u0066\u006d\u0061n\u0052\u006c\u0065";case _gf :return "\u0074\u0069\u0066\u0066\u0054\u0079\u0070\u0065\u0054\u0034";
+case _ecc :return "\u0074\u0069\u0066\u0066\u0054\u0079\u0070\u0065\u0054\u0036";default:return "\u0075n\u0064\u0065\u0066\u0069\u006e\u0065d";};};type Encoder struct{K int ;EndOfLine bool ;EncodedByteAlign bool ;Columns int ;Rows int ;EndOfBlock bool ;
+BlackIs1 bool ;DamagedRowsBeforeError int ;};var _fbg =[...][]uint16 {{3,2},{1,4},{6,5},{7},{9,8},{10,11,12},{13,14},{15},{16,17,0,18,64},{24,25,23,22,19,20,21,1792,1856,1920},{1984,2048,2112,2176,2240,2304,2368,2432,2496,2560,52,55,56,59,60,320,384,448,53,54,50,51,44,45,46,47,57,58,61,256,48,49,62,63,30,31,32,33,40,41,128,192,26,27,28,29,34,35,36,37,38,39,42,43},{640,704,768,832,1280,1344,1408,1472,1536,1600,1664,1728,512,576,896,960,1024,1088,1152,1216}};
+func (_fde *Decoder )tryFetchEOL ()(bool ,error ){_ddff ,_aeg :=_fde ._ddg .ReadBits (12);if _aeg !=nil {return false ,_aeg ;};return _ddff ==0x1,nil ;};func (_dbbb *treeNode )walk (_acec bool )*treeNode {if _acec {return _dbbb ._dac ;};return _dbbb ._efcb ;
+};func _afc (_cde []byte ,_bba int )int {if _bba >=len (_cde ){return _bba ;};if _bba < -1{_bba =-1;};var _adb byte ;if _bba > -1{_adb =_cde [_bba ];}else {_adb =_gcfc ;};_bbaa :=_bba +1;for _bbaa < len (_cde ){if _cde [_bbaa ]!=_adb {break ;};_bbaa ++;
+};return _bbaa ;};func _dfg (_bffe ,_dcfc []byte ,_ddde ,_daa ,_cgdf int )([]byte ,int ,int ){_fgaa :=_afc (_bffe ,_cgdf );_dgfc :=_daa >=0&&_bffe [_daa ]==_gcfc ||_daa ==-1;_dcfc ,_ddde =_bea (_dcfc ,_ddde ,_abg );var _cgf int ;if _daa > -1{_cgf =_cgdf -_daa ;
+}else {_cgf =_cgdf -_daa -1;};_dcfc ,_ddde =_dec (_dcfc ,_ddde ,_cgf ,_dgfc );_dgfc =!_dgfc ;_cba :=_fgaa -_cgdf ;_dcfc ,_ddde =_dec (_dcfc ,_ddde ,_cba ,_dgfc );_daa =_fgaa ;return _dcfc ,_ddde ,_daa ;};var (_c *treeNode ;_dc *treeNode ;_cf *tree ;_ba *tree ;
+_a *tree ;_cg *tree ;_fa =-2000;_ca =-1000;_eb =-3000;_df =-4000;);const (_ tiffType =iota ;_bc ;_gf ;_ecc ;);func _dea (_cac [][]byte )[][]byte {_gfc :=make ([]byte ,len (_cac [0]));for _adfg :=range _gfc {_gfc [_adfg ]=_gcfc ;};_cac =append (_cac ,[]byte {});
+for _gde :=len (_cac )-1;_gde > 0;_gde --{_cac [_gde ]=_cac [_gde -1];};_cac [0]=_gfc ;return _cac ;};func (_bbe *Encoder )encodeG32D (_aae [][]byte )[]byte {var _gcaf []byte ;var _dbd int ;for _dgg :=0;_dgg < len (_aae );_dgg +=_bbe .K {if _bbe .Rows > 0&&!_bbe .EndOfBlock &&_dgg ==_bbe .Rows {break ;
+};_cec ,_ggf :=_bga (_aae [_dgg ],_dbd ,_dba );_gcaf =_bbe .appendEncodedRow (_gcaf ,_cec ,_dbd );if _bbe .EncodedByteAlign {_ggf =0;};_dbd =_ggf ;for _fcge :=_dgg +1;_fcge < (_dgg +_bbe .K )&&_fcge < len (_aae );_fcge ++{if _bbe .Rows > 0&&!_bbe .EndOfBlock &&_fcge ==_bbe .Rows {break ;
+};_bbg ,_cge :=_bea (nil ,_dbd ,_gcf );var _dbae ,_gbf ,_afac int ;_gdac :=-1;for _gdac < len (_aae [_fcge ]){_dbae =_afc (_aae [_fcge ],_gdac );_gbf =_gfgf (_aae [_fcge ],_aae [_fcge -1],_gdac );_afac =_afc (_aae [_fcge -1],_gbf );if _afac < _dbae {_bbg ,_cge =_ffcd (_bbg ,_cge );
+_gdac =_afac ;}else {if _b .Abs (float64 (_gbf -_dbae ))> 3{_bbg ,_cge ,_gdac =_dfg (_aae [_fcge ],_bbg ,_cge ,_gdac ,_dbae );}else {_bbg ,_cge =_fcga (_bbg ,_cge ,_dbae ,_gbf );_gdac =_dbae ;};};};_gcaf =_bbe .appendEncodedRow (_gcaf ,_bbg ,_dbd );if _bbe .EncodedByteAlign {_cge =0;
+};_dbd =_cge %8;};};if _bbe .EndOfBlock {_cedd ,_ :=_eca (_dbd );_gcaf =_bbe .appendEncodedRow (_gcaf ,_cedd ,_dbd );};return _gcaf ;};func (_fef *Decoder )getNextChangingElement (_bed int ,_cbb bool )int {_ecg :=0;if !_cbb {_ecg =1;};_fbd :=int (uint32 (_fef ._eef )&0xFFFFFFFE)+_ecg ;
+if _fbd > 2{_fbd -=2;};if _bed ==0{return _fbd ;};for _dgd :=_fbd ;_dgd < _fef ._dbc ;_dgd +=2{if _bed < _fef ._ebd [_dgd ]{_fef ._eef =_dgd ;return _dgd ;};};return -1;};func _eca (_cegb int )([]byte ,int ){var _faeg []byte ;for _dbb :=0;_dbb < 6;_dbb ++{_faeg ,_cegb =_bea (_faeg ,_cegb ,_dba );
+};return _faeg ,_cegb %8;};var _bdg =[...][]uint16 {{0x7,0x8,0xb,0xc,0xe,0xf},{0x12,0x13,0x14,0x1b,0x7,0x8},{0x17,0x18,0x2a,0x2b,0x3,0x34,0x35,0x7,0x8},{0x13,0x17,0x18,0x24,0x27,0x28,0x2b,0x3,0x37,0x4,0x8,0xc},{0x12,0x13,0x14,0x15,0x16,0x17,0x1a,0x1b,0x2,0x24,0x25,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x3,0x32,0x33,0x34,0x35,0x36,0x37,0x4,0x4a,0x4b,0x5,0x52,0x53,0x54,0x55,0x58,0x59,0x5a,0x5b,0x64,0x65,0x67,0x68,0xa,0xb},{0x98,0x99,0x9a,0x9b,0xcc,0xcd,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb},{},{0x8,0xc,0xd},{0x12,0x13,0x14,0x15,0x16,0x17,0x1c,0x1d,0x1e,0x1f}};
+type tree struct{_cfd *treeNode };func (_cbf *tree )fill (_egg ,_aee ,_eab int )error {_cbae :=_cbf ._cfd ;for _gba :=0;_gba < _egg ;_gba ++{_bbda :=_egg -1-_gba ;_cacg :=((_aee >>uint (_bbda ))&1)!=0;_aed :=_cbae .walk (_cacg );if _aed !=nil {if _aed ._fefg {return _e .New ("\u006e\u006f\u0064\u0065\u0020\u0069\u0073\u0020\u006c\u0065\u0061\u0066\u002c\u0020\u006eo\u0020o\u0074\u0068\u0065\u0072\u0020\u0066\u006f\u006c\u006c\u006f\u0077\u0069\u006e\u0067");
+};_cbae =_aed ;continue ;};_aed =&treeNode {};if _gba ==_egg -1{_aed ._beb =_eab ;_aed ._fefg =true ;};if _aee ==0{_aed ._agd =true ;};_cbae .set (_cacg ,_aed );_cbae =_aed ;};return nil ;};func (_fce *Encoder )encodeG31D (_cffe [][]byte )[]byte {var _eag []byte ;
+_afa :=0;for _abfe :=range _cffe {if _fce .Rows > 0&&!_fce .EndOfBlock &&_abfe ==_fce .Rows {break ;};_ace ,_cbec :=_bga (_cffe [_abfe ],_afa ,_aa );_eag =_fce .appendEncodedRow (_eag ,_ace ,_afa );if _fce .EncodedByteAlign {_cbec =0;};_afa =_cbec ;};if _fce .EndOfBlock {_cege ,_ :=_abfd (_afa );
+_eag =_fce .appendEncodedRow (_eag ,_cege ,_afa );};return _eag ;};func (_gca *Decoder )decodeG32D ()error {_gca ._dbc =_gca ._eaf ;_gca ._bg ,_gca ._ebd =_gca ._ebd ,_gca ._bg ;_fec :=true ;var (_dcf bool ;_ded int ;_ffc error ;);_gca ._eaf =0;_bgc :for _ded < _gca ._ddc {_baf :=_cg ._cfd ;
+for {_dcf ,_ffc =_gca ._ddg .ReadBool ();if _ffc !=nil {return _ffc ;};_baf =_baf .walk (_dcf );if _baf ==nil {continue _bgc ;};if !_baf ._fefg {continue ;};switch _baf ._beb {case _df :var _acb int ;if _fec {_acb ,_ffc =_gca .decodeRun (_ba );}else {_acb ,_ffc =_gca .decodeRun (_cf );
+};if _ffc !=nil {return _ffc ;};_ded +=_acb ;_gca ._bg [_gca ._eaf ]=_ded ;_gca ._eaf ++;if _fec {_acb ,_ffc =_gca .decodeRun (_cf );}else {_acb ,_ffc =_gca .decodeRun (_ba );};if _ffc !=nil {return _ffc ;};_ded +=_acb ;_gca ._bg [_gca ._eaf ]=_ded ;_gca ._eaf ++;
+case _eb :_fd :=_gca .getNextChangingElement (_ded ,_fec )+1;if _fd >=_gca ._dbc {_ded =_gca ._ddc ;}else {_ded =_gca ._ebd [_fd ];};default:_dbf :=_gca .getNextChangingElement (_ded ,_fec );if _dbf >=_gca ._dbc ||_dbf ==-1{_ded =_gca ._ddc +_baf ._beb ;
+}else {_ded =_gca ._ebd [_dbf ]+_baf ._beb ;};_gca ._bg [_gca ._eaf ]=_ded ;_gca ._eaf ++;_fec =!_fec ;};continue _bgc ;};};return nil ;};func _bgg (_dge ,_efba []byte ,_begb int ,_bec bool )int {_ffda :=_afc (_efba ,_begb );if _ffda < len (_efba )&&(_begb ==-1&&_efba [_ffda ]==_gcfc ||_begb >=0&&_begb < len (_dge )&&_dge [_begb ]==_efba [_ffda ]||_begb >=len (_dge )&&_bec &&_efba [_ffda ]==_gcfc ||_begb >=len (_dge )&&!_bec &&_efba [_ffda ]==_cae ){_ffda =_afc (_efba ,_ffda );
+};return _ffda ;};var _ge =[...][]uint16 {{2,3,4,5,6,7},{128,8,9,64,10,11},{192,1664,16,17,13,14,15,1,12},{26,21,28,27,18,24,25,22,256,23,20,19},{33,34,35,36,37,38,31,32,29,53,54,39,40,41,42,43,44,30,61,62,63,0,320,384,45,59,60,46,49,50,51,52,55,56,57,58,448,512,640,576,47,48},{1472,1536,1600,1728,704,768,832,896,960,1024,1088,1152,1216,1280,1344,1408},{},{1792,1856,1920},{1984,2048,2112,2176,2240,2304,2368,2432,2496,2560}};
+func _aaef (_bfdd []byte ,_gdaf bool ,_fegd int )(int ,int ){_bfcc :=0;for _fegd < len (_bfdd ){if _gdaf {if _bfdd [_fegd ]!=_gcfc {break ;};}else {if _bfdd [_fegd ]!=_cae {break ;};};_bfcc ++;_fegd ++;};return _bfcc ,_fegd ;};var (_gcfc byte =1;_cae byte =0;
+);func (_aeb *Decoder )decode2D ()error {_aeb ._dbc =_aeb ._eaf ;_aeb ._bg ,_aeb ._ebd =_aeb ._ebd ,_aeb ._bg ;_bfc :=true ;var (_gdc bool ;_ceag int ;_abgb error ;);_aeb ._eaf =0;_adfe :for _ceag < _aeb ._ddc {_fafb :=_cg ._cfd ;for {_gdc ,_abgb =_aeb ._ddg .ReadBool ();
+if _abgb !=nil {return _abgb ;};_fafb =_fafb .walk (_gdc );if _fafb ==nil {continue _adfe ;};if !_fafb ._fefg {continue ;};switch _fafb ._beb {case _df :var _aggd int ;if _bfc {_aggd ,_abgb =_aeb .decodeRun (_ba );}else {_aggd ,_abgb =_aeb .decodeRun (_cf );
+};if _abgb !=nil {return _abgb ;};_ceag +=_aggd ;_aeb ._bg [_aeb ._eaf ]=_ceag ;_aeb ._eaf ++;if _bfc {_aggd ,_abgb =_aeb .decodeRun (_cf );}else {_aggd ,_abgb =_aeb .decodeRun (_ba );};if _abgb !=nil {return _abgb ;};_ceag +=_aggd ;_aeb ._bg [_aeb ._eaf ]=_ceag ;
+_aeb ._eaf ++;case _eb :_cgb :=_aeb .getNextChangingElement (_ceag ,_bfc )+1;if _cgb >=_aeb ._dbc {_ceag =_aeb ._ddc ;}else {_ceag =_aeb ._ebd [_cgb ];};default:_edfd :=_aeb .getNextChangingElement (_ceag ,_bfc );if _edfd >=_aeb ._dbc ||_edfd ==-1{_ceag =_aeb ._ddc +_fafb ._beb ;
+}else {_ceag =_aeb ._ebd [_edfd ]+_fafb ._beb ;};_aeb ._bg [_aeb ._eaf ]=_ceag ;_aeb ._eaf ++;_bfc =!_bfc ;};continue _adfe ;};};return nil ;};func _bga (_add []byte ,_fff int ,_eed code )([]byte ,int ){_fgc :=true ;var _fbbb []byte ;_fbbb ,_fff =_bea (nil ,_fff ,_eed );
+_beg :=0;var _gfg int ;for _beg < len (_add ){_gfg ,_beg =_aaef (_add ,_fgc ,_beg );_fbbb ,_fff =_dec (_fbbb ,_fff ,_gfg ,_fgc );_fgc =!_fgc ;};return _fbbb ,_fff %8;};func _dec (_fdb []byte ,_efbf int ,_fad int ,_ece bool )([]byte ,int ){var (_ggg code ;
+_adc bool ;);for !_adc {_ggg ,_fad ,_adc =_affc (_fad ,_ece );_fdb ,_efbf =_bea (_fdb ,_efbf ,_ggg );};return _fdb ,_efbf ;};func (_fcg *Decoder )looseFetchEOL ()(bool ,error ){_efcg ,_eff :=_fcg ._ddg .ReadBits (12);if _eff !=nil {return false ,_eff ;
+};switch _efcg {case 0x1:return true ,nil ;case 0x0:for {_gad ,_gda :=_fcg ._ddg .ReadBool ();if _gda !=nil {return false ,_gda ;};if _gad {return true ,nil ;};};default:return false ,nil ;};};func (_gfb *Decoder )decodeRowType4 ()error {if !_gfb ._gd {return _gfb .decoderRowType41D ();
+};if _gfb ._cff {_gfb ._ddg .Align ();};_gfb ._ddg .Mark ();_cbe ,_aga :=_gfb .tryFetchEOL ();if _aga !=nil {return _aga ;};if !_cbe &&_gfb ._cb {_gfb ._gcc ++;if _gfb ._gcc > _gfb ._edb {return _agg ;};_gfb ._ddg .Reset ();};if !_cbe {_gfb ._ddg .Reset ();
+};_aaa ,_aga :=_gfb ._ddg .ReadBool ();if _aga !=nil {return _aga ;};if _aaa {if _cbe &&_gfb ._gg {if _aga =_gfb .tryFetchRTC2D ();_aga !=nil {return _aga ;};};_aga =_gfb .decode1D ();}else {_aga =_gfb .decode2D ();};if _aga !=nil {return _aga ;};return nil ;
+};func _caac (_dce int )([]byte ,int ){var _cgdc []byte ;for _ccg :=0;_ccg < 2;_ccg ++{_cgdc ,_dce =_bea (_cgdc ,_dce ,_aa );};return _cgdc ,_dce %8;};func _fcga (_fdbd []byte ,_cfc ,_aebd ,_deb int )([]byte ,int ){_gdf :=_fdec (_aebd ,_deb );_fdbd ,_cfc =_bea (_fdbd ,_cfc ,_gdf );
+return _fdbd ,_cfc ;};type tiffType int ;type treeNode struct{_efcb *treeNode ;_dac *treeNode ;_beb int ;_agd bool ;_fefg bool ;};func (_cea *Decoder )fetch ()error {if _cea ._ee ==-1{return nil ;};if _cea ._bac < _cea ._ee {return nil ;};_cea ._ee =0;
+_ecb :=_cea .decodeRow ();if _ecb !=nil {if !_e .Is (_ecb ,_g .EOF ){return _ecb ;};if _cea ._ee !=0{return _ecb ;};_cea ._ee =-1;};_cea ._bac =0;return nil ;};var (_fg =_e .New ("\u0063\u0063\u0069\u0074tf\u0061\u0078\u0020\u0063\u006f\u0072\u0072\u0075\u0070\u0074\u0065\u0064\u0020\u0052T\u0043");
+_agg =_e .New ("\u0063\u0063\u0069\u0074tf\u0061\u0078\u0020\u0045\u004f\u004c\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075n\u0064"););func (_fga *Decoder )Read (in []byte )(int ,error ){if _fga ._ceg !=nil {return 0,_fga ._ceg ;};_efb :=len (in );var (_gga int ;
+_eg int ;);for _efb !=0{if _fga ._bac >=_fga ._ee {if _geg :=_fga .fetch ();_geg !=nil {_fga ._ceg =_geg ;return 0,_geg ;};};if _fga ._ee ==-1{return _gga ,_g .EOF ;};switch {case _efb <=_fga ._ee -_fga ._bac :_bbd :=_fga ._ebf [_fga ._bac :_fga ._bac +_efb ];
+for _ ,_abf :=range _bbd {if !_fga ._adf {_abf =^_abf ;};in [_eg ]=_abf ;_eg ++;};_gga +=len (_bbd );_fga ._bac +=len (_bbd );return _gga ,nil ;default:_efc :=_fga ._ebf [_fga ._bac :];for _ ,_abab :=range _efc {if !_fga ._adf {_abab =^_abab ;};in [_eg ]=_abab ;
+_eg ++;};_gga +=len (_efc );_fga ._bac +=len (_efc );_efb -=len (_efc );};};return _gga ,nil ;};func _fdec (_eccf ,_dgfb int )code {var _abb code ;switch _dgfb -_eccf {case -1:_abb =_fbb ;case -2:_abb =_ad ;case -3:_abb =_fed ;case 0:_abb =_afb ;case 1:_abb =_ebg ;
+case 2:_abb =_bdf ;case 3:_abb =_dd ;};return _abb ;};var _dg =[...][]uint16 {{0x2,0x3},{0x2,0x3},{0x2,0x3},{0x3},{0x4,0x5},{0x4,0x5,0x7},{0x4,0x7},{0x18},{0x17,0x18,0x37,0x8,0xf},{0x17,0x18,0x28,0x37,0x67,0x68,0x6c,0x8,0xc,0xd},{0x12,0x13,0x14,0x15,0x16,0x17,0x1c,0x1d,0x1e,0x1f,0x24,0x27,0x28,0x2b,0x2c,0x33,0x34,0x35,0x37,0x38,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xda,0xdb},{0x4a,0x4b,0x4c,0x4d,0x52,0x53,0x54,0x55,0x5a,0x5b,0x64,0x65,0x6c,0x6d,0x72,0x73,0x74,0x75,0x76,0x77}};
+type DecodeOptions struct{Columns int ;Rows int ;K int ;EncodedByteAligned bool ;BlackIsOne bool ;EndOfBlock bool ;EndOfLine bool ;DamagedRowsBeforeError int ;};func _ffcd (_fbf []byte ,_gfd int )([]byte ,int ){return _bea (_fbf ,_gfd ,_de )};func (_gbb *Decoder )decodeRowType2 ()error {if _gbb ._cff {_gbb ._ddg .Align ();
+};if _gcd :=_gbb .decode1D ();_gcd !=nil {return _gcd ;};return nil ;};func _abfd (_gdab int )([]byte ,int ){var _eaa []byte ;for _fecg :=0;_fecg < 6;_fecg ++{_eaa ,_gdab =_bea (_eaa ,_gdab ,_aa );};return _eaa ,_gdab %8;};func (_caa *Decoder )decode1D ()error {var (_fafe int ;
+_dbcc error ;);_fdd :=true ;_caa ._eaf =0;for {var _ddd int ;if _fdd {_ddd ,_dbcc =_caa .decodeRun (_ba );}else {_ddd ,_dbcc =_caa .decodeRun (_cf );};if _dbcc !=nil {return _dbcc ;};_fafe +=_ddd ;_caa ._bg [_caa ._eaf ]=_fafe ;_caa ._eaf ++;_fdd =!_fdd ;
+if _fafe >=_caa ._ddc {break ;};};return nil ;};type code struct{Code uint16 ;BitsWritten int ;};func (_bafb *tree )fillWithNode (_eaba ,_cad int ,_ebfg *treeNode )error {_gaf :=_bafb ._cfd ;for _caag :=0;_caag < _eaba ;_caag ++{_cgfd :=uint (_eaba -1-_caag );
+_dbdc :=((_cad >>_cgfd )&1)!=0;_cfae :=_gaf .walk (_dbdc );if _cfae !=nil {if _cfae ._fefg {return _e .New ("\u006e\u006f\u0064\u0065\u0020\u0069\u0073\u0020\u006c\u0065\u0061\u0066\u002c\u0020\u006eo\u0020o\u0074\u0068\u0065\u0072\u0020\u0066\u006f\u006c\u006c\u006f\u0077\u0069\u006e\u0067");
+};_gaf =_cfae ;continue ;};if _caag ==_eaba -1{_cfae =_ebfg ;}else {_cfae =&treeNode {};};if _cad ==0{_cfae ._agd =true ;};_gaf .set (_dbdc ,_cfae );_gaf =_cfae ;};return nil ;};func (_ebfe *Decoder )decodeRow ()(_abc error ){if !_ebfe ._gg &&_ebfe ._ef > 0&&_ebfe ._ef ==_ebfe ._fc {return _g .EOF ;
+};switch _ebfe ._bff {case _bc :_abc =_ebfe .decodeRowType2 ();case _gf :_abc =_ebfe .decodeRowType4 ();case _ecc :_abc =_ebfe .decodeRowType6 ();};if _abc !=nil {return _abc ;};_edg :=0;_eeg :=true ;_ebfe ._eef =0;for _cfg :=0;_cfg < _ebfe ._eaf ;_cfg ++{_edf :=_ebfe ._ddc ;
+if _cfg !=_ebfe ._eaf {_edf =_ebfe ._bg [_cfg ];};if _edf > _ebfe ._ddc {_edf =_ebfe ._ddc ;};_ddca :=_edg /8;for _edg %8!=0&&_edf -_edg > 0{var _bdfg byte ;if !_eeg {_bdfg =1<<uint (7-(_edg %8));};_ebfe ._ebf [_ddca ]|=_bdfg ;_edg ++;};if _edg %8==0{_ddca =_edg /8;
+var _ga byte ;if !_eeg {_ga =0xff;};for _edf -_edg > 7{_ebfe ._ebf [_ddca ]=_ga ;_edg +=8;_ddca ++;};};for _edf -_edg > 0{if _edg %8==0{_ebfe ._ebf [_ddca ]=0;};var _ccd byte ;if !_eeg {_ccd =1<<uint (7-(_edg %8));};_ebfe ._ebf [_ddca ]|=_ccd ;_edg ++;
+};_eeg =!_eeg ;};if _edg !=_ebfe ._ddc {return _e .New ("\u0073\u0075\u006d\u0020\u006f\u0066 \u0072\u0075\u006e\u002d\u006c\u0065\u006e\u0067\u0074\u0068\u0073\u0020\u0064\u006f\u0065\u0073\u0020\u006e\u006f\u0074 \u0065\u0071\u0075\u0061\u006c\u0020\u0073\u0063\u0061\u006e\u0020\u006c\u0069\u006ee\u0020w\u0069\u0064\u0074\u0068");
+};_ebfe ._ee =(_edg +7)/8;_ebfe ._fc ++;return nil ;};var (_fe map[int ]code ;_db map[int ]code ;_fab map[int ]code ;_ed map[int ]code ;_dgb map[int ]code ;_gb map[int ]byte ;_aa =code {Code :1<<4,BitsWritten :12};_dba =code {Code :3<<3,BitsWritten :13};
+_gcf =code {Code :2<<3,BitsWritten :13};_de =code {Code :1<<12,BitsWritten :4};_abg =code {Code :1<<13,BitsWritten :3};_afb =code {Code :1<<15,BitsWritten :1};_fbb =code {Code :3<<13,BitsWritten :3};_ad =code {Code :3<<10,BitsWritten :6};_fed =code {Code :3<<9,BitsWritten :7};
+_ebg =code {Code :2<<13,BitsWritten :3};_bdf =code {Code :2<<10,BitsWritten :6};_dd =code {Code :2<<9,BitsWritten :7};); \ No newline at end of file