def METHOD_NAME(subType, ver, data):
    # ***** Version 1 Memory Layout *****
    # 9 bytes Max : Component ID (8 byte string + NULL) use strlen
    # 8 bytes     : Protected Payload Size
    # 4 bytes     : Number of IDs
    # 4*N bytes   : IDs (PNOR id or LidID) multiplied by number of ids
    # 64 bytes    : Measured Hash
    # 64 bytes    : Expected Hash
    # **** Version 2 Memory Layout ****
    # Append this to the end of Version 1:
    # 1 byte      : Minimum FW Secure Version
    # 1 byte      : Input Secure Version
    # 1 byte      : Container Secure Version
    d = dict()
    parseError = False
    i = 0
    if ver >= 1:
        subd = dict()
        indx = findNull(data, i, 9)
        subd['Component ID'], i=strConcat(data, i, indx)
        subd['Protected Payload Size'], i=hexConcat(data, i, i+8)
        numIDs, i= intConcat(data, i, i+4)
        subd['Number Of IDs']=numIDs
        d['Secure Verify Info']=subd
        #Add all IDs to dict
        subd2 = dict()
        for x in range(numIDs):
            label = 'ID ' + str(x)
            subd2[label], i= hexConcat(data, i, i+4)
            #In case of bad format, don't go past max size
            if x >= errludP_secure.UDPARSER_SIZEOF_MAX_VERIFY_IDS:
                parseError = True
                break
        d['ID(s)']=subd2
        #In case of bad format, don't continue to parse section
        if not parseError:
            d['Measured Hash']=hexDump(data, i, i+errludP_secure.UDPARSER_SIZEOF_SHA512_t)
            i += errludP_secure.UDPARSER_SIZEOF_SHA512_t
            d['Expected Hash']=hexDump(data, i, i+errludP_secure.UDPARSER_SIZEOF_SHA512_t)
            i += errludP_secure.UDPARSER_SIZEOF_SHA512_t
    if ver >= 2:
        d['Minimum FW Secure Version 0x'], i=memConcat(data, i, i+1)
        d['Input Secure Version 0x'], i=memConcat(data, i, i+1)
        d['Container Secure Version 0x'], i=memConcat(data, i, i+1)
    jsonStr = json.dumps(d, indent=2)
    return jsonStr