aehobak 0.0.13

Transcoder for bsdiff binary patches.
Documentation
pub fn ref_patch() -> Box<[u8]> {
    let mut patch = Vec::new();
    patch.extend(PATCH_HEX_0);
    patch.resize(173 * 64, b'0');
    patch.extend(PATCH_HEX_1);
    patch.resize(228 * 64, b'0');
    patch.extend(PATCH_HEX_2);
    patch
        .chunks_exact(2)
        .map(|xx| u8::from_str_radix(std::str::from_utf8(xx).unwrap(), 16).unwrap())
        .collect()
}

const PATCH_HEX_0: &[u8] = b"AAAB150801D104EA07";

const PATCH_HEX_1: &[u8] = b"\
00000000000000000000000000000000000000005C5555555555955555555955\
5555565555555555555559555555555555555555555555555555555555555555\
5555555555555555555555555555555555555555555554405554114400555045\
5015551105141515050451101411115154555104041500545555441054454545\
5595455011500500555551441054111515555455155404545711110411440505\
1104451044101441411111541151141051044540505004115450414510114404\
4444504145111551105515144140441011450404444015155040141110100544\
4144410414104511110441545550100444041101111111155051011111500544\
0444441145511150554550051141041111155140501411555404110441441141\
1045440404111104441151514504444404101140040144444044101110110144\
0410114544005555555555011511151550111515111041505045445444145400\
5115545015101451505410554510054114145141444044111410114455401454\
4401545555041104410411444004510550144544410441554440504441114150\
5504511044411115440444144101114154054441450110551550511514114404\
11111041541051111105110401EEF7FFEEEFFBFBFFFEFEBFFFEEFFBFFFEFFEFF\
7FBEEFFFF7F7FBBFBFFFFBFFBFFEFFFFFBFF7DDFFFFFFFEEEFFFFFFFFEFFFFFF\
FFEFFF7DDFFFFBFBFFFFFFEFBEBFFF0000000000000000000000000000000000";

const PATCH_HEX_2: &[u8] = b"\
FCC3070009181312141D0B1A2239071E0A1D1F1F460B02940A520A1501270121\
141A18163C1309161B243D063001262009131C27150909181B233D0686012908\
241A1B091620391E3129471E08230A0D0A182031252B06211D0355290A434301\
250A0B95340C0B95340A1196340D0A1209090A091123150E6A0E033927160E38\
38342C091CEC077C078B1D5A0B0B130A13101A182D211030021E121741121637\
234E0F270A0B53370C0B53370A115437100A0F09090A0E0B1B1120013C203910\
34171D2725090A09AE078907981D67140B130A13101A18072D211030021E1217\
41121637234E0F032F0A0B47370C0B47370A1148370D0A1209090A0A0A0C0C17\
1021023B20391032062E2725090A131A030E7B03020D031710032A0503381C06\
03064502120D121443100307191803130D4A0D0A0E030A2E0E31081D73350E20\
2E5F3C18260526321617173A3E25B57D271A091816061A149620161BA024381A\
0321152E0E1412030C2A145F1826010526012F1601140E033A3E260E01120409\
18070616141446541912A024381A03210E2E0E1412030C2A14510F2601052601\
2F160114173A3E252D696A1D0F01081807061814147B07C4070061031C030310\
03180214031A0104021D02160303130302070C03030F0403081004030A0A0404\
0B05080B0904090A030320010203080C03020F0611030E0A04040F04040F0404\
0A0A04030E04030E03030A0A04040F04040A06040804080C040F05130405058F\
040F0414050C0B03030E040317010402080C04050601070104030905050A0104\
02080A0303080A0103020E010302080507040703010110030D11022215045D04\
030F0413040C0B03030E04031703030A0E040706010703040B05080A03030A0A\
03040B0A03030E03030A050904070301010A04090A03040B0F05110509010680\
0E041703140315040311030D010C03040F02030C0B080B0C090C04054D091F03\
1D0D110C0D0315041D03180403110503070C0303070C041402140404070C0104\
030F0104030E030307010902030E02030D02030A0A03030E04030E03030A0902\
030E02030A0604080D0E75230D09020F031378230D09020F03137D230D094A37\
09090A0414040E04041503040F04040F01030423031402170303080D040E0F03\
15031601030407010B04040F02030F01041602220503F28290941A08110B0A0B\
0E060705050B110C0209040F030C0F041A030417040407010B01020313030308\
0E04030F03031103040A05010D03031804040D0F0409850313880313F71C1409\
10031A0314021903021003140217030408020B0204080C04041803040F031304\
02D68F9D8C01191A08110B0A0B100B070A0B100C0209040F030C0F041A030417\
040407010B010203130303080E04030F03031103040A05010D03031804040D11\
0F067903137C0313B9470B1009090F0103031604140319030211031402170304\
080E0403060D04031803040F03130402087813B90F00E66DC4BD0B0011F40500\
0238D40200BCC40100C4990100423D01002B620C00914801009E08E4B0080052\
58D8B105002FA4090094A3080066D6954D01004FF90100D2480C3702002B4C05\
006ADE05006F92B7C801004DA30A00CCB40300D00A08003BEA0700C6E00600D0\
09E4FF0100F39C080034A50500DD0EEA7A040029210300EDA309001EB5010072\
7E040069C00400A4E8A0DA03008896060063FC0A00B06401007B866C800800E3\
4147A802003470040071160300EDA309001EB5010096FF08000A7601009DFB08\
006E32323F040049F20400A4ED09009BC00100418A0B0080E902009A1D264808\
00C168BF4D0D00583D0F00BDB9080040920500A972080030250B000B880500AC\
7706006D6B0A00CC620A008E65BA132C04005C3903002319A1440800AA240900\
4EC9E3F30100534A0300683D0300ADFE0300A14B0600BE00060001945001000F\
530700BE000600013F95060048B20C00CF1E06001004C36603001CC2030003A8\
0700366C020084540200232BF43F0300D0E604009DCC04009FB860FD040019C5\
0B00CA460100BA810500BC8F0400F3521DD0070076360500CDFA0600A73D0100\
23600100BA7B0D00435B0B007912010058F70600B20D2F0D4D11030086150300\
C9E70200FAE90200380C0300F7C40700A8EB0800F9F506001FBB0400793F0100\
B2D60300A27901001F4753310100C929020054820D00D744070017160700CE46\
020044206008007B3D09004408E80B00BBE503005B310208004C750A0025C303\
00A14B060046560700D7380100603401000F53070046560700D738010073B106\
0048B20C0047C904007A0137B9040075F5DC450400F54B0400700E08007AC598\
62010071F20E007E190200049408005E09030063680A00DEC00100DD26030008\
C80B00DDA70400EA0702006FC90500A15C03007ED262BC0A00B9E7090058CA09\
00DB9C0B009EAD080045440100C84401005F630400CC670400293A0400743C04\
00A6BB01000BC7070035290400E41E06000796040091640100B2D60300BB2902\
00126D0D0005A70B00D064C929020054820D00D744070017160700CE46020044\
206008007B3D09004408E80B00BBE503005B31020800D9B5020012BF0D002757\
0400A14B06000E1F06008701603401000F5307000E1F0600870173B1060048B2\
0C007F000600CA38010037B9040099DC01004D090200F4D20400CF6602007229\
02009981040015C6010014710500CD75030060940700F8AC050056203B340B00\
06C72588010050290A000B6AFDB60C00AAB70400E9BD010039CC62BC0A00B9E7\
090058CA0900F6530200";