class_docstr: Exchange calendar for BM&F BOVESPA
  
  Open Time: 10:00 AM, Brazil/Sao Paulo
  Close Time: 4:00 PM, Brazil/Sao Paulo
  
  Regularly-Observed Holidays:
  - Universal Confraternization (New year's day, Jan 1)
  - Sao Paulo City Anniversary (Jan 25)
  - Carnaval Monday (48 days before Easter)
  - Carnaval Tuesday (47 days before Easter)
  - Passion of the Christ (Good Friday, 2 days before Easter)
  - Corpus Christi (60 days after Easter)
  - Tiradentes (April 21)
  - Labor day (May 1)
  - Constitutionalist Revolution (July 9 after 1997)
  - Independence Day (September 7)
  - Our Lady of Aparecida Feast (October 12)
  - All Souls' Day (November 2)
  - Proclamation of the Republic (November 15)
  - Day of Black Awareness (November 20 after 2004)
  - Christmas (December 24 and 25)
  - Day before New Year's Eve (December 30 if NYE falls on a Saturday)
  - New Year's Eve (December 31)
code: def close_time(self):
      return time(16)
  
file_path: catalyst/catalyst/utils/calendars/exchange_calendar_bmf.py
imports: from datetime import time
  from pandas.tseries.holiday import Holiday, Easter, Day, GoodFriday
  from pytz import timezone
  from .trading_calendar import TradingCalendar, FRIDAY, HolidayCalendar
label_desc: Use image node_id 4 for calling the BMFExchangeCalendar obj's underlying member method code with example usage: obj.close_time() and returns: time