anchor.diff:                         {td, [], {'div', [{id, "ringhover"}, {style, "width: 100px; height: 350px"}], []}}]}]}
                      ]
                 catch % ?RT methods might throw
  -                  throw:not_supported -> ""
  +                  throw:not_supported -> [{p, [], "Sorry, pie chart not available (unknown error)."}]
                 end,
       Content.
   
  
positive.code: 
  -opaque attribute_type() :: {atom(), string()}.
  -ifdef(forward_or_recursive_types_are_not_allowed).
  -type html_type() :: {atom(), [attribute_type()], term()} | [{atom(), [attribute_type()], term()}].
  -else.
  -type html_type() :: {atom(), [attribute_type()], html_type() | string()} | [{atom(), [attribute_type()], html_type() | string()}].
  -endif.
  
  %% @doc Checks whether the current request is a post operation.
  
negative.code: renderGossip2(PV1, PVE2, PVE3) ->
      [renderGossipHead(PV1, PVE2, PVE3),
       renderGossipData(PV1, PVE2, PVE3, "Size (leader election)",
                        size_ldr, fun(V) -> lists:flatten(io_lib:format("~.2f", [V])) end),
       renderGossipData(PV1, PVE2, PVE3, "Size (key range)",
                        size_kr, fun(V) -> lists:flatten(io_lib:format("~.2f", [V])) end),
       renderGossipData(PV1, PVE2, PVE3, "Average load",
                        avgLoad, fun(V) -> lists:flatten(io_lib:format("~.2f", [V])) end),
       renderGossipData(PV1, PVE2, PVE3, "Maximum load",
                        maxLoad, fun(V) -> lists:flatten(io_lib:format("~B", [V])) end),
       renderGossipData(PV1, PVE2, PVE3, "Minimum load",
                        minLoad, fun(V) -> lists:flatten(io_lib:format("~B", [V])) end),
       renderGossipData(PV1, PVE2, PVE3, "Standard deviation of the load",
                        stddev, fun(V) -> lists:flatten(io_lib:format("~.2f", [V])) end)
       ].
  
  -spec renderGossipHead(gossip_pv(), {boolean(), gossip_pv()}, {boolean(), gossip_pv()}) -> html_type().
  