NAME=function bytes
ARGS=-a arm
FILE=bins/mach0/ls-m1
CMDS=<<EOF
af
p8f
EOF
EXPECT=<<EOF
7f2303d5fc6fbaa9fa6701a9f85f02a9f65703a9f44f04a9fd7b05a9fd430191ff0319d1f30301aaf40300aab5c301d1bf0a00f9bfc319b8bf0200f9e8830091e80f00f91f0000714c000054c30d0094e1fa01101f2003d500008052350f009460fa01301f2003d561fa01101f2003d5940e00945a0000b0409300393600805220008052eb0e00945b0000b0580000b0a00100351643033920f901301f2003d5c40e0094600400b4a3c301d1010080d20200b0124f0f0094480000b0000100b91c000014080a8052560000b0c80200b960f701301f2003d5b60e0094600000b40800403988010035a88301d1e80300f920008052018d8e520101a872c90e0094
EOF
RUN

NAME=function bytes + mask
ARGS=-a arm
FILE=bins/mach0/ls-m1
CMDS=<<EOF
af
p8fm
EOF
EXPECT=<<EOF
7f2303d5fc6fbaa9fa6701a9f85f02a9f65703a9f44f04a9fd7b05a9fd430191ff0319d1f30301aaf40300aab5c301d1bf0a00f9bfc319b8bf0200f9e8830091e80f00f91f0000714c000054c30d0094e1fa01101f2003d500008052350f009460fa01301f2003d561fa01101f2003d5940e00945a0000b0409300393600805220008052eb0e00945b0000b0580000b0a00100351643033920f901301f2003d5c40e0094600400b4a3c301d1010080d20200b0124f0f0094480000b0000100b91c000014080a8052560000b0c80200b960f701301f2003d5b60e0094600000b40800403988010035a88301d1e80300f920008052018d8e520101a872c90e00941f04003120010054a0235a78c000003506000014a3c301d1010080d20200b012340f0094c00200b928008052682b00b9a80240f9880000b4080a8052490000b0280100b900f401301f2003d5990e0094800000b428008052490000b0282d00b980f301301f2003d5920e00945c0000b0600000b428008052882300b919028052d5f201501f2003d5563502101f2003d5e00314aae10313aae20315aae30316aa040080d2870e0094109400511f6e0171882500541f6e01f110929f9a714f00101f2003d5307ab0b8110000103002108b00021fd60000000000000000288900b9ecffff170000000000000000282d00b9e8ffff170000000000000000287100b949934039891d0035e2ffff17000000000000000028008052490000b0286500b9e5000014000000000000000028010439d8ffff17000000000000000028910339480000b01f810339d2ffff170000000000000000283d00b9480000b01f3900b99a0000140000000000000000170140f9371f00b4a1f101501f2003d5e00317aab80e0094801e003441f101301f2003d5e00317aab30e0094e01d0034c1f001301f2003d5e00317aaae0e0094401d003441f001701f2003d5e00317aaa90e0094801d0034e1ef01101f2003d5e00317aaa40e0094e01c003461ef01101f2003d5e00317aa9f0e0094401c0034e1ee01701f2003d5e00317aa9a0e00946001003481ee01301f2003d5e00317aa950e0094c000003401ee01101f2003d5e00317aa900e0094804300359f2300b999ffff170000000000000000284100b9480000b01f3d00b91f2003d51f3900b991ffff1700000000000000001f4900b928008052490000b0284d00b98affff17000000000000000028008052490000b0287500b98d0000140000000000000000287900b980ffff170000000000000000288500b97cffff170000000000000000285900b9480000b01f5d00b976ffff1700000000000000000a82805229010a2a2a0300321f0100715901891a480000b01fa103396cffff17000000000000000028e10339480000b01fc1033966ffff1700000000000000002861033939031b3228008052490000b0287103395effff170000000000000000286d00b95affff17000000000000000028008052490000b0284500b954ffff170000000000000000480000b01f3100b95b0000140000000000000000490000b0284900b978000014000000000000000028b1033946ffff170000000000000000490000b03fa10339499340392a8280120a010a0a3f01007119018a1a3cffff17000000000000000028d1033938ffff170000000000000000283900b9480000b01f3d00b9480000b01f4100b930ffff170000000000000000288100b92cffff17000000000000000028008052490000b028f1033926ffff170000000000000000285103391f430339480000b01f3100b91fffff1700000000000000001f430339480000b01f3100b91f2003d51f3500b917ffff170000000000000000080140f9490000b0282900f911ffff170000000000000000a1d201101f2003d53700805222008052ee0d0094972300b908ffff17000000000000000019011c32280080524900009028a1033901ffff17000000000000000028c10339fdfeff170000000000000000286100b9f9feff170000000049000090283100b91f430339480000901f510339f2feff170000000000000000285d00b91f2003d5285900b9ecfeff170000000000000000287d00b9e8feff17000000000000000028810339480000901f910339e2feff170000000000000000283500b9480000901f3100b91f430339dbfeff170000000000000000286900b9d7feff170000000000000000480000901f4900b9480000901f4d00b9d0feff1748008052882300b9cdfeff171f040031c00000543c0c0094c9feff1728008052882300b9c6feff171f2003d5480d0258080180b9e80700f955000090a872433908010037520d0094c00000354800009008b143396800003728008052a8720339882340b9680a00341f0900714002005460c801301f2003d5390d0094e00000b520d001301f2003d5350d0094200900b408004039e808003420008052500d0094a000003540cf01701f2003d52c0d0094000800b400ca01301f2003d5280d0094600600b4e10300aae0830891c00d00941f040071c105005400c901501f2003d5e1630091be0d009455000090a04a00f960c801301f2003d5e1630091b80d009456000090c04e00f9c0c701101f2003d5e1630091b20d009448000090005100f900c701701f2003d5e1630091ac0d009448000090005500f960c601501f2003d5e1630091a60d009457000090e05a00f9c00000b5a0c501301f2003d5e16300919f0d0094e05a00f9a84a40f9280200b4c84e40f9e80100b4c00100b4280080524900009028b900b90f000014882340b91f090071e1000054280080524900009028b900b91f2003d528f10239060000141f2003d508f10318680000350900805216000014280080524900009028c100b9b03301101f2003d5f023c1daf50310aa40008052e10310aa410d009460008052e10315aa3e0d0094a0c001101f2003d5d70c00942a0900941f2003d548ee03181f010071e9079f1a1f2003d56aeb03185b0000906c3340b948010c2a1f2003d54beb031808010b2a1f010071e8079f1a5c0000908b9343390b010b2a57000090ed8243396b010d2a1f2003d5cde80318bf010071ee079f1a6b010e2a5a0000904e8b40b9df010071ee079f1a6b010e2a6b01092a2e031d327f0100722b138e1a4e000090cea143394e0200372c0200354c0000908ce14339cc010037bf010071ec079f1a5f010071ea079f1a1f2003d5cde50318bf010071ed179f1a8c010d0a8a010a2a4901092a290100526b01092a4900009029d143396a0119323f01007155118b1a480200344800009008f1433968000036480080520b000014d6e603101f2003d5a09301d1e10316aa8c0c0094c80240f909fd07911f0100f128b1889a08fd499349000090286500f9480000900a01443988934339e98243390801092a0b0100526901092a5f050071410400541f010072b09fff101f2003d5f023c1dae80310aaf0afff101f2003d5f023c1da1012889a290700371f2003d568de031890a5ff101f2003d5f023c1da680600351f2003d5c8dd031870a8ff101f2003d5f023c1daa80500351f2003d5c8dc03181f01007130abff101f2003d5f023c1dae80310aad09fff101f2003d5f023c1da210000141f010072309bff101f2003d5f023c1dae80310aa10aaff101f2003d5f023c1da1012889a090300371f2003d548da0318509eff101f2003d5f023c1da480200351f2003d5a8d9031830a1ff101f2003d5f023c1da880100351f2003d5a8d803181f010071f0a3ff101f2003d5f023c1dae80310aa9098ff101f2003d5f023c1da1002889a48000090108500f908434339707500101f2003d5f023c1da28020037683340b9708600101f2003d5f023c1da8801003548000090085143391f01007170f600101f2003d5f023c1dae80310aab0ee00101f2003d5f023c1da1012889a48000090108900f9488b40b9e801003428008052e81700b9c0a901301f2003d5e3530091010080d2020080d284008052b20c0094a000f836e1a901101f2003d520008052dd0b0094e80740f98002084ba000003561d003101f2003d52000805202000014610e088be20315aa650000944800009000614439d80b0094f70300f981a301301f2003d540008052cf0b0094:ff0ffc2a00000208000002c8000002c8000002c8000002c8000002c8000001b6000001b607ff07ce07ff07ce000001b6000003910030039d00000395000101b600000311f8000096f80000320000003f000000b1ffeffc2a000005540000003d000000b1ffeffc2a000000b1ffeffc2a0000003d000000f1000003bf00000154000001540000003d000000f1000000f1000000fc000003bf000000b1ffeffc2a0000003d000000fc000001b600000754000009600000003d000000f10000039d0000003f00000144000000f10000039d000000b1ffeffc2a0000003d000000fc000003bf000000fc000001b6000003950000015400000144000001440000003df80000f6f8000032003007f7000000fc0000003f000001b600000754000009600000003d0000039d000001540000039900000295000000fc00000144000000f10000039d000000b1ffeffc2a0000003d000000fc00000154000000f100000319000000f1ffeffc2a0000003d000000f1000000fc000001540000039d00000154000000f1ffeffc2a000000f1ffeffc2a07ff07ce07ff07ce07ff07ce07ff07ce000007540000003d00000086f8000096f800003af80000960020025a000000f1ffeffc2a0010051b000000f10000008e00000622000000000000000000000399000000150000000000000000000003190000001500000000000000000000039d000003bf000000fc00000015000000000000000000000154000000f1000003190000003f0000000000000000000003bf000000150000000000000000000003bf000000f1000003bf00000015000000000000000000000319000000f1000003990000003f000000000000000000000295000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000d1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc00000091ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc0000039d0000001500000000000000000000039d000000f100000319ffeffc2a000003990000001500000000000000000000039900000154000000f10000031900000015000000000000000000000154000000f1000003190000003f0000000000000000000003990000001500000000000000000000031900000015000000000000000000000399000000f10000031900000015000000000000000000000154000004ee000004f6f80000960020015a000000f1000003bf000000150000000000000000000003bf000000f1000003bf000000150000000000000000000003bf000004f600000154000000f1000003bf0000001500000000000000000000031900000015000000000000000000000154000000f100000319000000150000000000000000000000f10000039d0000003f0000000000000000000000f1000003990000003f0000000000000000000003bf000000150000000000000000000000f1000003bf000003bf00000170000004eef80000960020015a000000150000000000000000000003bf00000015000000000000000000000399000000f100000319000000f10000039d0000001500000000000000000000039d00000015000000000000000000000154000000f1000003bf000000150000000000000000000003bf000003bf000000f10000039d000000150000000000000000000003bf000000f10000039dffeffc2a0000031900000015000000000000000000000295000000f100000391000000150000000000000000000000f1ffeffc2a00000154000001540000003d0000039d000000150000000000000000000004f600000154000000f1000003bf000000150000000000000000000003bf0000001500000000000000000000039d0000001500000000000000f10000039d000003bf000000f1000003bf00000015000000000000000000000319ffeffc2a0000039900000015000000000000000000000319000000150000000000000000000003bf000000f1000003bf00000015000000000000000000000319000000f10000039d000003bf00000015000000000000000000000399000000150000000000000000000000f100000399000000f10000031900000015000001540000039d00000015f80000f6f80000320000003d00000015000001540000039d00000015ffeffc2a0000001d0000018700000311000000f1000003bf000000e40000003d000000fc000000f1000003bf000000e400000154000003bf00000295000000ecf8000096f8000032000000f1ffeffc2a0000003d000000fc000000f1ffeffc2a0000003d000000ec000003bf000000ec000001540000003d000000fc000000d1ffeffc2a0000003d000000ec000000f1ffeffc2a0000003d000000fc07ff07ce000001b60000003df8000096f8000033000000f1ffeffc2a000001b60000003d000000f100000391000000f1ffeffc2a000001b60000003d000000f100000311000000f1ffeffc2a000001b60000003d000000f100000395000000d1ffeffc2a000001b60000003d000000f100000311000000f1ffeffc2a000001b60000003d000000f100000391000000fc000000f1ffeffc2a000001b60000003d0000039100000291000000fc00000211000000fc000000fc00000154000000f1000003990000003f00000295f8000096f800003300000154000000f100000399ffeffc2a000003bf0000003fffeffc2a0000009d000000fc000005540000003f00000154000000f10000039d000000f1ffeffc2a003c025a07ff07ce0000015407ff07ce0000003f0000015407ff07ce0000003d000000f1ffeffc2a0000003d0000003dffeffc2a0000001df800009607e0f85affeffc2a0000001d000000f100000295000004eeffeffc2a0000001d000004eef800009607e0f85a000000f1000003bf000004ee000000f1000003bf000004eeffeffc2a0000001df800009607e0f85a000004ee000000f100000299f800009607e0f85a000004ee000004ee000004f6f80005560020005a000000f1000003bf000000e4000000fc000000f1000003bf000000e4f800009607e0f85af800009607e0f85affeffc2a0000009df800009607e0f85a000004ee000004ee000004ee000005d6000004ee000000f1000003bf000004f6f80000960020005a000000fc000000f1000003bf000000e4000001540000003f000000f1ffeffc2a000001b607ff07ce0000003d00000295000001a6f80000960020005a003f0166000000f100000311000000f1000003bf000003bf000003bf000004ee000005d6000004eef8000096f8000033f800055600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020025a000000e4ffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001df800009600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0000003ff800055600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020025a000000e4ffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001df800009600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020035a000000f100000311000003bf000000f1ffeffc2a003c025a000000e40000029d000000f1ffeffc2a003c025a000000fc000000f1000003bff8000096000000b1ffeffc2a003c025a07ff07ce000000b1ffeffc2a003c025a0020025a000000f10000039100000299000000fc0000015400000319000000f1ffeffc2a000001b60000075400000754000001540000003d000000c4000000f1ffeffc2a000001540000003d0000021100000086000000fc000000f1ffeffc2a000001540000003f0000008e07ff07ce0000003d000000f1000003bf0000003d00000395000000f1ffeffc2a000001540000003d
EOF
RUN

NAME=function bytes in json
ARGS=-a arm
FILE=bins/mach0/ls-m1
CMDS=<<EOF
af
p8fmj~{}
EOF
EXPECT=<<EOF
{
  "type": "function",
  "linear": false,
  "addr": 4294982288,
  "size": 2984,
  "data": "7f2303d5fc6fbaa9fa6701a9f85f02a9f65703a9f44f04a9fd7b05a9fd430191ff0319d1f30301aaf40300aab5c301d1bf0a00f9bfc319b8bf0200f9e8830091e80f00f91f0000714c000054c30d0094e1fa01101f2003d500008052350f009460fa01301f2003d561fa01101f2003d5940e00945a0000b0409300393600805220008052eb0e00945b0000b0580000b0a00100351643033920f901301f2003d5c40e0094600400b4a3c301d1010080d20200b0124f0f0094480000b0000100b91c000014080a8052560000b0c80200b960f701301f2003d5b60e0094600000b40800403988010035a88301d1e80300f920008052018d8e520101a872c90e00941f04003120010054a0235a78c000003506000014a3c301d1010080d20200b012340f0094c00200b928008052682b00b9a80240f9880000b4080a8052490000b0280100b900f401301f2003d5990e0094800000b428008052490000b0282d00b980f301301f2003d5920e00945c0000b0600000b428008052882300b919028052d5f201501f2003d5563502101f2003d5e00314aae10313aae20315aae30316aa040080d2870e0094109400511f6e0171882500541f6e01f110929f9a714f00101f2003d5307ab0b8110000103002108b00021fd60000000000000000288900b9ecffff170000000000000000282d00b9e8ffff170000000000000000287100b949934039891d0035e2ffff17000000000000000028008052490000b0286500b9e5000014000000000000000028010439d8ffff17000000000000000028910339480000b01f810339d2ffff170000000000000000283d00b9480000b01f3900b99a0000140000000000000000170140f9371f00b4a1f101501f2003d5e00317aab80e0094801e003441f101301f2003d5e00317aab30e0094e01d0034c1f001301f2003d5e00317aaae0e0094401d003441f001701f2003d5e00317aaa90e0094801d0034e1ef01101f2003d5e00317aaa40e0094e01c003461ef01101f2003d5e00317aa9f0e0094401c0034e1ee01701f2003d5e00317aa9a0e00946001003481ee01301f2003d5e00317aa950e0094c000003401ee01101f2003d5e00317aa900e0094804300359f2300b999ffff170000000000000000284100b9480000b01f3d00b91f2003d51f3900b991ffff1700000000000000001f4900b928008052490000b0284d00b98affff17000000000000000028008052490000b0287500b98d0000140000000000000000287900b980ffff170000000000000000288500b97cffff170000000000000000285900b9480000b01f5d00b976ffff1700000000000000000a82805229010a2a2a0300321f0100715901891a480000b01fa103396cffff17000000000000000028e10339480000b01fc1033966ffff1700000000000000002861033939031b3228008052490000b0287103395effff170000000000000000286d00b95affff17000000000000000028008052490000b0284500b954ffff170000000000000000480000b01f3100b95b0000140000000000000000490000b0284900b978000014000000000000000028b1033946ffff170000000000000000490000b03fa10339499340392a8280120a010a0a3f01007119018a1a3cffff17000000000000000028d1033938ffff170000000000000000283900b9480000b01f3d00b9480000b01f4100b930ffff170000000000000000288100b92cffff17000000000000000028008052490000b028f1033926ffff170000000000000000285103391f430339480000b01f3100b91fffff1700000000000000001f430339480000b01f3100b91f2003d51f3500b917ffff170000000000000000080140f9490000b0282900f911ffff170000000000000000a1d201101f2003d53700805222008052ee0d0094972300b908ffff17000000000000000019011c32280080524900009028a1033901ffff17000000000000000028c10339fdfeff170000000000000000286100b9f9feff170000000049000090283100b91f430339480000901f510339f2feff170000000000000000285d00b91f2003d5285900b9ecfeff170000000000000000287d00b9e8feff17000000000000000028810339480000901f910339e2feff170000000000000000283500b9480000901f3100b91f430339dbfeff170000000000000000286900b9d7feff170000000000000000480000901f4900b9480000901f4d00b9d0feff1748008052882300b9cdfeff171f040031c00000543c0c0094c9feff1728008052882300b9c6feff171f2003d5480d0258080180b9e80700f955000090a872433908010037520d0094c00000354800009008b143396800003728008052a8720339882340b9680a00341f0900714002005460c801301f2003d5390d0094e00000b520d001301f2003d5350d0094200900b408004039e808003420008052500d0094a000003540cf01701f2003d52c0d0094000800b400ca01301f2003d5280d0094600600b4e10300aae0830891c00d00941f040071c105005400c901501f2003d5e1630091be0d009455000090a04a00f960c801301f2003d5e1630091b80d009456000090c04e00f9c0c701101f2003d5e1630091b20d009448000090005100f900c701701f2003d5e1630091ac0d009448000090005500f960c601501f2003d5e1630091a60d009457000090e05a00f9c00000b5a0c501301f2003d5e16300919f0d0094e05a00f9a84a40f9280200b4c84e40f9e80100b4c00100b4280080524900009028b900b90f000014882340b91f090071e1000054280080524900009028b900b91f2003d528f10239060000141f2003d508f10318680000350900805216000014280080524900009028c100b9b03301101f2003d5f023c1daf50310aa40008052e10310aa410d009460008052e10315aa3e0d0094a0c001101f2003d5d70c00942a0900941f2003d548ee03181f010071e9079f1a1f2003d56aeb03185b0000906c3340b948010c2a1f2003d54beb031808010b2a1f010071e8079f1a5c0000908b9343390b010b2a57000090ed8243396b010d2a1f2003d5cde80318bf010071ee079f1a6b010e2a5a0000904e8b40b9df010071ee079f1a6b010e2a6b01092a2e031d327f0100722b138e1a4e000090cea143394e0200372c0200354c0000908ce14339cc010037bf010071ec079f1a5f010071ea079f1a1f2003d5cde50318bf010071ed179f1a8c010d0a8a010a2a4901092a290100526b01092a4900009029d143396a0119323f01007155118b1a480200344800009008f1433968000036480080520b000014d6e603101f2003d5a09301d1e10316aa8c0c0094c80240f909fd07911f0100f128b1889a08fd499349000090286500f9480000900a01443988934339e98243390801092a0b0100526901092a5f050071410400541f010072b09fff101f2003d5f023c1dae80310aaf0afff101f2003d5f023c1da1012889a290700371f2003d568de031890a5ff101f2003d5f023c1da680600351f2003d5c8dd031870a8ff101f2003d5f023c1daa80500351f2003d5c8dc03181f01007130abff101f2003d5f023c1dae80310aad09fff101f2003d5f023c1da210000141f010072309bff101f2003d5f023c1dae80310aa10aaff101f2003d5f023c1da1012889a090300371f2003d548da0318509eff101f2003d5f023c1da480200351f2003d5a8d9031830a1ff101f2003d5f023c1da880100351f2003d5a8d803181f010071f0a3ff101f2003d5f023c1dae80310aa9098ff101f2003d5f023c1da1002889a48000090108500f908434339707500101f2003d5f023c1da28020037683340b9708600101f2003d5f023c1da8801003548000090085143391f01007170f600101f2003d5f023c1dae80310aab0ee00101f2003d5f023c1da1012889a48000090108900f9488b40b9e801003428008052e81700b9c0a901301f2003d5e3530091010080d2020080d284008052b20c0094a000f836e1a901101f2003d520008052dd0b0094e80740f98002084ba000003561d003101f2003d52000805202000014610e088be20315aa650000944800009000614439d80b0094f70300f981a301301f2003d540008052cf0b0094",
  "mask": "ff0ffc2a00000208000002c8000002c8000002c8000002c8000002c8000001b6000001b607ff07ce07ff07ce000001b6000003910030039d00000395000101b600000311f8000096f80000320000003f000000b1ffeffc2a000005540000003d000000b1ffeffc2a000000b1ffeffc2a0000003d000000f1000003bf00000154000001540000003d000000f1000000f1000000fc000003bf000000b1ffeffc2a0000003d000000fc000001b600000754000009600000003d000000f10000039d0000003f00000144000000f10000039d000000b1ffeffc2a0000003d000000fc000003bf000000fc000001b6000003950000015400000144000001440000003df80000f6f8000032003007f7000000fc0000003f000001b600000754000009600000003d0000039d000001540000039900000295000000fc00000144000000f10000039d000000b1ffeffc2a0000003d000000fc00000154000000f100000319000000f1ffeffc2a0000003d000000f1000000fc000001540000039d00000154000000f1ffeffc2a000000f1ffeffc2a07ff07ce07ff07ce07ff07ce07ff07ce000007540000003d00000086f8000096f800003af80000960020025a000000f1ffeffc2a0010051b000000f10000008e00000622000000000000000000000399000000150000000000000000000003190000001500000000000000000000039d000003bf000000fc00000015000000000000000000000154000000f1000003190000003f0000000000000000000003bf000000150000000000000000000003bf000000f1000003bf00000015000000000000000000000319000000f1000003990000003f000000000000000000000295000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000d1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc00000091ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc0000039d0000001500000000000000000000039d000000f100000319ffeffc2a000003990000001500000000000000000000039900000154000000f10000031900000015000000000000000000000154000000f1000003190000003f0000000000000000000003990000001500000000000000000000031900000015000000000000000000000399000000f10000031900000015000000000000000000000154000004ee000004f6f80000960020015a000000f1000003bf000000150000000000000000000003bf000000f1000003bf000000150000000000000000000003bf000004f600000154000000f1000003bf0000001500000000000000000000031900000015000000000000000000000154000000f100000319000000150000000000000000000000f10000039d0000003f0000000000000000000000f1000003990000003f0000000000000000000003bf000000150000000000000000000000f1000003bf000003bf00000170000004eef80000960020015a000000150000000000000000000003bf00000015000000000000000000000399000000f100000319000000f10000039d0000001500000000000000000000039d00000015000000000000000000000154000000f1000003bf000000150000000000000000000003bf000003bf000000f10000039d000000150000000000000000000003bf000000f10000039dffeffc2a0000031900000015000000000000000000000295000000f100000391000000150000000000000000000000f1ffeffc2a00000154000001540000003d0000039d000000150000000000000000000004f600000154000000f1000003bf000000150000000000000000000003bf0000001500000000000000000000039d0000001500000000000000f10000039d000003bf000000f1000003bf00000015000000000000000000000319ffeffc2a0000039900000015000000000000000000000319000000150000000000000000000003bf000000f1000003bf00000015000000000000000000000319000000f10000039d000003bf00000015000000000000000000000399000000150000000000000000000000f100000399000000f10000031900000015000001540000039d00000015f80000f6f80000320000003d00000015000001540000039d00000015ffeffc2a0000001d0000018700000311000000f1000003bf000000e40000003d000000fc000000f1000003bf000000e400000154000003bf00000295000000ecf8000096f8000032000000f1ffeffc2a0000003d000000fc000000f1ffeffc2a0000003d000000ec000003bf000000ec000001540000003d000000fc000000d1ffeffc2a0000003d000000ec000000f1ffeffc2a0000003d000000fc07ff07ce000001b60000003df8000096f8000033000000f1ffeffc2a000001b60000003d000000f100000391000000f1ffeffc2a000001b60000003d000000f100000311000000f1ffeffc2a000001b60000003d000000f100000395000000d1ffeffc2a000001b60000003d000000f100000311000000f1ffeffc2a000001b60000003d000000f100000391000000fc000000f1ffeffc2a000001b60000003d0000039100000291000000fc00000211000000fc000000fc00000154000000f1000003990000003f00000295f8000096f800003300000154000000f100000399ffeffc2a000003bf0000003fffeffc2a0000009d000000fc000005540000003f00000154000000f10000039d000000f1ffeffc2a003c025a07ff07ce0000015407ff07ce0000003f0000015407ff07ce0000003d000000f1ffeffc2a0000003d0000003dffeffc2a0000001df800009607e0f85affeffc2a0000001d000000f100000295000004eeffeffc2a0000001d000004eef800009607e0f85a000000f1000003bf000004ee000000f1000003bf000004eeffeffc2a0000001df800009607e0f85a000004ee000000f100000299f800009607e0f85a000004ee000004ee000004f6f80005560020005a000000f1000003bf000000e4000000fc000000f1000003bf000000e4f800009607e0f85af800009607e0f85affeffc2a0000009df800009607e0f85a000004ee000004ee000004ee000005d6000004ee000000f1000003bf000004f6f80000960020005a000000fc000000f1000003bf000000e4000001540000003f000000f1ffeffc2a000001b607ff07ce0000003d00000295000001a6f80000960020005a003f0166000000f100000311000000f1000003bf000003bf000003bf000004ee000005d6000004eef8000096f8000033f800055600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020025a000000e4ffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001df800009600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0000003ff800055600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020025a000000e4ffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001df800009600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020035a000000f100000311000003bf000000f1ffeffc2a003c025a000000e40000029d000000f1ffeffc2a003c025a000000fc000000f1000003bff8000096000000b1ffeffc2a003c025a07ff07ce000000b1ffeffc2a003c025a0020025a000000f10000039100000299000000fc0000015400000319000000f1ffeffc2a000001b60000075400000754000001540000003d000000c4000000f1ffeffc2a000001540000003d0000021100000086000000fc000000f1ffeffc2a000001540000003f0000008e07ff07ce0000003d000000f1000003bf0000003d00000395000000f1ffeffc2a000001540000003d"
}
EOF
RUN

NAME=instruction bits and basic block bytes
ARGS=-a arm
FILE=bins/mach0/ls-m1
CMDS=<<EOF
af
aob
abm
abmj~{}
EOF
EXPECT=<<EOF
00000000 0000xxxx xx000000 x0x0x0xx  : pacibsp
7f2303d5fc6fbaa9fa6701a9f85f02a9f65703a9f44f04a9fd7b05a9fd430191ff0319d1f30301aaf40300aab5c301d1bf0a00f9bfc319b8bf0200f9e8830091e80f00f91f0000714c000054:ff0ffc2a00000208000002c8000002c8000002c8000002c8000002c8000001b6000001b607ff07ce07ff07ce000001b6000003910030039d00000395000101b600000311f8000096f8000032
{
  "type": "basicblock",
  "addr": 4294982288,
  "size": 76,
  "data": "7f2303d5fc6fbaa9fa6701a9f85f02a9f65703a9f44f04a9fd7b05a9fd430191ff0319d1f30301aaf40300aab5c301d1bf0a00f9bfc319b8bf0200f9e8830091e80f00f91f0000714c000054",
  "mask": "ff0ffc2a00000208000002c8000002c8000002c8000002c8000002c8000001b6000001b607ff07ce07ff07ce000001b6000003910030039d00000395000101b600000311f8000096f8000032"
}
EOF
RUN

NAME=anal.mask=true
ARGS=-a arm
FILE=bins/mach0/ls-m1
CMDS=<<EOF
af
-e anal.mask=true
p8fm
-e anal.mask=false
p8fm
EOF
EXPECT=<<EOF
7f2303d5fc6fbaa9fa6701a9f85f02a9f65703a9f44f04a9fd7b05a9fd430191ff0319d1f30301aaf40300aab5c301d1bf0a00f9bfc319b8bf0200f9e8830091e80f00f91f0000714c000054c30d0094e1fa01101f2003d500008052350f009460fa01301f2003d561fa01101f2003d5940e00945a0000b0409300393600805220008052eb0e00945b0000b0580000b0a00100351643033920f901301f2003d5c40e0094600400b4a3c301d1010080d20200b0124f0f0094480000b0000100b91c000014080a8052560000b0c80200b960f701301f2003d5b60e0094600000b40800403988010035a88301d1e80300f920008052018d8e520101a872c90e00941f04003120010054a0235a78c000003506000014a3c301d1010080d20200b012340f0094c00200b928008052682b00b9a80240f9880000b4080a8052490000b0280100b900f401301f2003d5990e0094800000b428008052490000b0282d00b980f301301f2003d5920e00945c0000b0600000b428008052882300b919028052d5f201501f2003d5563502101f2003d5e00314aae10313aae20315aae30316aa040080d2870e0094109400511f6e0171882500541f6e01f110929f9a714f00101f2003d5307ab0b8110000103002108b00021fd60000000000000000288900b9ecffff170000000000000000282d00b9e8ffff170000000000000000287100b949934039891d0035e2ffff17000000000000000028008052490000b0286500b9e5000014000000000000000028010439d8ffff17000000000000000028910339480000b01f810339d2ffff170000000000000000283d00b9480000b01f3900b99a0000140000000000000000170140f9371f00b4a1f101501f2003d5e00317aab80e0094801e003441f101301f2003d5e00317aab30e0094e01d0034c1f001301f2003d5e00317aaae0e0094401d003441f001701f2003d5e00317aaa90e0094801d0034e1ef01101f2003d5e00317aaa40e0094e01c003461ef01101f2003d5e00317aa9f0e0094401c0034e1ee01701f2003d5e00317aa9a0e00946001003481ee01301f2003d5e00317aa950e0094c000003401ee01101f2003d5e00317aa900e0094804300359f2300b999ffff170000000000000000284100b9480000b01f3d00b91f2003d51f3900b991ffff1700000000000000001f4900b928008052490000b0284d00b98affff17000000000000000028008052490000b0287500b98d0000140000000000000000287900b980ffff170000000000000000288500b97cffff170000000000000000285900b9480000b01f5d00b976ffff1700000000000000000a82805229010a2a2a0300321f0100715901891a480000b01fa103396cffff17000000000000000028e10339480000b01fc1033966ffff1700000000000000002861033939031b3228008052490000b0287103395effff170000000000000000286d00b95affff17000000000000000028008052490000b0284500b954ffff170000000000000000480000b01f3100b95b0000140000000000000000490000b0284900b978000014000000000000000028b1033946ffff170000000000000000490000b03fa10339499340392a8280120a010a0a3f01007119018a1a3cffff17000000000000000028d1033938ffff170000000000000000283900b9480000b01f3d00b9480000b01f4100b930ffff170000000000000000288100b92cffff17000000000000000028008052490000b028f1033926ffff170000000000000000285103391f430339480000b01f3100b91fffff1700000000000000001f430339480000b01f3100b91f2003d51f3500b917ffff170000000000000000080140f9490000b0282900f911ffff170000000000000000a1d201101f2003d53700805222008052ee0d0094972300b908ffff17000000000000000019011c32280080524900009028a1033901ffff17000000000000000028c10339fdfeff170000000000000000286100b9f9feff170000000049000090283100b91f430339480000901f510339f2feff170000000000000000285d00b91f2003d5285900b9ecfeff170000000000000000287d00b9e8feff17000000000000000028810339480000901f910339e2feff170000000000000000283500b9480000901f3100b91f430339dbfeff170000000000000000286900b9d7feff170000000000000000480000901f4900b9480000901f4d00b9d0feff1748008052882300b9cdfeff171f040031c00000543c0c0094c9feff1728008052882300b9c6feff171f2003d5480d0258080180b9e80700f955000090a872433908010037520d0094c00000354800009008b143396800003728008052a8720339882340b9680a00341f0900714002005460c801301f2003d5390d0094e00000b520d001301f2003d5350d0094200900b408004039e808003420008052500d0094a000003540cf01701f2003d52c0d0094000800b400ca01301f2003d5280d0094600600b4e10300aae0830891c00d00941f040071c105005400c901501f2003d5e1630091be0d009455000090a04a00f960c801301f2003d5e1630091b80d009456000090c04e00f9c0c701101f2003d5e1630091b20d009448000090005100f900c701701f2003d5e1630091ac0d009448000090005500f960c601501f2003d5e1630091a60d009457000090e05a00f9c00000b5a0c501301f2003d5e16300919f0d0094e05a00f9a84a40f9280200b4c84e40f9e80100b4c00100b4280080524900009028b900b90f000014882340b91f090071e1000054280080524900009028b900b91f2003d528f10239060000141f2003d508f10318680000350900805216000014280080524900009028c100b9b03301101f2003d5f023c1daf50310aa40008052e10310aa410d009460008052e10315aa3e0d0094a0c001101f2003d5d70c00942a0900941f2003d548ee03181f010071e9079f1a1f2003d56aeb03185b0000906c3340b948010c2a1f2003d54beb031808010b2a1f010071e8079f1a5c0000908b9343390b010b2a57000090ed8243396b010d2a1f2003d5cde80318bf010071ee079f1a6b010e2a5a0000904e8b40b9df010071ee079f1a6b010e2a6b01092a2e031d327f0100722b138e1a4e000090cea143394e0200372c0200354c0000908ce14339cc010037bf010071ec079f1a5f010071ea079f1a1f2003d5cde50318bf010071ed179f1a8c010d0a8a010a2a4901092a290100526b01092a4900009029d143396a0119323f01007155118b1a480200344800009008f1433968000036480080520b000014d6e603101f2003d5a09301d1e10316aa8c0c0094c80240f909fd07911f0100f128b1889a08fd499349000090286500f9480000900a01443988934339e98243390801092a0b0100526901092a5f050071410400541f010072b09fff101f2003d5f023c1dae80310aaf0afff101f2003d5f023c1da1012889a290700371f2003d568de031890a5ff101f2003d5f023c1da680600351f2003d5c8dd031870a8ff101f2003d5f023c1daa80500351f2003d5c8dc03181f01007130abff101f2003d5f023c1dae80310aad09fff101f2003d5f023c1da210000141f010072309bff101f2003d5f023c1dae80310aa10aaff101f2003d5f023c1da1012889a090300371f2003d548da0318509eff101f2003d5f023c1da480200351f2003d5a8d9031830a1ff101f2003d5f023c1da880100351f2003d5a8d803181f010071f0a3ff101f2003d5f023c1dae80310aa9098ff101f2003d5f023c1da1002889a48000090108500f908434339707500101f2003d5f023c1da28020037683340b9708600101f2003d5f023c1da8801003548000090085143391f01007170f600101f2003d5f023c1dae80310aab0ee00101f2003d5f023c1da1012889a48000090108900f9488b40b9e801003428008052e81700b9c0a901301f2003d5e3530091010080d2020080d284008052b20c0094a000f836e1a901101f2003d520008052dd0b0094e80740f98002084ba000003561d003101f2003d52000805202000014610e088be20315aa650000944800009000614439d80b0094f70300f981a301301f2003d540008052cf0b0094:ff0ffc2a00000208000002c8000002c8000002c8000002c8000002c8000001b6000001b607ff07ce07ff07ce000001b6000003910030039d00000395000101b600000311f8000096f80000320000003f000000b1ffeffc2a000005540000003d000000b1ffeffc2a000000b1ffeffc2a0000003d000000f1000003bf00000154000001540000003d000000f1000000f1000000fc000003bf000000b1ffeffc2a0000003d000000fc000001b600000754000009600000003d000000f10000039d0000003f00000144000000f10000039d000000b1ffeffc2a0000003d000000fc000003bf000000fc000001b6000003950000015400000144000001440000003df80000f6f8000032003007f7000000fc0000003f000001b600000754000009600000003d0000039d000001540000039900000295000000fc00000144000000f10000039d000000b1ffeffc2a0000003d000000fc00000154000000f100000319000000f1ffeffc2a0000003d000000f1000000fc000001540000039d00000154000000f1ffeffc2a000000f1ffeffc2a07ff07ce07ff07ce07ff07ce07ff07ce000007540000003d00000086f8000096f800003af80000960020025a000000f1ffeffc2a0010051b000000f10000008e00000622000000000000000000000399000000150000000000000000000003190000001500000000000000000000039d000003bf000000fc00000015000000000000000000000154000000f1000003190000003f0000000000000000000003bf000000150000000000000000000003bf000000f1000003bf00000015000000000000000000000319000000f1000003990000003f000000000000000000000295000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000d1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc00000091ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc0000039d0000001500000000000000000000039d000000f100000319ffeffc2a000003990000001500000000000000000000039900000154000000f10000031900000015000000000000000000000154000000f1000003190000003f0000000000000000000003990000001500000000000000000000031900000015000000000000000000000399000000f10000031900000015000000000000000000000154000004ee000004f6f80000960020015a000000f1000003bf000000150000000000000000000003bf000000f1000003bf000000150000000000000000000003bf000004f600000154000000f1000003bf0000001500000000000000000000031900000015000000000000000000000154000000f100000319000000150000000000000000000000f10000039d0000003f0000000000000000000000f1000003990000003f0000000000000000000003bf000000150000000000000000000000f1000003bf000003bf00000170000004eef80000960020015a000000150000000000000000000003bf00000015000000000000000000000399000000f100000319000000f10000039d0000001500000000000000000000039d00000015000000000000000000000154000000f1000003bf000000150000000000000000000003bf000003bf000000f10000039d000000150000000000000000000003bf000000f10000039dffeffc2a0000031900000015000000000000000000000295000000f100000391000000150000000000000000000000f1ffeffc2a00000154000001540000003d0000039d000000150000000000000000000004f600000154000000f1000003bf000000150000000000000000000003bf0000001500000000000000000000039d0000001500000000000000f10000039d000003bf000000f1000003bf00000015000000000000000000000319ffeffc2a0000039900000015000000000000000000000319000000150000000000000000000003bf000000f1000003bf00000015000000000000000000000319000000f10000039d000003bf00000015000000000000000000000399000000150000000000000000000000f100000399000000f10000031900000015000001540000039d00000015f80000f6f80000320000003d00000015000001540000039d00000015ffeffc2a0000001d0000018700000311000000f1000003bf000000e40000003d000000fc000000f1000003bf000000e400000154000003bf00000295000000ecf8000096f8000032000000f1ffeffc2a0000003d000000fc000000f1ffeffc2a0000003d000000ec000003bf000000ec000001540000003d000000fc000000d1ffeffc2a0000003d000000ec000000f1ffeffc2a0000003d000000fc07ff07ce000001b60000003df8000096f8000033000000f1ffeffc2a000001b60000003d000000f100000391000000f1ffeffc2a000001b60000003d000000f100000311000000f1ffeffc2a000001b60000003d000000f100000395000000d1ffeffc2a000001b60000003d000000f100000311000000f1ffeffc2a000001b60000003d000000f100000391000000fc000000f1ffeffc2a000001b60000003d0000039100000291000000fc00000211000000fc000000fc00000154000000f1000003990000003f00000295f8000096f800003300000154000000f100000399ffeffc2a000003bf0000003fffeffc2a0000009d000000fc000005540000003f00000154000000f10000039d000000f1ffeffc2a003c025a07ff07ce0000015407ff07ce0000003f0000015407ff07ce0000003d000000f1ffeffc2a0000003d0000003dffeffc2a0000001df800009607e0f85affeffc2a0000001d000000f100000295000004eeffeffc2a0000001d000004eef800009607e0f85a000000f1000003bf000004ee000000f1000003bf000004eeffeffc2a0000001df800009607e0f85a000004ee000000f100000299f800009607e0f85a000004ee000004ee000004f6f80005560020005a000000f1000003bf000000e4000000fc000000f1000003bf000000e4f800009607e0f85af800009607e0f85affeffc2a0000009df800009607e0f85a000004ee000004ee000004ee000005d6000004ee000000f1000003bf000004f6f80000960020005a000000fc000000f1000003bf000000e4000001540000003f000000f1ffeffc2a000001b607ff07ce0000003d00000295000001a6f80000960020005a003f0166000000f100000311000000f1000003bf000003bf000003bf000004ee000005d6000004eef8000096f8000033f800055600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020025a000000e4ffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001df800009600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0000003ff800055600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020025a000000e4ffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001df800009600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020035a000000f100000311000003bf000000f1ffeffc2a003c025a000000e40000029d000000f1ffeffc2a003c025a000000fc000000f1000003bff8000096000000b1ffeffc2a003c025a07ff07ce000000b1ffeffc2a003c025a0020025a000000f10000039100000299000000fc0000015400000319000000f1ffeffc2a000001b60000075400000754000001540000003d000000c4000000f1ffeffc2a000001540000003d0000021100000086000000fc000000f1ffeffc2a000001540000003f0000008e07ff07ce0000003d000000f1000003bf0000003d00000395000000f1ffeffc2a000001540000003d
7f2303d5fc6fbaa9fa6701a9f85f02a9f65703a9f44f04a9fd7b05a9fd430191ff0319d1f30301aaf40300aab5c301d1bf0a00f9bfc319b8bf0200f9e8830091e80f00f91f0000714c000054c30d0094e1fa01101f2003d500008052350f009460fa01301f2003d561fa01101f2003d5940e00945a0000b0409300393600805220008052eb0e00945b0000b0580000b0a00100351643033920f901301f2003d5c40e0094600400b4a3c301d1010080d20200b0124f0f0094480000b0000100b91c000014080a8052560000b0c80200b960f701301f2003d5b60e0094600000b40800403988010035a88301d1e80300f920008052018d8e520101a872c90e00941f04003120010054a0235a78c000003506000014a3c301d1010080d20200b012340f0094c00200b928008052682b00b9a80240f9880000b4080a8052490000b0280100b900f401301f2003d5990e0094800000b428008052490000b0282d00b980f301301f2003d5920e00945c0000b0600000b428008052882300b919028052d5f201501f2003d5563502101f2003d5e00314aae10313aae20315aae30316aa040080d2870e0094109400511f6e0171882500541f6e01f110929f9a714f00101f2003d5307ab0b8110000103002108b00021fd60000000000000000288900b9ecffff170000000000000000282d00b9e8ffff170000000000000000287100b949934039891d0035e2ffff17000000000000000028008052490000b0286500b9e5000014000000000000000028010439d8ffff17000000000000000028910339480000b01f810339d2ffff170000000000000000283d00b9480000b01f3900b99a0000140000000000000000170140f9371f00b4a1f101501f2003d5e00317aab80e0094801e003441f101301f2003d5e00317aab30e0094e01d0034c1f001301f2003d5e00317aaae0e0094401d003441f001701f2003d5e00317aaa90e0094801d0034e1ef01101f2003d5e00317aaa40e0094e01c003461ef01101f2003d5e00317aa9f0e0094401c0034e1ee01701f2003d5e00317aa9a0e00946001003481ee01301f2003d5e00317aa950e0094c000003401ee01101f2003d5e00317aa900e0094804300359f2300b999ffff170000000000000000284100b9480000b01f3d00b91f2003d51f3900b991ffff1700000000000000001f4900b928008052490000b0284d00b98affff17000000000000000028008052490000b0287500b98d0000140000000000000000287900b980ffff170000000000000000288500b97cffff170000000000000000285900b9480000b01f5d00b976ffff1700000000000000000a82805229010a2a2a0300321f0100715901891a480000b01fa103396cffff17000000000000000028e10339480000b01fc1033966ffff1700000000000000002861033939031b3228008052490000b0287103395effff170000000000000000286d00b95affff17000000000000000028008052490000b0284500b954ffff170000000000000000480000b01f3100b95b0000140000000000000000490000b0284900b978000014000000000000000028b1033946ffff170000000000000000490000b03fa10339499340392a8280120a010a0a3f01007119018a1a3cffff17000000000000000028d1033938ffff170000000000000000283900b9480000b01f3d00b9480000b01f4100b930ffff170000000000000000288100b92cffff17000000000000000028008052490000b028f1033926ffff170000000000000000285103391f430339480000b01f3100b91fffff1700000000000000001f430339480000b01f3100b91f2003d51f3500b917ffff170000000000000000080140f9490000b0282900f911ffff170000000000000000a1d201101f2003d53700805222008052ee0d0094972300b908ffff17000000000000000019011c32280080524900009028a1033901ffff17000000000000000028c10339fdfeff170000000000000000286100b9f9feff170000000049000090283100b91f430339480000901f510339f2feff170000000000000000285d00b91f2003d5285900b9ecfeff170000000000000000287d00b9e8feff17000000000000000028810339480000901f910339e2feff170000000000000000283500b9480000901f3100b91f430339dbfeff170000000000000000286900b9d7feff170000000000000000480000901f4900b9480000901f4d00b9d0feff1748008052882300b9cdfeff171f040031c00000543c0c0094c9feff1728008052882300b9c6feff171f2003d5480d0258080180b9e80700f955000090a872433908010037520d0094c00000354800009008b143396800003728008052a8720339882340b9680a00341f0900714002005460c801301f2003d5390d0094e00000b520d001301f2003d5350d0094200900b408004039e808003420008052500d0094a000003540cf01701f2003d52c0d0094000800b400ca01301f2003d5280d0094600600b4e10300aae0830891c00d00941f040071c105005400c901501f2003d5e1630091be0d009455000090a04a00f960c801301f2003d5e1630091b80d009456000090c04e00f9c0c701101f2003d5e1630091b20d009448000090005100f900c701701f2003d5e1630091ac0d009448000090005500f960c601501f2003d5e1630091a60d009457000090e05a00f9c00000b5a0c501301f2003d5e16300919f0d0094e05a00f9a84a40f9280200b4c84e40f9e80100b4c00100b4280080524900009028b900b90f000014882340b91f090071e1000054280080524900009028b900b91f2003d528f10239060000141f2003d508f10318680000350900805216000014280080524900009028c100b9b03301101f2003d5f023c1daf50310aa40008052e10310aa410d009460008052e10315aa3e0d0094a0c001101f2003d5d70c00942a0900941f2003d548ee03181f010071e9079f1a1f2003d56aeb03185b0000906c3340b948010c2a1f2003d54beb031808010b2a1f010071e8079f1a5c0000908b9343390b010b2a57000090ed8243396b010d2a1f2003d5cde80318bf010071ee079f1a6b010e2a5a0000904e8b40b9df010071ee079f1a6b010e2a6b01092a2e031d327f0100722b138e1a4e000090cea143394e0200372c0200354c0000908ce14339cc010037bf010071ec079f1a5f010071ea079f1a1f2003d5cde50318bf010071ed179f1a8c010d0a8a010a2a4901092a290100526b01092a4900009029d143396a0119323f01007155118b1a480200344800009008f1433968000036480080520b000014d6e603101f2003d5a09301d1e10316aa8c0c0094c80240f909fd07911f0100f128b1889a08fd499349000090286500f9480000900a01443988934339e98243390801092a0b0100526901092a5f050071410400541f010072b09fff101f2003d5f023c1dae80310aaf0afff101f2003d5f023c1da1012889a290700371f2003d568de031890a5ff101f2003d5f023c1da680600351f2003d5c8dd031870a8ff101f2003d5f023c1daa80500351f2003d5c8dc03181f01007130abff101f2003d5f023c1dae80310aad09fff101f2003d5f023c1da210000141f010072309bff101f2003d5f023c1dae80310aa10aaff101f2003d5f023c1da1012889a090300371f2003d548da0318509eff101f2003d5f023c1da480200351f2003d5a8d9031830a1ff101f2003d5f023c1da880100351f2003d5a8d803181f010071f0a3ff101f2003d5f023c1dae80310aa9098ff101f2003d5f023c1da1002889a48000090108500f908434339707500101f2003d5f023c1da28020037683340b9708600101f2003d5f023c1da8801003548000090085143391f01007170f600101f2003d5f023c1dae80310aab0ee00101f2003d5f023c1da1012889a48000090108900f9488b40b9e801003428008052e81700b9c0a901301f2003d5e3530091010080d2020080d284008052b20c0094a000f836e1a901101f2003d520008052dd0b0094e80740f98002084ba000003561d003101f2003d52000805202000014610e088be20315aa650000944800009000614439d80b0094f70300f981a301301f2003d540008052cf0b0094:ff0ffc2a00000208000002c8000002c8000002c8000002c8000002c8000001b6000001b607ff07ce07ff07ce000001b6000003910030039d00000395000101b600000311f8000096f80000320000003f000000b1ffeffc2a000005540000003d000000b1ffeffc2a000000b1ffeffc2a0000003d000000f1000003bf00000154000001540000003d000000f1000000f1000000fc000003bf000000b1ffeffc2a0000003d000000fc000001b600000754000009600000003d000000f10000039d0000003f00000144000000f10000039d000000b1ffeffc2a0000003d000000fc000003bf000000fc000001b6000003950000015400000144000001440000003df80000f6f8000032003007f7000000fc0000003f000001b600000754000009600000003d0000039d000001540000039900000295000000fc00000144000000f10000039d000000b1ffeffc2a0000003d000000fc00000154000000f100000319000000f1ffeffc2a0000003d000000f1000000fc000001540000039d00000154000000f1ffeffc2a000000f1ffeffc2a07ff07ce07ff07ce07ff07ce07ff07ce000007540000003d00000086f8000096f800003af80000960020025a000000f1ffeffc2a0010051b000000f10000008e00000622000000000000000000000399000000150000000000000000000003190000001500000000000000000000039d000003bf000000fc00000015000000000000000000000154000000f1000003190000003f0000000000000000000003bf000000150000000000000000000003bf000000f1000003bf00000015000000000000000000000319000000f1000003990000003f000000000000000000000295000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000f1ffeffc2a07ff07ce0000003d000000fc000000d1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc00000091ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc000000b1ffeffc2a07ff07ce0000003d000000fc0000039d0000001500000000000000000000039d000000f100000319ffeffc2a000003990000001500000000000000000000039900000154000000f10000031900000015000000000000000000000154000000f1000003190000003f0000000000000000000003990000001500000000000000000000031900000015000000000000000000000399000000f10000031900000015000000000000000000000154000004ee000004f6f80000960020015a000000f1000003bf000000150000000000000000000003bf000000f1000003bf000000150000000000000000000003bf000004f600000154000000f1000003bf0000001500000000000000000000031900000015000000000000000000000154000000f100000319000000150000000000000000000000f10000039d0000003f0000000000000000000000f1000003990000003f0000000000000000000003bf000000150000000000000000000000f1000003bf000003bf00000170000004eef80000960020015a000000150000000000000000000003bf00000015000000000000000000000399000000f100000319000000f10000039d0000001500000000000000000000039d00000015000000000000000000000154000000f1000003bf000000150000000000000000000003bf000003bf000000f10000039d000000150000000000000000000003bf000000f10000039dffeffc2a0000031900000015000000000000000000000295000000f100000391000000150000000000000000000000f1ffeffc2a00000154000001540000003d0000039d000000150000000000000000000004f600000154000000f1000003bf000000150000000000000000000003bf0000001500000000000000000000039d0000001500000000000000f10000039d000003bf000000f1000003bf00000015000000000000000000000319ffeffc2a0000039900000015000000000000000000000319000000150000000000000000000003bf000000f1000003bf00000015000000000000000000000319000000f10000039d000003bf00000015000000000000000000000399000000150000000000000000000000f100000399000000f10000031900000015000001540000039d00000015f80000f6f80000320000003d00000015000001540000039d00000015ffeffc2a0000001d0000018700000311000000f1000003bf000000e40000003d000000fc000000f1000003bf000000e400000154000003bf00000295000000ecf8000096f8000032000000f1ffeffc2a0000003d000000fc000000f1ffeffc2a0000003d000000ec000003bf000000ec000001540000003d000000fc000000d1ffeffc2a0000003d000000ec000000f1ffeffc2a0000003d000000fc07ff07ce000001b60000003df8000096f8000033000000f1ffeffc2a000001b60000003d000000f100000391000000f1ffeffc2a000001b60000003d000000f100000311000000f1ffeffc2a000001b60000003d000000f100000395000000d1ffeffc2a000001b60000003d000000f100000311000000f1ffeffc2a000001b60000003d000000f100000391000000fc000000f1ffeffc2a000001b60000003d0000039100000291000000fc00000211000000fc000000fc00000154000000f1000003990000003f00000295f8000096f800003300000154000000f100000399ffeffc2a000003bf0000003fffeffc2a0000009d000000fc000005540000003f00000154000000f10000039d000000f1ffeffc2a003c025a07ff07ce0000015407ff07ce0000003f0000015407ff07ce0000003d000000f1ffeffc2a0000003d0000003dffeffc2a0000001df800009607e0f85affeffc2a0000001d000000f100000295000004eeffeffc2a0000001d000004eef800009607e0f85a000000f1000003bf000004ee000000f1000003bf000004eeffeffc2a0000001df800009607e0f85a000004ee000000f100000299f800009607e0f85a000004ee000004ee000004f6f80005560020005a000000f1000003bf000000e4000000fc000000f1000003bf000000e4f800009607e0f85af800009607e0f85affeffc2a0000009df800009607e0f85a000004ee000004ee000004ee000005d6000004ee000000f1000003bf000004f6f80000960020005a000000fc000000f1000003bf000000e4000001540000003f000000f1ffeffc2a000001b607ff07ce0000003d00000295000001a6f80000960020005a003f0166000000f100000311000000f1000003bf000003bf000003bf000004ee000005d6000004eef8000096f8000033f800055600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020025a000000e4ffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001df800009600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0000003ff800055600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020025a000000e4ffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001d00000031ffeffc2a003c025a000000fcffeffc2a0000001df800009600000031ffeffc2a003c025a07ff07ce00000031ffeffc2a003c025a0020035a000000f100000311000003bf000000f1ffeffc2a003c025a000000e40000029d000000f1ffeffc2a003c025a000000fc000000f1000003bff8000096000000b1ffeffc2a003c025a07ff07ce000000b1ffeffc2a003c025a0020025a000000f10000039100000299000000fc0000015400000319000000f1ffeffc2a000001b60000075400000754000001540000003d000000c4000000f1ffeffc2a000001540000003d0000021100000086000000fc000000f1ffeffc2a000001540000003f0000008e07ff07ce0000003d000000f1000003bf0000003d00000395000000f1ffeffc2a000001540000003d
EOF
RUN
