def foo_SummaryProvider(valobj, dict):
    a = valobj.GetChildMemberWithName('a')
    a_ptr = valobj.GetChildMemberWithName('a_ptr')
    bar = valobj.GetChildMemberWithName('b')
    i = bar.GetChildMemberWithName('i')
    i_ptr = bar.GetChildMemberWithName('i_ptr')
    b_ref = bar.GetChildMemberWithName('b_ref')
    b_ref_ptr = b_ref.AddressOf()
    b_ref = b_ref_ptr.Dereference()
    h = b_ref.GetChildMemberWithName('h')
    k = b_ref.GetChildMemberWithName('k')
    return 'a = ' + str(a.GetValueAsUnsigned(0)) + ', a_ptr = ' + \
        str(a_ptr.GetValueAsUnsigned(0)) + ' -> ' + str(a_ptr.Dereference().GetValueAsUnsigned(0)) + \
        ', i = ' + str(i.GetValueAsUnsigned(0)) + \
        ', i_ptr = ' + str(i_ptr.GetValueAsUnsigned(0)) + ' -> ' + str(i_ptr.Dereference().GetValueAsUnsigned(0)) + \
        ', b_ref = ' + str(b_ref.GetValueAsUnsigned(0)) + \
        ', h = ' + str(h.GetValueAsUnsigned(0)) + ' , k = ' + str(k.GetValueAsUnsigned(0))
