// // 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 mscfb ;import (_e "bytes";_f "encoding/binary";_bf "fmt";_fb "github.com/richardlehane/msoleps/types";_c "github.com/unidoc/unioffice/internal/mscfb/rw";_gb "io";_ge "os";_g "strconv";_bc "time";_gd "unicode";_bb "unicode/utf16";);func (_dcg *Reader )Export ()([]byte ,error ){_baaed :=_c .NewWriter ();if _fgda :=_dcg .exportHeader (_baaed );_fgda !=nil {return nil ,_fgda ;};if _ffed :=_baaed .FillWithByte (512,_fbb );_ffed !=nil {return nil ,_ffed ;};_ccff :=[]uint32 {};if _ebed :=_dcg .exportDifats (_baaed );_ebed !=nil {return nil ,_ebed ;};_fbbf ,_aeg ,_efab :=_dcg .exportMiniStream ();if _efab !=nil {return nil ,_efab ;};_ccff =append (_ccff ,uint32 (_baaed .Len ())/_dcg ._agea );if _cdd :=_dcg .exportDirEntries (_baaed );_cdd !=nil {return nil ,_cdd ;};_ccff =append (_ccff ,uint32 (_baaed .Len ())/_dcg ._agea );if _ ,_bbb :=_fbbf .WriteTo (_baaed );_bbb !=nil {return nil ,_bbb ;};_ccff =append (_ccff ,uint32 (_baaed .Len ())/_dcg ._agea );if _ ,_abce :=_aeg .WriteTo (_baaed );_abce !=nil {return nil ,_abce ;};_ccff =append (_ccff ,uint32 (_baaed .Len ())/_dcg ._agea );if _bbae :=_dcg .exportFAT (_baaed ,_ccff );_bbae !=nil {return nil ,_bbae ;};return _baaed .Bytes (),nil ;};func _ggb (_da *File ){if _da ._bfe < 4||_da ._bfe > 64{return ;};_ea :=int (_da ._bfe /2-1);_da .Initial =_da ._ga [0];var _fca int ;if !_gd .IsPrint (rune (_da .Initial )){_fca =1;};_da .Name =string (_bb .Decode (_da ._ga [_fca :_ea ]));};func (_bbce *File )Read (b []byte )(int ,error ){if _bbce .Size < 1||_bbce ._ad >=_bbce .Size {return 0,_gb .EOF ;};_gbd :=len (b );if int64 (_gbd )> _bbce .Size -_bbce ._ad {_gbd =int (_bbce .Size -_bbce ._ad );};_cdf ,_cfg :=_bbce .stream (_gbd );if _cfg !=nil {return 0,_cfg ;};var _ac ,_ceb int ;for _ ,_gc :=range _cdf {_ege :=_ac +int (_gc [1]);if _ege < _ac ||_ege > _gbd {return 0,Error {ErrRead ,"\u0062a\u0064 \u0072\u0065\u0061\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068",int64 (_ege )};};_eaf ,_acf :=_bbce ._bdg ._acbe .ReadAt (b [_ac :_ege ],_gc [0]);_ceb =_ceb +_eaf ;if _acf !=nil {_bbce ._ad +=int64 (_ceb );return _ceb ,Error {ErrRead ,"\u0075n\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0072\u0065a\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0020\u0028"+_acf .Error ()+"\u0029",int64 (_ac )};};_ac =_ege ;};_bbce ._ad +=int64 (_ceb );if _ceb !=_gbd {_cfg =Error {ErrRead ,"\u0062\u0079\u0074e\u0073\u0020\u0072\u0065\u0061\u0064\u0020\u0064\u006f\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020r\u0065\u0061\u0064\u0020\u0073\u0069\u007a\u0065",int64 (_ceb )};}else if _ceb < len (b ){_cfg =_gb .EOF ;};return _ceb ,_cfg ;};func (_beb *Reader )setMiniStream ()error {if _beb ._bebd [0]._bbc ==_cfd ||_beb ._aacbb ._bdb ==_cfd ||_beb ._aacbb ._afd ==0{return nil ;};_fdd :=int (_beb ._aacbb ._afd );_beb ._aacbb ._dfd =make ([]uint32 ,_fdd );_beb ._aacbb ._dfd [0]=_beb ._aacbb ._bdb ;for _afb :=1;_afb < _fdd ;_afb ++{_egf ,_babg :=_beb .findNext (_beb ._aacbb ._dfd [_afb -1],false );if _babg !=nil {return Error {ErrFormat ,"s\u0065\u0074\u0074\u0069ng\u0020m\u0069\u006e\u0069\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0028"+_babg .Error ()+"\u0029",int64 (_beb ._aacbb ._dfd [_afb -1])};};_beb ._aacbb ._dfd [_afb ]=_egf ;};_fdd =int (_beb ._agea /4*_beb ._aacbb ._afd );_beb ._aacbb ._daab =make ([]uint32 ,0,_fdd );_ggg :=_beb ._bebd [0]._bbc ;var _fag error ;for _ggg !=_cfd {_beb ._aacbb ._daab =append (_beb ._aacbb ._daab ,_ggg );_ggg ,_fag =_beb .findNext (_ggg ,false );if _fag !=nil {return Error {ErrFormat ,"s\u0065\u0074\u0074\u0069ng\u0020m\u0069\u006e\u0069\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0028"+_fag .Error ()+"\u0029",int64 (_ggg )};};};return nil ;};func (_ebac fileInfo )Sys ()interface{}{return nil };func (_ffee *Reader )Next ()(*File ,error ){_ffee ._gbe ++;if _ffee ._gbe >=len (_ffee .File ){return nil ,_gb .EOF ;};return _ffee .File [_ffee ._gbe ],nil ;};const (_ged uint8 =0x0;_a uint8 =0x1;_fa uint8 =0x2;_d uint8 =0x5;);func (_bfc *File )seek (_gag int64 )error {var _bcd bool ;var _efc int64 ;if _bfc .Size < _cbbb {_bcd =true ;_efc =64;}else {_efc =int64 (_bfc ._bdg ._agea );};var _gbfe int64 ;var _feb error ;if _bfc ._eb > 0{if _efc -_bfc ._eb <=_gag {_bfc ._cbd ,_feb =_bfc ._bdg .findNext (_bfc ._cbd ,_bcd );if _feb !=nil {return _feb ;};_gbfe +=_efc -_bfc ._eb ;_bfc ._eb =0;if _gbfe ==_gag {return nil ;};}else {_bfc ._eb +=_gag ;return nil ;};if _bfc ._cbd ==_cfd {return Error {ErrRead ,"\u0075\u006ee\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0065\u0061\u0072\u006c\u0079\u0020\u0065\u006e\u0064\u0020\u006f\u0066\u0020\u0063ha\u0069\u006e",int64 (_bfc ._cbd )};};};for {if _gag -_gbfe < _efc {_bfc ._eb =_gag -_gbfe ;return nil ;}else {_gbfe +=_efc ;_bfc ._cbd ,_feb =_bfc ._bdg .findNext (_bfc ._cbd ,_bcd );if _feb !=nil {return _feb ;};if _gbfe ==_gag {return nil ;};};};};type slicer interface{Slice (_fdg int64 ,_dddc int )([]byte ,error );};const (_dc uint8 =0x0;_ef uint8 =0x1;);type directoryEntryFields struct{_ga [32]uint16 ;_bfe uint16 ;_ec uint8 ;_db uint8 ;_geb uint32 ;_bce uint32 ;_cc uint32 ;_gg _fb .Guid ;_aa [4]byte ;_ba _fb .FileTime ;_ed _fb .FileTime ;_bbc uint32 ;_cce [8]byte ;};func (_dgd *Reader )Read (b []byte )(_cfbb int ,_fde error ){if _dgd ._gbe >=len (_dgd .File ){return 0,_gb .EOF ;};return _dgd .File [_dgd ._gbe ].Read (b );};func (_ag fileInfo )IsDir ()bool {return _ag .mode ().IsDir ()};func (_ceed *Reader )ID ()string {return _ceed .File [0].ID ()};type File struct{Name string ;Initial uint16 ;Path []string ;Size int64 ;_ad int64 ;_cbd uint32 ;_eb int64 ;*directoryEntryFields ;_bdg *Reader ;};func (_gdd *Reader )setDifats ()error {_gdd ._aacbb ._fcd =_gdd ._aacbb ._cefe [:];if _gdd ._aacbb ._baae ==0{return nil ;};_gaga :=(_gdd ._agea /4)-1;_ffe :=make ([]uint32 ,109,_gdd ._aacbb ._baae *_gaga +109);copy (_ffe ,_gdd ._aacbb ._fcd );_gdd ._aacbb ._fcd =_ffe ;_afe :=_gdd ._aacbb ._cgg ;for _fbc :=0;_fbc < int (_gdd ._aacbb ._baae );_fbc ++{_gdfb ,_aab :=_gdd .readAt (_efe (_gdd ._agea ,_afe ),int (_gdd ._agea ));if _aab !=nil {return Error {ErrFormat ,"e\u0072r\u006f\u0072\u0020\u0073\u0065\u0074\u0074\u0069n\u0067\u0020\u0044\u0049FA\u0054\u0028"+_aab .Error ()+"\u0029",int64 (_afe )};};for _cgga :=0;_cgga < int (_gaga );_cgga ++{_gdd ._aacbb ._fcd =append (_gdd ._aacbb ._fcd ,_f .LittleEndian .Uint32 (_gdfb [_cgga *4:_cgga *4+4]));};_afe =_f .LittleEndian .Uint32 (_gdfb [len (_gdfb )-4:]);};return nil ;};func _bed (_age [][2]int64 )[][2]int64 {_ccg :=len (_age );for _ggc ,_egc :=0,0;_ggc < _ccg &&_egc +1< len (_age );_ggc ++{if _age [_egc ][0]+_age [_egc ][1]==_age [_egc +1][0]{_age [_egc ][1]=_age [_egc ][1]+_age [_egc +1][1];for _daa :=range _age [_egc +1:len (_age )-1]{_age [_egc +1+_daa ]=_age [_daa +_egc +2];};_age =_age [:len (_age )-1];}else {_egc +=1;};};return _age ;};const (_ebca uint64 =0xE11AB1A1E011CFD0;_ccc uint32 =64;_cbbb int64 =4096;_ff uint32 =128;);type header struct{*headerFields ;_fcd []uint32 ;_dfd []uint32 ;_daab []uint32 ;};const _cd int =64+4*4+16+4+8*2+4+8;func (_cbaf *Reader )findNextFreeSector (_fecf bool )(uint32 ,error ){_dga :=_cbaf .findFatLocsOffset (_fecf );_eee :=uint32 (0);_bedc :=_cbaf ._agea /4;for {_dee ,_beeg :=_cbaf .readAt (_dga ,4);if _beeg !=nil {return 0,Error {ErrRead ,"\u0062\u0061\u0064\u0020\u0072\u0065\u0061\u0064\u0020\u0066i\u006e\u0064\u0069\u006e\u0067\u0020\u006ee\u0078\u0074\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0028"+_beeg .Error ()+"\u0029",_dga };};_bdf :=_f .LittleEndian .Uint32 (_dee );if _bdf ==_dba {break ;};if _eee >=_bedc {return 0,Error {ErrRead ,"\u0065\u006e\u0064\u0020of\u0020\u006d\u0069\u006e\u0069\u0046\u0061\u0074\u0020\u0072\u0065\u0061\u0063\u0068e\u0064",_dga };};_eee ++;_dga +=4;};return _eee ,nil ;};func (_be *File )Modified ()_bc .Time {return _be ._ed .Time ()};func (_ega *File )Write (b []byte )(int ,error ){if _ega .Size < 1||_ega ._ad >=_ega .Size {return 0,_gb .EOF ;};if _ebgb :=_ega .ensureWriterAt ();_ebgb !=nil {return 0,_ebgb ;};_gdb :=len (b );if int64 (_gdb )> _ega .Size -_ega ._ad {_gdb =int (_ega .Size -_ega ._ad );};_fg ,_bad :=_ega .stream (_gdb );if _bad !=nil {return 0,_bad ;};var _cfb ,_efg int ;for _ ,_gef :=range _fg {_gbfa :=_cfb +int (_gef [1]);if _gbfa < _cfb ||_gbfa > _gdb {return 0,Error {ErrWrite ,"\u0062\u0061d\u0020\u0077\u0072i\u0074\u0065\u0020\u006c\u0065\u006e\u0067\u0074\u0068",int64 (_gbfa )};};_fgf ,_fab :=_ega ._bdg ._fafg .WriteAt (b [_cfb :_gbfa ],_gef [0]);_efg =_efg +_fgf ;if _fab !=nil {_ega ._ad +=int64 (_efg );return _efg ,Error {ErrWrite ,"\u0075n\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0077\u0072i\u0074\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0020\u0028"+_fab .Error ()+"\u0029",int64 (_cfb )};};_cfb =_gbfa ;};_ega ._ad +=int64 (_efg );if _efg !=_gdb {_bad =Error {ErrWrite ,"\u0062\u0079t\u0065\u0073\u0020\u0077\u0072\u0069\u0074\u0074\u0065\u006e\u0020\u0064\u006f\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0077\u0072\u0069\u0074\u0065\u0020\u0073\u0069\u007a\u0065",int64 (_efg )};}else if _efg < len (b ){_bad =_gb .EOF ;};return _efg ,_bad ;};func (_de *Reader )setDirEntries ()error {_edc :=20;if _de ._aacbb ._cee > 0{_edc =int (_de ._aacbb ._cee );};_cf :=make ([]*File ,0,_edc );_dd :=make (map[uint32 ]bool );_fc :=int (_de ._agea /_ff );_fd :=_de ._aacbb ._fbfa ;for _fd !=_cfd {_ca ,_dea :=_de .readAt (_efe (_de ._agea ,_fd ),int (_de ._agea ));if _dea !=nil {return Error {ErrRead ,"\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020e\u006e\u0074\u0072\u0069\u0065\u0073\u0020r\u0065\u0061\u0064\u0020\u0065\u0072\u0072\u006f\u0072\u0020\u0028"+_dea .Error ()+"\u0029",_efe (_de ._agea ,_fd )};};for _dbe :=0;_dbe < _fc ;_dbe ++{_bg :=&File {_bdg :_de };_bg .directoryEntryFields =_gbf (_ca [_dbe *int (_ff ):]);_ee (_de ._aacbb ._bgcg ,_bg );_bg ._cbd =_bg ._bbc ;_cf =append (_cf ,_bg );};_fbf ,_dea :=_de .findNext (_fd ,false );if _dea !=nil {return Error {ErrRead ,"d\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020\u0065\u006e\u0074\u0072\u0069\u0065\u0073\u0020\u0065r\u0072\u006f\u0072\u0020\u0066\u0069\u006e\u0064\u0069\u006eg \u0073\u0065\u0063t\u006fr\u0020\u0028"+_dea .Error ()+"\u0029",int64 (_fbf )};};if _fbf <=_fd {if _fbf ==_fd ||_dd [_fbf ]{return Error {ErrRead ,"\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020e\u006e\u0074\u0072\u0069\u0065\u0073\u0020s\u0065\u0063\u0074\u006f\u0072\u0020\u0063\u0079\u0063\u006c\u0065",int64 (_fbf )};};_dd [_fbf ]=true ;};_fd =_fbf ;};_de ._bebd =_cf ;return nil ;};func (_bde *File )FileInfo ()_ge .FileInfo {return fileInfo {_bde }};func _ee (_ecc uint16 ,_efa *File ){_ggb (_efa );if _efa ._ec !=_fa {return ;};if _ecc > 3{_efa .Size =int64 (_f .LittleEndian .Uint64 (_efa ._cce [:]));}else {_efa .Size =int64 (_f .LittleEndian .Uint32 (_efa ._cce [:4]));};};func (_acb *File )ensureWriterAt ()error {if _acb ._bdg ._fafg ==nil {_dcd ,_ccf :=_acb ._bdg ._acbe .(_gb .WriterAt );if !_ccf {return Error {ErrWrite ,"\u006d\u0073\u0063\u0066\u0062\u002e\u004ee\u0077\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020\u0067\u0069\u0076\u0065n\u0020R\u0065\u0061\u0064\u0065\u0072\u0041t\u0020\u0063\u006f\u006e\u0076\u0065\u0072t\u0069\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0020\u0069\u006f\u002e\u0057\u0072\u0069\u0074\u0065\u0072\u0041\u0074\u0020\u0069n\u0020\u006f\u0072\u0064\u0065\u0072\u0020\u0074\u006f\u0020\u0077\u0072\u0069t\u0065",0};};_acb ._bdg ._fafg =_dcd ;};return nil ;};func (_egdd Error )Error ()string {return "\u006ds\u0063\u0066\u0062\u003a\u0020"+_egdd ._beeb +"\u003b\u0020"+_g .FormatInt (_egdd ._fce ,10);};type fileInfo struct{*File };func (_eba fileInfo )ModTime ()_bc .Time {return _eba .Modified ()};func (_dbdf *Reader )GetEntry (entryName string )(*File ,error ){for _acc ,_ceff :=_dbdf .Next ();_ceff ==nil ;_acc ,_ceff =_dbdf .Next (){if _acc .Name ==entryName {return _acc ,nil ;};};return nil ,Error {ErrTraverse ,"\u004e\u006f\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u0066o\u0075\u006e\u0064\u0020\u0066\u006f\u0072 \u0067\u0069\u0076\u0065\u006e\u0020\u006e\u0061\u006d\u0065\u002e",0};};func (_abc *Reader )setHeader ()error {_eggg ,_eedfd :=_abc .readAt (0,_ade );if _eedfd !=nil {return _eedfd ;};_abc ._aacbb =&header {headerFields :_fee (_eggg )};if _abc ._aacbb ._ede !=_ebca {return Error {ErrFormat ,"\u0062\u0061\u0064\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065",int64 (_abc ._aacbb ._ede )};};if _abc ._aacbb ._gfdc ==0x0009||_abc ._aacbb ._gfdc ==0x000c{_abc ._agea =uint32 (1<<_abc ._aacbb ._gfdc );}else {return Error {ErrFormat ,"\u0069\u006c\u006c\u0065ga\u006c\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0073\u0069\u007a\u0065",int64 (_abc ._aacbb ._gfdc )};};if _abc ._aacbb ._baae > 0{_ceac :=(_abc ._agea /4)-1;if int (_abc ._aacbb ._baae *_ceac +109)< 0{return Error {ErrFormat ,"\u0044I\u0046A\u0054\u0020\u0069\u006e\u0074 \u006f\u0076e\u0072\u0066\u006c\u006f\u0077",int64 (_abc ._aacbb ._baae )};};if _abc ._aacbb ._baae *_ceac +109> _abc ._aacbb ._bcg +_ceac {return Error {ErrFormat ,"\u006e\u0075\u006d\u0020\u0044\u0049\u0046\u0041\u0054\u0073 \u0065\u0078\u0063\u0065\u0065\u0064\u0073 \u0046\u0041\u0054\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0073",int64 (_abc ._aacbb ._baae )};};};if _abc ._aacbb ._afd > 0{if int (_abc ._agea /4*_abc ._aacbb ._afd )< 0{return Error {ErrFormat ,"m\u0069\u006e\u0069\u0020FA\u0054 \u0069\u006e\u0074\u0020\u006fv\u0065\u0072\u0066\u006c\u006f\u0077",int64 (_abc ._aacbb ._afd )};};if _abc ._aacbb ._afd > _abc ._aacbb ._bcg *(_abc ._agea /_ccc ){return Error {ErrFormat ,"\u006e\u0075\u006d\u0020\u006d\u0069n\u0069\u0020\u0046\u0041\u0054\u0073\u0020\u0065\u0078\u0063\u0065\u0065\u0064s\u0020\u0046\u0041\u0054\u0020\u0073\u0065c\u0074\u006f\u0072\u0073",int64 (_abc ._aacbb ._bcg )};};};return nil ;};func (_cafg *Reader )exportDirEntries (_baa *_c .Writer )error {if int64 (_baa .Len ())!=_efe (_cafg ._agea ,_cafg ._aacbb ._fbfa ){return Error {ErrWrite ,_bf .Sprintf ("I\u006e\u0063\u006f\u0072\u0072\u0065c\u0074\u0020\u0077\u0072\u0069\u0074\u0065\u0072\u0020l\u0065\u006e\u0067t\u0068:\u0020\u0025\u0076",_baa .Len ()),0};};for _ ,_ddd :=range _cafg ._bebd {_bbcg ,_gcff :=_bff (_ddd .directoryEntryFields );if _gcff !=nil {return _gcff ;};if _ ,_cgf :=_gb .Copy (_baa ,_bbcg );_cgf !=nil {return _cgf ;};};return nil ;};const (ErrFormat =iota ;ErrRead ;ErrSeek ;ErrWrite ;ErrTraverse ;);func _efe (_fabdd ,_fcf uint32 )int64 {return int64 ((_fcf +1)*_fabdd )};func (_aea *Reader )findNext (_dcda uint32 ,_afed bool )(uint32 ,error ){_ecf :=_aea ._agea /4;_fgbc :=int (_dcda /_ecf );var _ffa uint32 ;if _afed {if _fgbc < 0||_fgbc >=len (_aea ._aacbb ._dfd ){return 0,Error {ErrRead ,"\u006d\u0069\u006e\u0069\u0073e\u0063\u0074\u006f\u0072\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0069\u0073 \u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u006d\u0069\u006e\u0069\u0046\u0041\u0054\u0020\u0072\u0061\u006e\u0067\u0065",int64 (_fgbc )};};_ffa =_aea ._aacbb ._dfd [_fgbc ];}else {if _fgbc < 0||_fgbc >=len (_aea ._aacbb ._fcd ){return 0,Error {ErrRead ,"\u0046\u0041\u0054\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0069\u0073\u0020\u006f\u0075t\u0073i\u0064\u0065\u0020\u0044\u0049\u0046\u0041\u0054\u0020\u0072\u0061\u006e\u0067\u0065",int64 (_fgbc )};};_ffa =_aea ._aacbb ._fcd [_fgbc ];};_bdbg :=_dcda %_ecf ;_ccd :=_efe (_aea ._agea ,_ffa )+int64 (_bdbg *4);_bca ,_gcb :=_aea .readAt (_ccd ,4);if _gcb !=nil {return 0,Error {ErrRead ,"\u0062\u0061\u0064\u0020\u0072\u0065\u0061\u0064\u0020\u0066i\u006e\u0064\u0069\u006e\u0067\u0020\u006ee\u0078\u0074\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0028"+_gcb .Error ()+"\u0029",_ccd };};_eef :=_f .LittleEndian .Uint32 (_bca );return _eef ,nil ;};func _fee (_aaa []byte )*headerFields {_bee :=&headerFields {};_bee ._ede =_f .LittleEndian .Uint64 (_aaa [:8]);_bee ._acgb =_f .LittleEndian .Uint16 (_aaa [24:26]);_bee ._bgcg =_f .LittleEndian .Uint16 (_aaa [26:28]);_bee ._gfdc =_f .LittleEndian .Uint16 (_aaa [30:32]);_bee ._cee =_f .LittleEndian .Uint32 (_aaa [40:44]);_bee ._bcg =_f .LittleEndian .Uint32 (_aaa [44:48]);_bee ._fbfa =_f .LittleEndian .Uint32 (_aaa [48:52]);_bee ._bdb =_f .LittleEndian .Uint32 (_aaa [60:64]);_bee ._afd =_f .LittleEndian .Uint32 (_aaa [64:68]);_bee ._cgg =_f .LittleEndian .Uint32 (_aaa [68:72]);_bee ._baae =_f .LittleEndian .Uint32 (_aaa [72:76]);var _gdfg int ;for _cfbe :=76;_cfbe < 512;_cfbe =_cfbe +4{_bee ._cefe [_gdfg ]=_f .LittleEndian .Uint32 (_aaa [_cfbe :_cfbe +4]);_gdfg ++;};return _bee ;};type Reader struct{_cbbe bool ;_agea uint32 ;_ffd []byte ;_aacbb *header ;File []*File ;_bebd []*File ;_gbe int ;_acbe _gb .ReaderAt ;_fafg _gb .WriterAt ;};func (_dac *Reader )Debug ()map[string ][]uint32 {_cdg :=map[string ][]uint32 {"s\u0065\u0063\u0074\u006f\u0072\u0020\u0073\u0069\u007a\u0065":[]uint32 {_dac ._agea },"\u006d\u0069\u006e\u0069\u0020\u0066\u0061\u0074\u0020\u006c\u006f\u0063\u0073":_dac ._aacbb ._dfd ,"\u006d\u0069n\u0069\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u006c\u006f\u0063\u0073":_dac ._aacbb ._daab ,"\u0064\u0069r\u0065\u0063\u0074o\u0072\u0079\u0020\u0073\u0065\u0063\u0074\u006f\u0072":[]uint32 {_dac ._aacbb ._fbfa },"\u006d\u0069\u006e\u0069 s\u0074\u0072\u0065\u0061\u006d\u0020\u0073\u0074\u0061\u0072\u0074\u002f\u0073\u0069z\u0065":[]uint32 {_dac .File [0]._bbc ,_f .LittleEndian .Uint32 (_dac .File [0]._cce [:])}};for _fgaa ,_abd :=_dac .Next ();_abd ==nil ;_fgaa ,_abd =_dac .Next (){_cdg [_fgaa .Name +" \u0073\u0074\u0061\u0072\u0074\u002f\u0073\u0069\u007a\u0065"]=[]uint32 {_fgaa ._bbc ,_f .LittleEndian .Uint32 (_fgaa ._cce [:])};};return _cdg ;};func (_fgd *File )WriteAt (p []byte ,off int64 )(_cea int ,_efgg error ){_eab ,_egeg ,_gcf :=_fgd ._ad ,_fgd ._eb ,_fgd ._cbd ;_ ,_efgg =_fgd .Seek (off ,0);if _efgg ==nil {_cea ,_efgg =_fgd .Write (p );};_fgd ._ad ,_fgd ._eb ,_fgd ._cbd =_eab ,_egeg ,_gcf ;return _cea ,_efgg ;};func (_ggab *File )changeSize (_fae int64 )error {if _fae ==_ggab .Size {return nil ;};var _fgfg *File ;for _ ,_af :=range _ggab ._bdg ._bebd {if _af .Name ==_ggab .Name {_fgfg =_af ;break ;};};if _fgfg ==nil {return _bf .Errorf ("\u004e\u006f\u0020\u0064\u0069\u0072e\u0063\u0074\u006f\u0072\u0079\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u0066o\u0072\u0020\u0061\u0020\u0066\u0069\u006ce\u003a\u0020\u0025\u0073",_ggab .Name );};_acbd :=_e .NewBuffer ([]byte {});if _gec :=_f .Write (_acbd ,_f .LittleEndian ,_fae );_gec !=nil {return _gec ;};for _eaa ,_afg :=range _acbd .Bytes (){_fgfg ._cce [_eaa ]=_afg ;};var _adf int64 ;var _fabg bool ;if _ggab .Size < _cbbb {_fabg =true ;_adf =int64 (_ccc );}else {_adf =int64 (_ggab ._bdg ._agea );};_gbb :=int ((_ggab .Size -1)/_adf )+1;_aaf :=int ((_fae -1)/_adf )+1;if _gbb < _aaf {_bbaf ,_ced :=_ggab .findLast (_fabg );if _ced !=nil {return _ced ;};_bbg ,_ced :=_ggab ._bdg .findNextFreeSector (_fabg );if _ced !=nil {return _ced ;};for _eed :=_aaf -_gbb ;_eed > 0;_eed --{if _bfg :=_ggab ._bdg .saveToFatLocs (_bbaf ,_bbg ,_fabg );_bfg !=nil {return _bfg ;};if _eed > 1{_bbaf =_bbg ;_bbg ++;}else if _cdff :=_ggab ._bdg .saveToFatLocs (_bbg ,_cfd ,_fabg );_cdff !=nil {return _cdff ;};};}else if _gbb > _aaf {_fe :=_ggab ._bbc ;var _ecb error ;for _fgff :=0;_fgff < _aaf -1;_fgff ++{_fe ,_ecb =_ggab ._bdg .findNext (_fe ,_fabg );if _ecb !=nil {return _ecb ;};};if _edg :=_ggab ._bdg .saveToFatLocs (_fe ,_cfd ,_fabg );_edg !=nil {return _edg ;};};_ggab .Size =_fae ;return nil ;};func (_eec *Reader )getOffset (_cbae uint32 ,_aec bool )(int64 ,error ){if _aec {_deb :=_eec ._agea /64;_bbd :=int (_cbae /_deb );if _bbd >=len (_eec ._aacbb ._daab ){return 0,Error {ErrRead ,"\u006di\u006e\u0069s\u0065\u0063\u0074o\u0072\u0020\u006e\u0075\u006d\u0062\u0065r\u0020\u0069\u0073\u0020\u006f\u0075t\u0073\u0069\u0064\u0065\u0020\u006d\u0069\u006e\u0069\u0073\u0065c\u0074\u006f\u0072\u0020\u0072\u0061\u006e\u0067\u0065",int64 (_bbd )};};_ggbe :=_cbae %_deb ;return int64 ((_eec ._aacbb ._daab [_bbd ]+1)*_eec ._agea +_ggbe *64),nil ;};return _efe (_eec ._agea ,_cbae ),nil ;};func (_dab *File )findLast (_gac bool )(uint32 ,error ){_bge :=_dab ._bbc ;for {_dbg ,_fdf :=_dab ._bdg .findNext (_bge ,_gac );if _fdf !=nil {return 0,Error {ErrRead ,"\u0062\u0061\u0064\u0020\u0072\u0065\u0061\u0064\u0020\u0066i\u006e\u0064\u0069\u006e\u0067\u0020\u006ee\u0078\u0074\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0028"+_fdf .Error ()+"\u0029",0};};if _dbg ==_cfd {break ;};_bge =_dbg ;};return _bge ,nil ;};func (_bba fileInfo )Mode ()_ge .FileMode {return _bba .File .mode ()};type Error struct{_gbcd int ;_beeb string ;_fce int64 ;};func (_cedb *Reader )Modified ()_bc .Time {return _cedb .File [0].Modified ()};func (_ccb Error )Typ ()int {return _ccb ._gbcd };func (_bcc *Reader )exportHeader (_dgb *_c .Writer )error {if _dce :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._ede );_dce !=nil {return _dce ;};if _debb :=_dgb .Skip (16);_debb !=nil {return _debb ;};if _cgb :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._acgb );_cgb !=nil {return _cgb ;};if _gefd :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._bgcg );_gefd !=nil {return _gefd ;};if _egda :=_f .Write (_dgb ,_f .LittleEndian ,uint16 (0xfffe));_egda !=nil {return _egda ;};if _aaced :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._gfdc );_aaced !=nil {return _aaced ;};if _cdfc :=_f .Write (_dgb ,_f .LittleEndian ,uint16 (0x0006));_cdfc !=nil {return _cdfc ;};if _dcc :=_dgb .Skip (6);_dcc !=nil {return _dcc ;};if _dcca :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._cee );_dcca !=nil {return _dcca ;};if _defg :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._bcg );_defg !=nil {return _defg ;};if _efd :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._fbfa );_efd !=nil {return _efd ;};if _aege :=_dgb .Skip (4);_aege !=nil {return _aege ;};if _fbe :=_f .Write (_dgb ,_f .LittleEndian ,uint32 (0x00001000));_fbe !=nil {return _fbe ;};if _ecfd :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._bdb );_ecfd !=nil {return _ecfd ;};if _gfa :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._afd );_gfa !=nil {return _gfa ;};if _ebacf :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._cgg );_ebacf !=nil {return _ebacf ;};if _afa :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._baae );_afa !=nil {return _afa ;};for _fagc :=0;_fagc < 109;_fagc ++{if _gcfc :=_f .Write (_dgb ,_f .LittleEndian ,&_bcc ._aacbb ._cefe [_fagc ]);_gcfc !=nil {return _gcfc ;};};return nil ;};func (_gggd *Reader )exportDifats (_bcfc *_c .Writer )error {if _gggd ._aacbb ._baae ==0{return nil ;};return nil ;};func (_eg *File )mode ()_ge .FileMode {if _eg ._ec !=_fa {return _ge .ModeDir |0777;};return 0666;};func (_dcbc *Reader )GetHeader ()*header {return _dcbc ._aacbb };func (_dfe *File )SetEntryContent (b []byte )error {if _bgd :=_dfe .ensureWriterAt ();_bgd !=nil {return _bgd ;};_dfe .reset ();if _faf :=_dfe .changeSize (int64 (len (b )));_faf !=nil {return _faf ;};_ ,_gf :=_dfe .Write (b );return _gf ;};func (_ebg fileInfo )Name ()string {return _ebg .File .Name };func (_caf *File )reset (){_caf ._ad =0;_caf ._eb =0;_caf ._cbd =_caf ._bbc };func _bff (_ebe *directoryEntryFields )(*_e .Buffer ,error ){_cec :=_e .NewBuffer ([]byte {});for _ ,_fcag :=range _ebe ._ga {if _bgc :=_f .Write (_cec ,_f .LittleEndian ,&_fcag );_bgc !=nil {return nil ,_bgc ;};};if _abe :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._bfe );_abe !=nil {return nil ,_abe ;};if _gea :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._ec );_gea !=nil {return nil ,_gea ;};if _fcg :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._db );_fcg !=nil {return nil ,_fcg ;};if _dabb :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._geb );_dabb !=nil {return nil ,_dabb ;};if _cef :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._bce );_cef !=nil {return nil ,_cef ;};if _gfd :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._cc );_gfd !=nil {return nil ,_gfd ;};if _fgg :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._gg .DataA );_fgg !=nil {return nil ,_fgg ;};if _gad :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._gg .DataB );_gad !=nil {return nil ,_gad ;};if _cebe :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._gg .DataC );_cebe !=nil {return nil ,_cebe ;};if _ ,_afga :=_cec .Write (_ebe ._gg .DataD [:]);_afga !=nil {return nil ,_afga ;};if _ ,_fabb :=_cec .Write (_ebe ._aa [:]);_fabb !=nil {return nil ,_fabb ;};if _cbdd :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._ba .Low );_cbdd !=nil {return nil ,_cbdd ;};if _bdc :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._ba .High );_bdc !=nil {return nil ,_bdc ;};if _dad :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._ed .Low );_dad !=nil {return nil ,_dad ;};if _bag :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._ed .High );_bag !=nil {return nil ,_bag ;};if _aace :=_f .Write (_cec ,_f .LittleEndian ,&_ebe ._bbc );_aace !=nil {return nil ,_aace ;};if _ ,_gefe :=_cec .Write (_ebe ._cce [:]);_gefe !=nil {return nil ,_gefe ;};return _cec ,nil ;};func (_bagf *Reader )saveToFatLocs (_bead uint32 ,_afba interface{},_efcd bool )error {_cdda :=_e .NewBuffer ([]byte {});if _egac :=_f .Write (_cdda ,_f .LittleEndian ,_afba );_egac !=nil {return _egac ;};_fgdb :=_bagf .findFatLocsOffset (_efcd )+int64 (_bead *4);_ ,_gggdd :=_bagf ._fafg .WriteAt (_cdda .Bytes (),_fgdb );return _gggdd ;};func (_ebc fileInfo )Size ()int64 {if _ebc ._ec !=_fa {return 0;};return _ebc .File .Size ;};func (_fgbb *Reader )exportFAT (_gcfce *_c .Writer ,_bgcc []uint32 )error {if _fgbb ._aacbb ._bcg ==0{return nil ;};_bcab :=_e .NewBuffer ([]byte {});if _ggce :=_f .Write (_bcab ,_f .LittleEndian ,_ece );_ggce !=nil {return _ggce ;};for _dcec :=0;_dcec < len (_bgcc )-1;_dcec ++{for _cca :=_bgcc [_dcec ];_cca < _bgcc [_dcec +1]-1;_cca ++{if _deee :=_f .Write (_bcab ,_f .LittleEndian ,_cca );_deee !=nil {return _deee ;};};if _fad :=_f .Write (_bcab ,_f .LittleEndian ,_cfd );_fad !=nil {return _fad ;};};_fggg :=512;for _ ,_fgad :=range _bcab .Bytes (){if _fecg :=_gcfce .WriteByteAt (_fgad ,_fggg );_fecg !=nil {return _fecg ;};_fggg ++;};return nil ;};func (_ggba *File )Created ()_bc .Time {return _ggba ._ba .Time ()};func (_ab *Reader )traverse ()error {_ab .File =make ([]*File ,0,len (_ab ._bebd ));var (_df func (int ,[]string );_cg error ;_bab int ;);_df =func (_bd int ,_ggf []string ){_bab ++;if _bab > len (_ab ._bebd ){_cg =Error {ErrTraverse ,"\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c\u0020\u0063o\u0075\u006e\u0074\u0065\u0072\u0020\u006f\u0076\u0065\u0072f\u006c\u006f\u0077",int64 (_bd )};return ;};if _bd < 0||_bd >=len (_ab ._bebd ){_cg =Error {ErrTraverse ,"\u0069\u006c\u006ceg\u0061\u006c\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c\u0020\u0069\u006e\u0064\u0065\u0078",int64 (_bd )};return ;};_cb :=_ab ._bebd [_bd ];if _cb ._geb !=_gacd {_df (int (_cb ._geb ),_ggf );};_ab .File =append (_ab .File ,_cb );_cb .Path =_ggf ;if _cb ._cc !=_gacd {if _bd > 0{_df (int (_cb ._cc ),append (_ggf ,_cb .Name ));}else {_df (int (_cb ._cc ),_ggf );};};if _cb ._bce !=_gacd {_df (int (_cb ._bce ),_ggf );};return ;};_df (0,[]string {});return _cg ;};const _ade int =8+16+10+6+12+8+16+109*4;const (_cafa uint32 =0xFFFFFFFA;_gaca uint32 =0xFFFFFFFC;_ece uint32 =0xFFFFFFFD;_cfd uint32 =0xFFFFFFFE;_dba uint32 =0xFFFFFFFF;_fbb byte =0xFF;_bgf uint32 =0xFFFFFFFA;_gacd uint32 =0xFFFFFFFF;);func (_gdf *File )ReadAt (p []byte ,off int64 )(_dae int ,_bcf error ){_dff ,_aba ,_gaa :=_gdf ._ad ,_gdf ._eb ,_gdf ._cbd ;_ ,_bcf =_gdf .Seek (off ,0);if _bcf ==nil {_dae ,_bcf =_gdf .Read (p );};_gdf ._ad ,_gdf ._eb ,_gdf ._cbd =_dff ,_aba ,_gaa ;return _dae ,_bcf ;};func (_dbb *File )Seek (offset int64 ,whence int )(int64 ,error ){var _fga int64 ;switch whence {default:return 0,Error {ErrSeek ,"\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0077h\u0065\u006e\u0063\u0065",int64 (whence )};case 0:_fga =offset ;case 1:_fga =_dbb ._ad +offset ;case 2:_fga =_dbb .Size -offset ;};switch {case _fga < 0:return _dbb ._ad ,Error {ErrSeek ,"\u0063\u0061\u006e'\u0074\u0020\u0073\u0065e\u006b\u0020\u0062\u0065\u0066\u006f\u0072e\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u006f\u0066\u0020\u0046\u0069\u006c\u0065",_fga };case _fga >=_dbb .Size :return _dbb ._ad ,Error {ErrSeek ,"c\u0061\u006e\u0027\u0074\u0020\u0073e\u0065\u006b\u0020\u0070\u0061\u0073\u0074\u0020\u0046i\u006c\u0065\u0020l\u0065n\u0067\u0074\u0068",_fga };case _fga ==_dbb ._ad :return _fga ,nil ;case _fga > _dbb ._ad :_bged :=_dbb ._ad ;_dbb ._ad =_fga ;return _dbb ._ad ,_dbb .seek (_fga -_bged );};if _dbb ._eb >=_dbb ._ad -_fga {_dbb ._eb =_dbb ._eb -(_dbb ._ad -_fga );_dbb ._ad =_fga ;return _dbb ._ad ,nil ;};_dbb ._eb =0;_dbb ._cbd =_dbb ._bbc ;_dbb ._ad =_fga ;return _dbb ._ad ,_dbb .seek (_fga );};type headerFields struct{_ede uint64 ;_ [16]byte ;_acgb uint16 ;_bgcg uint16 ;_ [2]byte ;_gfdc uint16 ;_ [2]byte ;_ [6]byte ;_cee uint32 ;_bcg uint32 ;_fbfa uint32 ;_ [4]byte ;_ [4]byte ;_bdb uint32 ;_afd uint32 ;_cgg uint32 ;_baae uint32 ;_cefe [109]uint32 ;};func (_gce *File )stream (_cac int )([][2]int64 ,error ){var _fec bool ;var _aac int ;var _gefc int64 ;if _gce .Size < _cbbb {_fec =true ;_aac =_cac /int (_ccc )+2;_gefc =int64 (_ccc );}else {_aac =_cac /int (_gce ._bdg ._agea )+2;_gefc =int64 (_gce ._bdg ._agea );};_fgb :=make ([][2]int64 ,0,_aac );var _gdba ,_egd int ;if _gce ._eb > 0{_eedf ,_dbf :=_gce ._bdg .getOffset (_gce ._cbd ,_fec );if _dbf !=nil {return nil ,_dbf ;};if _gefc -_gce ._eb >=int64 (_cac ){_fgb =append (_fgb ,[2]int64 {_eedf +_gce ._eb ,int64 (_cac )});}else {_fgb =append (_fgb ,[2]int64 {_eedf +_gce ._eb ,_gefc -_gce ._eb });};if _gefc -_gce ._eb <=int64 (_cac ){_gce ._cbd ,_dbf =_gce ._bdg .findNext (_gce ._cbd ,_fec );if _dbf !=nil {return nil ,_dbf ;};_egd +=int (_gefc -_gce ._eb );_gce ._eb =0;}else {_gce ._eb +=int64 (_cac );};if _fgb [0][1]==int64 (_cac ){return _fgb ,nil ;};if _gce ._cbd ==_cfd {return nil ,Error {ErrRead ,"\u0075\u006ee\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0065\u0061\u0072\u006c\u0079\u0020\u0065\u006e\u0064\u0020\u006f\u0066\u0020\u0063ha\u0069\u006e",int64 (_gce ._cbd )};};_gdba ++;};for {if _gdba >=cap (_fgb ){return nil ,Error {ErrRead ,"\u0069\u006e\u0064\u0065x\u0020\u006f\u0076\u0065\u0072\u0072\u0075\u006e\u0073\u0020s\u0065c\u0074\u006f\u0072\u0020\u006c\u0065\u006eg\u0074\u0068",int64 (_gdba )};};_dcb ,_daba :=_gce ._bdg .getOffset (_gce ._cbd ,_fec );if _daba !=nil {return nil ,_daba ;};if _cac -_egd < int (_gefc ){_fgb =append (_fgb ,[2]int64 {_dcb ,int64 (_cac -_egd )});_gce ._eb =int64 (_cac -_egd );return _bed (_fgb ),nil ;}else {_fgb =append (_fgb ,[2]int64 {_dcb ,_gefc });_egd +=int (_gefc );_gce ._cbd ,_daba =_gce ._bdg .findNext (_gce ._cbd ,_fec );if _daba !=nil {return nil ,_daba ;};if _egd ==_cac {return _bed (_fgb ),nil ;};};_gdba ++;};};func (_dbd *Reader )findFatLocsOffset (_gfc bool )int64 {var _bfa uint32 ;if _gfc {_bfa =_dbd ._aacbb ._dfd [0];}else {_bfa =_dbd ._aacbb ._fcd [0];};return _efe (_dbd ._agea ,_bfa );};func (_efbc *Reader )exportMiniStream ()(*_c .Writer ,*_c .Writer ,error ){_cdgc ,_abag :=_c .NewWriter (),_c .NewWriter ();_gdc :=uint32 (0);for _ ,_bdfg :=range _efbc .File {if _bdfg .Size ==0{continue ;};_bdfg .reset ();_bdfg ._bbc =_gdc ;_eae :=int (_bdfg .Size )/int (_ccc );if int (_bdfg .Size )%int (_ccc )!=0{_eae ++;};for _efeg :=1;_efeg < _eae ;_efeg ++{_gdc ++;if _fgbf :=_f .Write (_cdgc ,_f .LittleEndian ,_gdc );_fgbf !=nil {return nil ,nil ,_fgbf ;};};if _gfag :=_f .Write (_cdgc ,_f .LittleEndian ,_cfd );_gfag !=nil {return nil ,nil ,_gfag ;};_gdc ++;if _ ,_bec :=_gb .Copy (_abag ,_bdfg );_bec !=nil {return nil ,nil ,_bec ;};if _abea :=_abag .AlignLength (64);_abea !=nil {return nil ,nil ,_abea ;};};if _dbc :=_cdgc .FillWithByte (int (_efbc ._agea )-_cdgc .Len (),_fbb );_dbc !=nil {return nil ,nil ,_dbc ;};if _baaa :=_abag .AlignLength (int (_efbc ._agea ));_baaa !=nil {return nil ,nil ,_baaa ;};return _cdgc ,_abag ,nil ;};func (_bbge *Reader )Created ()_bc .Time {return _bbge .File [0].Created ()};func _gbf (_ae []byte )*directoryEntryFields {_gga :=&directoryEntryFields {};for _ce :=range _gga ._ga {_gga ._ga [_ce ]=_f .LittleEndian .Uint16 (_ae [_ce *2:_ce *2+2]);};_gga ._bfe =_f .LittleEndian .Uint16 (_ae [64:66]);_gga ._ec =uint8 (_ae [66]);_gga ._db =uint8 (_ae [67]);_gga ._geb =_f .LittleEndian .Uint32 (_ae [68:72]);_gga ._bce =_f .LittleEndian .Uint32 (_ae [72:76]);_gga ._cc =_f .LittleEndian .Uint32 (_ae [76:80]);_gga ._gg =_fb .MustGuid (_ae [80:96]);copy (_gga ._aa [:],_ae [96:100]);_gga ._ba =_fb .MustFileTime (_ae [100:108]);_gga ._ed =_fb .MustFileTime (_ae [108:116]);_gga ._bbc =_f .LittleEndian .Uint32 (_ae [116:120]);copy (_gga ._cce [:],_ae [120:128]);return _gga ;};func New (ra _gb .ReaderAt )(*Reader ,error ){_gbc :=&Reader {_acbe :ra };if _ ,_dfdg :=ra .(slicer );_dfdg {_gbc ._cbbe =true ;}else {_gbc ._ffd =make ([]byte ,_ade );};if _bcb :=_gbc .setHeader ();_bcb !=nil {return nil ,_bcb ;};if !_gbc ._cbbe &&int (_gbc ._agea )> len (_gbc ._ffd ){_gbc ._ffd =make ([]byte ,_gbc ._agea );};if _fcagd :=_gbc .setDifats ();_fcagd !=nil {return nil ,_fcagd ;};if _ebcf :=_gbc .setDirEntries ();_ebcf !=nil {return nil ,_ebcf ;};if _fef :=_gbc .setMiniStream ();_fef !=nil {return nil ,_fef ;};if _fgdg :=_gbc .traverse ();_fgdg !=nil {return nil ,_fgdg ;};return _gbc ,nil ;};func (_adg *File )ID ()string {return _adg ._gg .String ()};func (_beg *Reader )readAt (_afge int64 ,_geab int )([]byte ,error ){if _beg ._cbbe {_cbg ,_cba :=_beg ._acbe .(slicer ).Slice (_afge ,_geab );if _cba !=nil {return nil ,Error {ErrRead ,"\u0073\u006c\u0069\u0063er\u0020\u0072\u0065\u0061\u0064\u0020\u0065\u0072\u0072\u006f\u0072\u0020\u0028"+_cba .Error ()+"\u0029",_afge };};return _cbg ,nil ;};if _geab > len (_beg ._ffd ){return nil ,Error {ErrRead ,"\u0072\u0065ad\u0020\u006c\u0065n\u0067\u0074\u0068\u0020gre\u0061te\u0072\u0020\u0074\u0068\u0061\u006e\u0020re\u0061\u0064\u0020\u0062\u0075\u0066\u0066e\u0072",int64 (_geab )};};if _ ,_efb :=_beg ._acbe .ReadAt (_beg ._ffd [:_geab ],_afge );_efb !=nil {return nil ,Error {ErrRead ,_efb .Error (),_afge };};return _beg ._ffd [:_geab ],nil ;};