<root>
  <item name="org.apache.velocity.runtime.log.AvalonLogChute void init(java.lang.String) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.AvalonLogChute void initTarget(java.lang.String, org.apache.velocity.runtime.RuntimeServices) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.CommonsLogLogChute void init(org.apache.velocity.runtime.RuntimeServices) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.HoldingLogChute void init(org.apache.velocity.runtime.RuntimeServices) 0">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.JdkLogChute void init(org.apache.velocity.runtime.RuntimeServices) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.JdkLogChute void log(int, java.lang.String, java.lang.Throwable) 2">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log java.lang.String formatFileString(java.lang.String, int, int) 0">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log java.lang.String formatFileString(java.lang.String, int, int)">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log java.lang.String formatFileString(org.apache.velocity.runtime.directive.Directive) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log java.lang.String formatFileString(org.apache.velocity.runtime.directive.Directive)">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log java.lang.String formatFileString(org.apache.velocity.runtime.parser.node.Node) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log java.lang.String formatFileString(org.apache.velocity.runtime.parser.node.Node)">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log java.lang.String formatFileString(org.apache.velocity.util.introspection.Info) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log java.lang.String formatFileString(org.apache.velocity.util.introspection.Info)">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log void log(int, java.lang.Object) 1">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log void log(int, java.lang.Object, java.lang.Throwable) 1">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.Log void setLogChute(org.apache.velocity.runtime.log.LogChute) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.LogDisplayWrapper LogDisplayWrapper(org.apache.velocity.runtime.log.Log, java.lang.String, boolean) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.LogDisplayWrapper void log(boolean, int, java.lang.Object) 2">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.LogDisplayWrapper void log(boolean, int, java.lang.Object, java.lang.Throwable) 2">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.LogDisplayWrapper void log(int, java.lang.Object, java.lang.Throwable) 2">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.LogManager boolean isProbablyProvidedLogChute(java.lang.String) 0">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.LogManager boolean isProbablyProvidedLogChute(java.lang.String)">
    <annotation name="org.jetbrains.annotations.Contract">
      <val val="&quot;null-&gt;false&quot;"/>
    </annotation>
  </item>
  <item name="org.apache.velocity.runtime.log.LogManager org.apache.velocity.runtime.log.LogChute createLogChute(org.apache.velocity.runtime.RuntimeServices) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.LogManager void updateLog(org.apache.velocity.runtime.log.Log, org.apache.velocity.runtime.RuntimeServices) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.LogManager void updateLog(org.apache.velocity.runtime.log.Log, org.apache.velocity.runtime.RuntimeServices) 1">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.NullLogChute void init(org.apache.velocity.runtime.RuntimeServices) 0">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.NullLogChute void log(int, java.lang.String) 1">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.NullLogChute void log(int, java.lang.String, java.lang.Throwable) 1">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.NullLogChute void log(int, java.lang.String, java.lang.Throwable) 2">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.NullLogSystem void logVelocityMessage(int, java.lang.String) 1">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.RuntimeLoggerLog RuntimeLoggerLog(org.apache.velocity.runtime.RuntimeLogger) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.RuntimeLoggerLog void setLogChute(org.apache.velocity.runtime.log.LogChute) 0">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.ServletLogChute int toLevel(java.lang.String) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.ServletLogChute void init(org.apache.velocity.runtime.RuntimeServices) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.ServletLogChute void log(int, java.lang.String) 1">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.ServletLogChute void log(int, java.lang.String, java.lang.Throwable) 1">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.SystemLogChute int toLevel(java.lang.String) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.SystemLogChute java.lang.String getPrefix(int)">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.SystemLogChute void init(org.apache.velocity.runtime.RuntimeServices) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.SystemLogChute void write(java.io.PrintStream, java.lang.String, java.lang.String, java.lang.Throwable) 0">
    <annotation name="org.jetbrains.annotations.NotNull"/>
  </item>
  <item name="org.apache.velocity.runtime.log.SystemLogChute void write(java.io.PrintStream, java.lang.String, java.lang.String, java.lang.Throwable) 3">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
  <item name="org.apache.velocity.runtime.log.VelocityFormatter java.lang.String getTime(long, java.lang.String) 1">
    <annotation name="org.jetbrains.annotations.Nullable"/>
  </item>
</root>
