<root>
  <item name='org.picocontainer.MutablePicoContainer boolean addChildContainer(org.picocontainer.PicoContainer) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='org.picocontainer.MutablePicoContainer boolean removeChildContainer(org.picocontainer.PicoContainer) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item
      name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter registerComponent(org.picocontainer.ComponentAdapter) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter registerComponentImplementation(java.lang.Class) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item
      name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter registerComponentImplementation(java.lang.Object, java.lang.Class) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item
      name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter registerComponentImplementation(java.lang.Object, java.lang.Class) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item
      name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter registerComponentImplementation(java.lang.Object, java.lang.Class, org.picocontainer.Parameter[]) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item
      name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter registerComponentImplementation(java.lang.Object, java.lang.Class, org.picocontainer.Parameter[]) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter registerComponentInstance(java.lang.Object) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item
      name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter registerComponentInstance(java.lang.Object, java.lang.Object) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item
      name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter registerComponentInstance(java.lang.Object, java.lang.Object) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter unregisterComponent(java.lang.Object) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='org.picocontainer.MutablePicoContainer org.picocontainer.ComponentAdapter unregisterComponentByInstance(java.lang.Object) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='org.picocontainer.MutablePicoContainer org.picocontainer.MutablePicoContainer makeChildContainer()'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
</root>