@Override
 public IAMIndex decode(final IAMCodec codec) throws IOException, IllegalArgumentException {
   try {
     final MMFArray array = MMFArray.from(codec.getSourceData());
     final ByteOrder order = IAMIndexLoader.HEADER.orderOf(array);
     codec.useByteOrder(IAMByteOrder.from(order));
     return new IAMIndexLoader(array.withOrder(order));
   } catch (IOException | IllegalArgumentException cause) {
     throw cause;
   } catch (final Exception cause) {
     throw new IllegalArgumentException(cause);
   }
 }