docs: public static byte[] decodeFromFile(String filename) throws java.io.IOException {
  
          byte[] decodedData = null;
          Base64.InputStream bis = null;
          try {
              // Set up some useful variables
              Path file = Paths.get(filename);
              byte[] buffer;
              int length = 0;
              int numBytes;
  
              // Check for size of file
              if (Files.size(file) > Integer.MAX_VALUE) {
                  throw new java.io.IOException("File is too big for this convenience method (" + Files.size(file) + " bytes).");
              } // end if: file too big for int index
              buffer = new byte[(int) Files.size(file)];
  
              // Open a stream
              bis = new Base64.InputStream(new java.io.BufferedInputStream(Files.newInputStream(file)), Base64.DECODE);
  
              // Read until done
              while ((numBytes = bis.read(buffer, length, 4096)) >= 0) {
                  length += numBytes;
              } // end while
  
              // Save in a variable to return
              decodedData = new byte[length];
              System.arraycopy(buffer, 0, decodedData, 0, length);
  
          } // end try
          catch (java.io.IOException e) {
              throw e; // Catch and release to execute finally{}
          } // end catch: java.io.IOException
          finally {
              try {
                  bis.close();
              } catch (Exception e) {
              }
          } // end finally
  
          return decodedData;
      }