<?xml version="1.0" encoding="UTF-8"?>
<root>
  <item name='java.text.DateFormat java.lang.Object parseObject(java.lang.String, java.text.ParsePosition) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.Format java.lang.Object parseObject(java.lang.String, java.text.ParsePosition) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.Format java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.Format java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition) 2'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.Format java.text.AttributedCharacterIterator formatToCharacterIterator(java.lang.Object) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name="java.text.MessageFormat MessageFormat(java.lang.String) 0">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.MessageFormat MessageFormat(java.lang.String, java.util.Locale) 0">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.MessageFormat java.lang.String format(java.lang.String, java.lang.Object...)">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.MessageFormat java.lang.String format(java.lang.String, java.lang.Object...) 0">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.MessageFormat java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition)">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.MessageFormat java.text.Format[] getFormats()">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.MessageFormat java.text.Format[] getFormatsByArgumentIndex()">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.MessageFormat void applyPattern(java.lang.String) 0">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.MessageFormat void setFormats(java.text.Format[]) 0">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.MessageFormat void setFormatsByArgumentIndex(java.text.Format[]) 0">
    <annotation name="org.jetbrains.annotations.NotNull" />
  </item>
  <item name="java.text.SimpleDateFormat SimpleDateFormat(java.lang.String) 0">
    <annotation name="org.jetbrains.annotations.NonNls" />
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name="java.text.SimpleDateFormat SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols) 0">
    <annotation name="org.jetbrains.annotations.NonNls" />
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name="java.text.SimpleDateFormat SimpleDateFormat(java.lang.String, java.util.Locale) 0">
    <annotation name="org.jetbrains.annotations.NonNls" />
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat SimpleDateFormat(java.lang.String, java.util.Locale) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition) 2'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat java.text.AttributedCharacterIterator formatToCharacterIterator(java.lang.Object) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat java.util.Date parse(java.lang.String, java.text.ParsePosition) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat java.util.Date parse(java.lang.String, java.text.ParsePosition) 1'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat void applyLocalizedPattern(java.lang.String) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat void applyPattern(java.lang.String) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat void set2DigitYearStart(java.util.Date) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.SimpleDateFormat void setDateFormatSymbols(java.text.DateFormatSymbols) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.StringCharacterIterator StringCharacterIterator(java.lang.String) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.StringCharacterIterator StringCharacterIterator(java.lang.String, int) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.StringCharacterIterator StringCharacterIterator(java.lang.String, int, int, int) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
  <item name='java.text.StringCharacterIterator void setText(java.lang.String) 0'>
    <annotation name='org.jetbrains.annotations.NotNull'/>
  </item>
</root>

