docs: static Properties getProperties(Instance propertiesInstance) {
          ObjectArrayDump entriesObj = (ObjectArrayDump) propertiesInstance.getValueOfField("table"); // NOI18N
          if (entriesObj != null) {
              Instance defaultsObj = (Instance) propertiesInstance.getValueOfField("defaults"); // NOI18N
              Iterator<Instance> enIt = entriesObj.getValues().iterator();
              Properties props;
  
              if (defaultsObj != null) {
                  props = new Properties(getProperties(defaultsObj));
              } else {
                  props = new Properties();
              }
              while (enIt.hasNext()) {
                  Instance entry = (Instance) enIt.next();
  
                  for (; entry != null; entry = (Instance) entry.getValueOfField("next")) { // NOI18N
                      Instance key = (Instance) entry.getValueOfField("key"); // NOI18N
                      Instance val = (Instance) entry.getValueOfField("value"); // NOI18N
  
                      if (key != null) {
                          props.setProperty(getString(key), getString(val));
                      }
                  }
              }
  
              return props;
          }
  
          return null;
      }