code: def decompile(self, data, ttFont):
      (_, data) = sstruct.unpack2(Sill_hdr, data, self)
      self.version = float(
          floatToFixedToStr(self.version, precisionBits=16)
      )
      (numLangs,) = struct.unpack(">H", data[:2])
      data = data[8:]
      maxsetting = 0
      langinfo = []
      for i in range(numLangs):
          (langcode, numsettings, offset) = struct.unpack(
              ">4sHH", data[i * 8 : (i + 1) * 8]
          )
          offset = int(offset / 8) - (numLangs + 1)
          langcode = langcode.replace(b"\000", b"")
          langinfo.append(
              (langcode.decode("utf-8"), numsettings, offset)
          )
          maxsetting = max(maxsetting, offset + numsettings)
      data = data[numLangs * 8 :]
      finfo = []
      for i in range(maxsetting):
          (fid, val, _) = struct.unpack(
              ">LHH", data[i * 8 : (i + 1) * 8]
          )
          finfo.append((fid, val))
      self.langs = {}
      for c, n, o in langinfo:
          self.langs[c] = []
          for i in range(o, o + n):
              self.langs[c].append(finfo[i])
  
file_path: catboost/contrib/python/fonttools/fontTools/ttLib/tables/S__i_l_l.py
imports: from fontTools.misc import sstruct
  from fontTools.misc.fixedTools import floatToFixedToStr
  from fontTools.misc.textTools import safeEval
  from .None import DefaultTable
  from .None import grUtils
  import struct
label_desc: Use image node_id 2 for calling the table_S__i_l_l obj's underlying member method code with example usage: obj.decompile(data, ttFont) without return types