]> granicus.if.org Git - icu/commitdiff
ICU-21957 Update ICU4J & ICU4C Change Reports BRS#19 and BRS#20
authorCraig Cornelius <ccornelius@google.com>
Wed, 21 Sep 2022 19:51:17 +0000 (19:51 +0000)
committerCraig Cornelius <cwcornelius@gmail.com>
Wed, 21 Sep 2022 23:16:28 +0000 (16:16 -0700)
See #2193

icu4c/APIChangeReport.html
icu4c/APIChangeReport.md
icu4j/APIChangeReport.html

index e598ba9288b97bfb11e26a0c3f9fac7c4c49b2ca..d51150736f6cbc2762ade6077043252e9b210998 100644 (file)
@@ -5,31 +5,31 @@
        -->
 <head>
 <META http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>ICU4C API Comparison: ICU 70 with ICU 71</title>
+<title>ICU4C API Comparison: ICU 71 with ICU 72</title>
 <link type="text/css" href="icu4c.css" rel="stylesheet">
 </head>
 <body>
 <a name="#_top"></a>
-<h1>ICU4C API Comparison: ICU 70 with ICU 71</h1>
+<h1>ICU4C API Comparison: ICU 71 with ICU 72</h1>
 <div id="toc">
 <ul>
 <li>
-<a href="#removed">Removed from ICU 70</a>
+<a href="#removed">Removed from ICU 71</a>
 </li>
 <li>
-<a href="#deprecated">Deprecated or Obsoleted in ICU 71</a>
+<a href="#deprecated">Deprecated or Obsoleted in ICU 72</a>
 </li>
 <li>
-<a href="#changed">Changed in  ICU 71</a>
+<a href="#changed">Changed in  ICU 72</a>
 </li>
 <li>
-<a href="#promoted">Promoted to stable in ICU 71</a>
+<a href="#promoted">Promoted to stable in ICU 72</a>
 </li>
 <li>
-<a href="#added">Added in ICU 71</a>
+<a href="#added">Added in ICU 72</a>
 </li>
 <li>
-<a href="#other">Other existing drafts in ICU 71</a>
+<a href="#other">Other existing drafts in ICU 72</a>
 </li>
 <li>
 <a href="#simplifications">Signature Simplifications</a>
 <hr>
 </div>
 <a name="removed"></a>
-<h2>Removed from ICU 70</h2>
+<h2>Removed from ICU 71</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 70</th><th>ICU 71</th>
+<th>File</th><th>API</th><th>ICU 71</th><th>ICU 72</th>
 </tr>
 </THEAD>
+<tr class="row1">
+<td class="file">calendar.h</td><td class="proto">bool icu::Calendar::isSet(EDateFields) const</td><td class="">Deprecated<br>ICU 2.6</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">calendar.h</td><td class="proto">int32_t icu::Calendar::get(EDateFields, UErrorCode&amp;) const</td><td class="">Deprecated<br>ICU 2.6</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">calendar.h</td><td class="proto">int32_t icu::Calendar::getActualMaximum(EDateFields, UErrorCode&amp;) const</td><td class="">Deprecated<br>ICU 2.6</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">calendar.h</td><td class="proto">void icu::Calendar::clear(EDateFields)</td><td class="">Deprecated<br>ICU 2.6</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">calendar.h</td><td class="proto">void icu::Calendar::set(EDateFields, int32_t)</td><td class="">Deprecated<br>ICU 2.6</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">calendar.h</td><td class="proto">void icu::Calendar::setFirstDayOfWeek(EDaysOfWeek)</td><td class="">Deprecated<br>ICU 2.6</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">dtptngen.h</td><td class="proto"><tt>static</tt> DateTimePatternGenerator* icu::DateTimePatternGenerator::internalMakeInstance(const Locale&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">gregocal.h</td><td class="proto">int32_t icu::GregorianCalendar::getActualMaximum(EDateFields) const</td><td class="">Deprecated<br>ICU 2.6</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">NounClass icu::number::FormattedNumber::getNounClass(UErrorCode&amp;) const</td><td class="">Draft<br>ICU 71</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">const char* icu::number::FormattedNumber::getGender(UErrorCode&amp;) const</td><td class="">Deprecated</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">plurrule.h</td><td class="proto">int32_t icu::PluralRules::getSamples(const UnicodeString&amp;, FixedDecimal*, int32_t, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">plurrule.h</td><td class="proto"><tt>static</tt> bool icu::PluralRules::hasOverride(const Locale&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">tzrule.h</td><td class="proto">bool icu::InitialTimeZoneRule::getStartInYear(int32_t, int32_t, int32_t, UDate&amp;) const</td><td class="stabchange">Stable<br>ICU 3.8</td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="deprecated"></a>
-<h2>Deprecated or Obsoleted in ICU 71</h2>
+<h2>Deprecated or Obsoleted in ICU 72</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 70</th><th>ICU 71</th>
+<th>File</th><th>API</th><th>ICU 71</th><th>ICU 72</th>
 </tr>
 </THEAD>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">const char* icu::number::FormattedNumber::getGender(UErrorCode&amp;) const</td><td class="">Internal<br>ICU 69</td><td>Deprecated<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ucnv.h</td><td class="proto">UConverter* ucnv_safeClone(const UConverter*, void*, int32_t*, UErrorCode*)</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 71</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ucol.h</td><td class="proto">UCollator* ucol_safeClone(const UCollator*, void*, int32_t*, UErrorCode*)</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 71</span></span></td>
-</tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="changed"></a>
-<h2>Changed in  ICU 71 (old, new)</h2>
+<h2>Changed in  ICU 72 (old, new)</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 70</th><th>ICU 71</th>
+<th>File</th><th>API</th><th>ICU 71</th><th>ICU 72</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">basictz.h</td><td class="proto">void icu::BasicTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getItem()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto">MeasureUnit icu::MeasureUnit::withPrefix(UMeasurePrefix, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getKilowattHourPer100Kilometer()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto">UMeasurePrefix icu::MeasureUnit::getPrefix(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createItem(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getMilligramOfglucosePerDeciliter()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createKilowattHourPer100Kilometer(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilligramOfglucosePerDeciliter(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitDisplayCase(StringPiece) const&amp;</td><td class="">Internal<br>ICU 69</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withSignificantDigits(int32_t, int32_t, UNumberRoundingPriority) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitDisplayCase(StringPiece)&amp;&amp;</td><td class="">Internal<br>ICU 69</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::Precision::trailingZeroDisplay(UNumberTrailingZeroDisplay) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::FormattedNumberRange()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">const char* icu::number::FormattedNumber::getGender(UErrorCode&amp;) const</td><td class="">Internal<br>ICU 69</td><td>Deprecated<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto">bool u_stringHasBinaryProperty(const UChar*, int32_t, UProperty)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_BASIC_EMOJI</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_KEYCAP_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_FLAG_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_TAG_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_ZWJ_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row1">
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row0">
+<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatSymbolType::UDAT_NARROW_QUARTERS</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row1">
+<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatSymbolType::UDAT_STANDALONE_NARROW_QUARTERS</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row0">
+<td class="file">uformattedvalue.h</td><td class="proto"><tt>enum</tt> UFieldCategory::UFIELD_CATEGORY_NUMBER_RANGE_SPAN</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+</tr>
+<tr class="row1">
+<td class="file">uniset.h</td><td class="proto">bool icu::UnicodeSet::hasStrings() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row0">
+<td class="file">uset.h</td><td class="proto">bool uset_hasStrings(const USet*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">rbtz.h</td><td class="proto">void icu::RuleBasedTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uset.h</td><td class="proto">int32_t uset_getRangeCount(const USet*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">simpletz.h</td><td class="proto">void icu::SimpleTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">usetiter.h</td><td class="proto">UnicodeSetIterator &amp; icu::UnicodeSetIterator::skipToStrings()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="promoted"></a>
+<h2>Promoted to stable in ICU 72</h2>
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 71</th><th>ICU 72</th>
+</tr>
+</THEAD>
 <tr class="row1">
-<td class="file">ubrk.h</td><td class="proto">UBreakIterator* ubrk_clone(const UBreakIterator*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getItem()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_DAYLIGHT_FORMER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getKilowattHourPer100Kilometer()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_DAYLIGHT_LATTER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createItem(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_FORMER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createKilowattHourPer100Kilometer(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_LATTER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::FormattedNumberRange()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_STANDARD_FORMER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto">bool u_stringHasBinaryProperty(const UChar*, int32_t, UProperty)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_STANDARD_LATTER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_ARABIC_EXTENDED_C</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ucal.h</td><td class="proto">void ucal_getTimeZoneOffsetFromLocal(const UCalendar*, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t*, int32_t*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">ucnv.h</td><td class="proto">UConverter* ucnv_safeClone(const UConverter*, void*, int32_t*, UErrorCode*)</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 71</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CYRILLIC_EXTENDED_D</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ucol.h</td><td class="proto">UCollator* ucol_safeClone(const UCollator*, void*, int32_t*, UErrorCode*)</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 71</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_DEVANAGARI_EXTENDED_A</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">uniset.h</td><td class="proto">UnicodeSet&amp; icu::UnicodeSet::retain(const UnicodeString&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_KAKTOVIK_NUMERALS</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_CEILING</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_KAWI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_FLOOR</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_NAG_MUNDARI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_ODD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_BASIC_EMOJI</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberRoundingPriority::UNUM_ROUNDING_PRIORITY_RELAXED</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_KEYCAP_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberRoundingPriority::UNUM_ROUNDING_PRIORITY_STRICT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_FLAG_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_NEGATIVE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEGATIVE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_TAG_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberTrailingZeroDisplay::UNUM_TRAILING_ZERO_AUTO</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_ZWJ_SEQUENCE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberTrailingZeroDisplay::UNUM_TRAILING_ZERO_HIDE_IF_WHOLE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">uset.h</td><td class="proto">void uset_complementAllCodePoints(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatSymbolType::UDAT_NARROW_QUARTERS</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row0">
-<td class="file">uset.h</td><td class="proto">void uset_complementRange(USet*, UChar32, UChar32)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatSymbolType::UDAT_STANDALONE_NARROW_QUARTERS</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">uset.h</td><td class="proto">void uset_complementString(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uformattedvalue.h</td><td class="proto"><tt>enum</tt> UFieldCategory::UFIELD_CATEGORY_NUMBER_RANGE_SPAN</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
 </tr>
 <tr class="row0">
-<td class="file">uset.h</td><td class="proto">void uset_removeAllCodePoints(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uniset.h</td><td class="proto">bool icu::UnicodeSet::hasStrings() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 <tr class="row1">
-<td class="file">uset.h</td><td class="proto">void uset_retainAllCodePoints(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_KAWI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">uset.h</td><td class="proto">void uset_retainString(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_NAG_MUNDARI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">vtzone.h</td><td class="proto">void icu::VTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uset.h</td><td class="proto">bool uset_hasStrings(const USet*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row0">
+<td class="file">uset.h</td><td class="proto">int32_t uset_getRangeCount(const USet*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
+</tr>
+<tr class="row1">
+<td class="file">usetiter.h</td><td class="proto">UnicodeSetIterator &amp; icu::UnicodeSetIterator::skipToStrings()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 70</td>
 </tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
-<a name="promoted"></a>
-<h2>Promoted to stable in ICU 71</h2>
+<a name="added"></a>
+<h2>Added in ICU 72</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 70</th><th>ICU 71</th>
+<th>File</th><th>API</th><th>ICU 71</th><th>ICU 72</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">basictz.h</td><td class="proto">void icu::BasicTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getQuarter()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto">MeasureUnit icu::MeasureUnit::withPrefix(UMeasurePrefix, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getTonne()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto">UMeasurePrefix icu::MeasureUnit::getPrefix(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createQuarter(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getMilligramOfglucosePerDeciliter()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createTonne(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilligramOfglucosePerDeciliter(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::displayOptions(const DisplayOptions&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withSignificantDigits(int32_t, int32_t, UNumberRoundingPriority) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::displayOptions(const DisplayOptions&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::Precision::trailingZeroDisplay(UNumberTrailingZeroDisplay) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">numberformatter.h</td><td class="proto">UDisplayOptionsNounClass icu::number::FormattedNumber::getNounClass(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">rbtz.h</td><td class="proto">void icu::RuleBasedTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_HIDDEN</td><td class="">(missing)</td><td>
+<br>
+<span class=""><span></span>
+<br>
+<b class="bigwarn" title="A new API was introduced that was not tagged.">(untagged)</b></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simpletz.h</td><td class="proto">void icu::SimpleTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">plurrule.h</td><td class="proto">int32_t icu::PluralRules::getSamples(const UnicodeString&amp;, DecimalQuantity*, int32_t, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ubrk.h</td><td class="proto">UBreakIterator* ubrk_clone(const UBreakIterator*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_ARABIC_EXTENDED_C</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_DAYLIGHT_FORMER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_DAYLIGHT_LATTER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CYRILLIC_EXTENDED_D</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_FORMER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_DEVANAGARI_EXTENDED_A</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_LATTER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_KAKTOVIK_NUMERALS</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_STANDARD_FORMER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_KAWI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_STANDARD_LATTER</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_NAG_MUNDARI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">ucal.h</td><td class="proto">void ucal_getTimeZoneOffsetFromLocal(const UCalendar*, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t*, int32_t*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto">UDisplayOptionsGrammaticalCase udispopt_fromGrammaticalCaseIdentifier(const char*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ucnv.h</td><td class="proto">UConverter* ucnv_clone(const UConverter*, UErrorCode*)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 71</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 71.">(Born Stable)</b></td>
+<td class="file">udisplayoptions.h</td><td class="proto">UDisplayOptionsNounClass udispopt_fromNounClassIdentifier(const char*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ucol.h</td><td class="proto">UCollator* ucol_clone(const UCollator*, UErrorCode*)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 71</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 71.">(Born Stable)</b></td>
+<td class="file">udisplayoptions.h</td><td class="proto">UDisplayOptionsPluralCategory udispopt_fromPluralCategoryIdentifier(const char*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uniset.h</td><td class="proto">UnicodeSet&amp; icu::UnicodeSet::retain(const UnicodeString&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto">const char* udispopt_getGrammaticalCaseIdentifier(UDisplayOptionsGrammaticalCase)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_CEILING</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto">const char* udispopt_getNounClassIdentifier(UDisplayOptionsNounClass)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_FLOOR</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto">const char* udispopt_getPluralCategoryIdentifier(UDisplayOptionsPluralCategory)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_ODD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_BEGINNING_OF_SENTENCE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberRoundingPriority::UNUM_ROUNDING_PRIORITY_RELAXED</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_MIDDLE_OF_SENTENCE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberRoundingPriority::UNUM_ROUNDING_PRIORITY_STRICT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_STANDALONE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_NEGATIVE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UI_LIST_OR_MENU</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEGATIVE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UNDEFINED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberTrailingZeroDisplay::UNUM_TRAILING_ZERO_AUTO</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_FULL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberTrailingZeroDisplay::UNUM_TRAILING_ZERO_HIDE_IF_WHOLE</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_SHORT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uset.h</td><td class="proto">void uset_complementAllCodePoints(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_UNDEFINED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uset.h</td><td class="proto">void uset_complementRange(USet*, UChar32, UChar32)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ABLATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uset.h</td><td class="proto">void uset_complementString(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ACCUSATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uset.h</td><td class="proto">void uset_removeAllCodePoints(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_COMITATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uset.h</td><td class="proto">void uset_retainAllCodePoints(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_DATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uset.h</td><td class="proto">void uset_retainString(USet*, const UChar*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ERGATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">vtzone.h</td><td class="proto">void icu::VTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_GENITIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="added"></a>
-<h2>Added in ICU 71</h2>
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 70</th><th>ICU 71</th>
+<tr class="row1">
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_INSTRUMENTAL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE_COPULATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
-</THEAD>
 <tr class="row1">
-<td class="file">dtptngen.h</td><td class="proto">const UnicodeString&amp; icu::DateTimePatternGenerator::getDateTimeFormat(UDateFormatStyle, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 71</span></span></td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">dtptngen.h</td><td class="proto">void icu::DateTimePatternGenerator::setDateTimeFormat(UDateFormatStyle, const UnicodeString&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 71</span></span></td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_NOMINATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">NounClass icu::number::FormattedNumber::getNounClass(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 71</span></span></td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_OBLIQUE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IncrementPrecision icu::number::Precision::incrementExact(uint64_t, int16_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 71</span></span></td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_PREPOSITIONAL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ucnv.h</td><td class="proto">UConverter* ucnv_clone(const UConverter*, UErrorCode*)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 71</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 71.">(Born Stable)</b></td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_SOCIATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ucol.h</td><td class="proto">UCollator* ucol_clone(const UCollator*, UErrorCode*)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 71</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 71.">(Born Stable)</b></td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_UNDEFINED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udatpg.h</td><td class="proto">const UChar* udatpg_getDateTimeFormatForStyle(const UDateTimePatternGenerator*, UDateFormatStyle, int32_t*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 71</span></span></td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_VOCATIVE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udatpg.h</td><td class="proto">void udatpg_setDateTimeFormatForStyle(UDateTimePatternGenerator*, UDateFormatStyle, const UChar*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 71</span></span></td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_DIALECT_NAMES</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatFields::UNUM_APPROXIMATELY_SIGN_FIELD</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 71</span></span></td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_STANDARD_NAMES</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="other"></a>
-<h2>Other existing drafts in ICU 71</h2>
-<div class="other">
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 70</th><th>ICU 71</th>
+<tr class="row0">
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_UNDEFINED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
-</THEAD>
 <tr class="row1">
-<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_ANIMATE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getItem()</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_COMMON</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getKilowattHourPer100Kilometer()</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_FEMININE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createItem(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_INANIMATE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createKilowattHourPer100Kilometer(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_MASCULINE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::FormattedNumberRange()</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_NEUTER</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto">bool u_stringHasBinaryProperty(const UChar*, int32_t, UProperty)</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_OTHER</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_BASIC_EMOJI</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_PERSONAL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_KEYCAP_SEQUENCE</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_UNDEFINED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_FLAG_SEQUENCE</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_FEW</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_MANY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_TAG_SEQUENCE</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ONE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_ZWJ_SEQUENCE</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_OTHER</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_RGI_EMOJI</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_TWO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatSymbolType::UDAT_NARROW_QUARTERS</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_UNDEFINED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatSymbolType::UDAT_STANDALONE_NARROW_QUARTERS</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ZERO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uformattedvalue.h</td><td class="proto"><tt>enum</tt> UFieldCategory::UFIELD_CATEGORY_NUMBER_RANGE_SPAN</td><td class="" colspan="2" align="center">Draft<br>ICU 69</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_NO_SUBSTITUTE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uniset.h</td><td class="proto">bool icu::UnicodeSet::hasStrings() const</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_SUBSTITUTE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
+<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_UNDEFINED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unum.h</td><td class="proto">bool unum_hasAttribute(const UNumberFormat*, UNumberFormatAttribute)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 72.0</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 72)</b></span></td>
+</tr>
+<tr class="row1">
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_KAWI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
+</tr>
+<tr class="row0">
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_NAG_MUNDARI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 72</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 72.">(Born Stable)</b></td>
+</tr>
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="other"></a>
+<h2>Other existing drafts in ICU 72</h2>
+<div class="other">
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 71</th><th>ICU 72</th>
+</tr>
+</THEAD>
+<tr class="row1">
+<td class="file">dtptngen.h</td><td class="proto">const UnicodeString&amp; icu::DateTimePatternGenerator::getDateTimeFormat(UDateFormatStyle, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 71</td>
+</tr>
+<tr class="row0">
+<td class="file">dtptngen.h</td><td class="proto">void icu::DateTimePatternGenerator::setDateTimeFormat(UDateFormatStyle, const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 71</td>
+</tr>
+<tr class="row1">
+<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
 </tr>
 <tr class="row0">
-<td class="file">uset.h</td><td class="proto">bool uset_hasStrings(const USet*)</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IncrementPrecision icu::number::Precision::incrementExact(uint64_t, int16_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 71</td>
 </tr>
 <tr class="row1">
-<td class="file">uset.h</td><td class="proto">int32_t uset_getRangeCount(const USet*)</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udatpg.h</td><td class="proto">const UChar* udatpg_getDateTimeFormatForStyle(const UDateTimePatternGenerator*, UDateFormatStyle, int32_t*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 71</td>
 </tr>
 <tr class="row0">
-<td class="file">usetiter.h</td><td class="proto">UnicodeSetIterator&amp; icu::UnicodeSetIterator::skipToStrings()</td><td class="" colspan="2" align="center">Draft<br>ICU 70</td>
+<td class="file">udatpg.h</td><td class="proto">void udatpg_setDateTimeFormatForStyle(UDateTimePatternGenerator*, UDateFormatStyle, const UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 71</td>
+</tr>
+<tr class="row1">
+<td class="file">unum.h</td><td class="proto">bool unum_hasAttribute(const UNumberFormat*, UNumberFormatAttribute)</td><td class="">(missing)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 72.0</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatFields::UNUM_APPROXIMATELY_SIGN_FIELD</td><td class="" colspan="2" align="center">Draft<br>ICU 71</td>
+</tr>
+<tr class="row1">
+<td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
 </tr>
 </table>
 </div>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <p>
-<i><font size="-1">Contents generated by StableAPI tool on Thu Mar 10 11:12:56 PST 2022<br>
+<i><font size="-1">Contents generated by StableAPI tool on Wed Sep 21 09:33:24 PDT 2022<br>
         Copyright &copy; 2017 and later: Unicode, Inc. and others.<br>
         License &amp; terms of use: http://www.unicode.org/copyright.html
     </font></i>
index 239bbd56820d91f9ef6f171789ac3a766a5c5145..142026c506a1a3640d1093032543d87d4b9a3bc3 100644 (file)
  License & terms of use: http://www.unicode.org/copyright.html
 -->
 
-# ICU4C API Comparison: ICU 70 with ICU 71
+# ICU4C API Comparison: ICU 71 with ICU 72
 
 > _Note_ Markdown format of this document is new for ICU 65.
 
-- [Removed from ICU 70](#removed)
-- [Deprecated or Obsoleted in ICU 71](#deprecated)
-- [Changed in  ICU 71](#changed)
-- [Promoted to stable in ICU 71](#promoted)
-- [Added in ICU 71](#added)
-- [Other existing drafts in ICU 71](#other)
+- [Removed from ICU 71](#removed)
+- [Deprecated or Obsoleted in ICU 72](#deprecated)
+- [Changed in  ICU 72](#changed)
+- [Promoted to stable in ICU 72](#promoted)
+- [Added in ICU 72](#added)
+- [Other existing drafts in ICU 72](#other)
 - [Signature Simplifications](#simplifications)
 
 ## Removed
 
-Removed from ICU 70
+Removed from ICU 71
   
-| File | API | ICU 70 | ICU 71 |
+| File | API | ICU 71 | ICU 72 |
 |---|---|---|---|
+| calendar.h | bool icu::Calendar::isSet(EDateFields) const |  DeprecatedICU 2.6 | (missing)
+| calendar.h | int32_t icu::Calendar::get(EDateFields, UErrorCode&amp;) const |  DeprecatedICU 2.6 | (missing)
+| calendar.h | int32_t icu::Calendar::getActualMaximum(EDateFields, UErrorCode&amp;) const |  DeprecatedICU 2.6 | (missing)
+| calendar.h | void icu::Calendar::clear(EDateFields) |  DeprecatedICU 2.6 | (missing)
+| calendar.h | void icu::Calendar::set(EDateFields, int32_t) |  DeprecatedICU 2.6 | (missing)
+| calendar.h | void icu::Calendar::setFirstDayOfWeek(EDaysOfWeek) |  DeprecatedICU 2.6 | (missing)
+| dtptngen.h | <tt>static</tt> DateTimePatternGenerator* icu::DateTimePatternGenerator::internalMakeInstance(const Locale&amp;, UErrorCode&amp;) |  Internal | (missing)
+| gregocal.h | int32_t icu::GregorianCalendar::getActualMaximum(EDateFields) const |  DeprecatedICU 2.6 | (missing)
+| numberformatter.h | NounClass icu::number::FormattedNumber::getNounClass(UErrorCode&amp;) const |  DraftICU 71 | (missing)
+| numberformatter.h | const char* icu::number::FormattedNumber::getGender(UErrorCode&amp;) const |  Deprecated | (missing)
+| plurrule.h | int32_t icu::PluralRules::getSamples(const UnicodeString&amp;, FixedDecimal*, int32_t, UErrorCode&amp;) |  Internal | (missing)
+| plurrule.h | <tt>static</tt> bool icu::PluralRules::hasOverride(const Locale&amp;) |  Internal | (missing)
+| tzrule.h | bool icu::InitialTimeZoneRule::getStartInYear(int32_t, int32_t, int32_t, UDate&amp;) const |  StableICU 3.8 | (missing)
 
 ## Deprecated
 
-Deprecated or Obsoleted in ICU 71
+Deprecated or Obsoleted in ICU 72
   
-| File | API | ICU 70 | ICU 71 |
+| File | API | ICU 71 | ICU 72 |
 |---|---|---|---|
-| numberformatter.h | const char* icu::number::FormattedNumber::getGender(UErrorCode&amp;) const |  InternalICU 69 | Deprecated
-| ucnv.h | UConverter* ucnv_safeClone(const UConverter*, void*, int32_t*, UErrorCode*) |  StableICU 2.0 | DeprecatedICU 71
-| ucol.h | UCollator* ucol_safeClone(const UCollator*, void*, int32_t*, UErrorCode*) |  StableICU 2.0 | DeprecatedICU 71
 
 ## Changed
 
-Changed in  ICU 71 (old, new)
+Changed in  ICU 72 (old, new)
 
 
   
-| File | API | ICU 70 | ICU 71 |
+| File | API | ICU 71 | ICU 72 |
 |---|---|---|---|
-| basictz.h | void icu::BasicTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const |  Draft→StableICU 69
-| measunit.h | MeasureUnit icu::MeasureUnit::withPrefix(UMeasurePrefix, UErrorCode&amp;) const |  Draft→StableICU 69
-| measunit.h | UMeasurePrefix icu::MeasureUnit::getPrefix(UErrorCode&amp;) const |  Draft→StableICU 69
-| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getMilligramOfglucosePerDeciliter() |  Draft→StableICU 69
-| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilligramOfglucosePerDeciliter(UErrorCode&amp;) |  Draft→StableICU 69
-| numberformatter.h | Precision icu::number::FractionPrecision::withSignificantDigits(int32_t, int32_t, UNumberRoundingPriority) const |  Draft→StableICU 69
-| numberformatter.h | Precision icu::number::Precision::trailingZeroDisplay(UNumberTrailingZeroDisplay) const |  Draft→StableICU 69
-| numberformatter.h | const char* icu::number::FormattedNumber::getGender(UErrorCode&amp;) const |  InternalICU 69 | Deprecated
-| rbtz.h | void icu::RuleBasedTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const |  Draft→StableICU 69
-| simpletz.h | void icu::SimpleTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const |  Draft→StableICU 69
-| ubrk.h | UBreakIterator* ubrk_clone(const UBreakIterator*, UErrorCode*) |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_DAYLIGHT_FORMER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_DAYLIGHT_LATTER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_FORMER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_LATTER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_STANDARD_FORMER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_STANDARD_LATTER |  Draft→StableICU 69
-| ucal.h | void ucal_getTimeZoneOffsetFromLocal(const UCalendar*, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t*, int32_t*, UErrorCode*) |  Draft→StableICU 69
-| ucnv.h | UConverter* ucnv_safeClone(const UConverter*, void*, int32_t*, UErrorCode*) |  StableICU 2.0 | DeprecatedICU 71
-| ucol.h | UCollator* ucol_safeClone(const UCollator*, void*, int32_t*, UErrorCode*) |  StableICU 2.0 | DeprecatedICU 71
-| uniset.h | UnicodeSet&amp; icu::UnicodeSet::retain(const UnicodeString&amp;) |  Draft→StableICU 69
-| unum.h | <tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_CEILING |  Draft→StableICU 69
-| unum.h | <tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_FLOOR |  Draft→StableICU 69
-| unum.h | <tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_ODD |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberRoundingPriority::UNUM_ROUNDING_PRIORITY_RELAXED |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberRoundingPriority::UNUM_ROUNDING_PRIORITY_STRICT |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_NEGATIVE |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEGATIVE |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberTrailingZeroDisplay::UNUM_TRAILING_ZERO_AUTO |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberTrailingZeroDisplay::UNUM_TRAILING_ZERO_HIDE_IF_WHOLE |  Draft→StableICU 69
-| uset.h | void uset_complementAllCodePoints(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| uset.h | void uset_complementRange(USet*, UChar32, UChar32) |  Draft→StableICU 69
-| uset.h | void uset_complementString(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| uset.h | void uset_removeAllCodePoints(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| uset.h | void uset_retainAllCodePoints(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| uset.h | void uset_retainString(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| vtzone.h | void icu::VTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const |  Draft→StableICU 69
+| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getItem() |  Draft→StableICU 70
+| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getKilowattHourPer100Kilometer() |  Draft→StableICU 70
+| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createItem(UErrorCode&amp;) |  Draft→StableICU 70
+| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createKilowattHourPer100Kilometer(UErrorCode&amp;) |  Draft→StableICU 70
+| numberformatter.h | Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitDisplayCase(StringPiece) const&amp; |  InternalICU 69 | Internal
+| numberformatter.h | Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitDisplayCase(StringPiece)&amp;&amp; |  InternalICU 69 | Internal
+| numberrangeformatter.h | icu::number::FormattedNumberRange::FormattedNumberRange() |  Draft→StableICU 70
+| uchar.h | bool u_stringHasBinaryProperty(const UChar*, int32_t, UProperty) |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_BASIC_EMOJI |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_EMOJI_KEYCAP_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_FLAG_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_TAG_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_ZWJ_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI |  Draft→StableICU 70
+| udat.h | <tt>enum</tt> UDateFormatSymbolType::UDAT_NARROW_QUARTERS |  Draft→StableICU 70
+| udat.h | <tt>enum</tt> UDateFormatSymbolType::UDAT_STANDALONE_NARROW_QUARTERS |  Draft→StableICU 70
+| uformattedvalue.h | <tt>enum</tt> UFieldCategory::UFIELD_CATEGORY_NUMBER_RANGE_SPAN |  Draft→StableICU 69
+| uniset.h | bool icu::UnicodeSet::hasStrings() const |  Draft→StableICU 70
+| uset.h | bool uset_hasStrings(const USet*) |  Draft→StableICU 70
+| uset.h | int32_t uset_getRangeCount(const USet*) |  Draft→StableICU 70
+| usetiter.h | UnicodeSetIterator &amp; icu::UnicodeSetIterator::skipToStrings() |  Draft→StableICU 70
 
 ## Promoted
 
-Promoted to stable in ICU 71
+Promoted to stable in ICU 72
   
-| File | API | ICU 70 | ICU 71 |
+| File | API | ICU 71 | ICU 72 |
 |---|---|---|---|
-| basictz.h | void icu::BasicTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const |  Draft→StableICU 69
-| measunit.h | MeasureUnit icu::MeasureUnit::withPrefix(UMeasurePrefix, UErrorCode&amp;) const |  Draft→StableICU 69
-| measunit.h | UMeasurePrefix icu::MeasureUnit::getPrefix(UErrorCode&amp;) const |  Draft→StableICU 69
-| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getMilligramOfglucosePerDeciliter() |  Draft→StableICU 69
-| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilligramOfglucosePerDeciliter(UErrorCode&amp;) |  Draft→StableICU 69
-| numberformatter.h | Precision icu::number::FractionPrecision::withSignificantDigits(int32_t, int32_t, UNumberRoundingPriority) const |  Draft→StableICU 69
-| numberformatter.h | Precision icu::number::Precision::trailingZeroDisplay(UNumberTrailingZeroDisplay) const |  Draft→StableICU 69
-| rbtz.h | void icu::RuleBasedTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const |  Draft→StableICU 69
-| simpletz.h | void icu::SimpleTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const |  Draft→StableICU 69
-| ubrk.h | UBreakIterator* ubrk_clone(const UBreakIterator*, UErrorCode*) |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_DAYLIGHT_FORMER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_DAYLIGHT_LATTER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_FORMER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_LATTER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_STANDARD_FORMER |  Draft→StableICU 69
-| ucal.h | <tt>enum</tt> UTimeZoneLocalOption::UCAL_TZ_LOCAL_STANDARD_LATTER |  Draft→StableICU 69
-| ucal.h | void ucal_getTimeZoneOffsetFromLocal(const UCalendar*, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t*, int32_t*, UErrorCode*) |  Draft→StableICU 69
-| ucnv.h | UConverter* ucnv_clone(const UConverter*, UErrorCode*) |  (missing) | StableICU 71| *(Born Stable)* |
-| ucol.h | UCollator* ucol_clone(const UCollator*, UErrorCode*) |  (missing) | StableICU 71| *(Born Stable)* |
-| uniset.h | UnicodeSet&amp; icu::UnicodeSet::retain(const UnicodeString&amp;) |  Draft→StableICU 69
-| unum.h | <tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_CEILING |  Draft→StableICU 69
-| unum.h | <tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_FLOOR |  Draft→StableICU 69
-| unum.h | <tt>enum</tt> UNumberFormatRoundingMode::UNUM_ROUND_HALF_ODD |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberRoundingPriority::UNUM_ROUNDING_PRIORITY_RELAXED |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberRoundingPriority::UNUM_ROUNDING_PRIORITY_STRICT |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_NEGATIVE |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEGATIVE |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberTrailingZeroDisplay::UNUM_TRAILING_ZERO_AUTO |  Draft→StableICU 69
-| unumberformatter.h | <tt>enum</tt> UNumberTrailingZeroDisplay::UNUM_TRAILING_ZERO_HIDE_IF_WHOLE |  Draft→StableICU 69
-| uset.h | void uset_complementAllCodePoints(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| uset.h | void uset_complementRange(USet*, UChar32, UChar32) |  Draft→StableICU 69
-| uset.h | void uset_complementString(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| uset.h | void uset_removeAllCodePoints(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| uset.h | void uset_retainAllCodePoints(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| uset.h | void uset_retainString(USet*, const UChar*, int32_t) |  Draft→StableICU 69
-| vtzone.h | void icu::VTimeZone::getOffsetFromLocal(UDate, UTimeZoneLocalOption, UTimeZoneLocalOption, int32_t&amp;, int32_t&amp;, UErrorCode&amp;) const |  Draft→StableICU 69
+| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getItem() |  Draft→StableICU 70
+| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getKilowattHourPer100Kilometer() |  Draft→StableICU 70
+| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createItem(UErrorCode&amp;) |  Draft→StableICU 70
+| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createKilowattHourPer100Kilometer(UErrorCode&amp;) |  Draft→StableICU 70
+| numberrangeformatter.h | icu::number::FormattedNumberRange::FormattedNumberRange() |  Draft→StableICU 70
+| uchar.h | bool u_stringHasBinaryProperty(const UChar*, int32_t, UProperty) |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_ARABIC_EXTENDED_C |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_CYRILLIC_EXTENDED_D |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_DEVANAGARI_EXTENDED_A |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_KAKTOVIK_NUMERALS |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_KAWI |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_NAG_MUNDARI |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_BASIC_EMOJI |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_EMOJI_KEYCAP_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_FLAG_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_TAG_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_ZWJ_SEQUENCE |  Draft→StableICU 70
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI |  Draft→StableICU 70
+| udat.h | <tt>enum</tt> UDateFormatSymbolType::UDAT_NARROW_QUARTERS |  Draft→StableICU 70
+| udat.h | <tt>enum</tt> UDateFormatSymbolType::UDAT_STANDALONE_NARROW_QUARTERS |  Draft→StableICU 70
+| uformattedvalue.h | <tt>enum</tt> UFieldCategory::UFIELD_CATEGORY_NUMBER_RANGE_SPAN |  Draft→StableICU 69
+| uniset.h | bool icu::UnicodeSet::hasStrings() const |  Draft→StableICU 70
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_KAWI |  (missing) | StableICU 72| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_NAG_MUNDARI |  (missing) | StableICU 72| *(Born Stable)* |
+| uset.h | bool uset_hasStrings(const USet*) |  Draft→StableICU 70
+| uset.h | int32_t uset_getRangeCount(const USet*) |  Draft→StableICU 70
+| usetiter.h | UnicodeSetIterator &amp; icu::UnicodeSetIterator::skipToStrings() |  Draft→StableICU 70
 
 ## Added
 
-Added in ICU 71
+Added in ICU 72
   
-| File | API | ICU 70 | ICU 71 |
+| File | API | ICU 71 | ICU 72 |
 |---|---|---|---|
-| dtptngen.h | const UnicodeString&amp; icu::DateTimePatternGenerator::getDateTimeFormat(UDateFormatStyle, UErrorCode&amp;) const |  (missing) | DraftICU 71
-| dtptngen.h | void icu::DateTimePatternGenerator::setDateTimeFormat(UDateFormatStyle, const UnicodeString&amp;, UErrorCode&amp;) |  (missing) | DraftICU 71
-| numberformatter.h | NounClass icu::number::FormattedNumber::getNounClass(UErrorCode&amp;) const |  (missing) | DraftICU 71
-| numberformatter.h | <tt>static</tt> IncrementPrecision icu::number::Precision::incrementExact(uint64_t, int16_t) |  (missing) | DraftICU 71
-| ucnv.h | UConverter* ucnv_clone(const UConverter*, UErrorCode*) |  (missing) | StableICU 71| *(Born Stable)* |
-| ucol.h | UCollator* ucol_clone(const UCollator*, UErrorCode*) |  (missing) | StableICU 71| *(Born Stable)* |
-| udatpg.h | const UChar* udatpg_getDateTimeFormatForStyle(const UDateTimePatternGenerator*, UDateFormatStyle, int32_t*, UErrorCode*) |  (missing) | DraftICU 71
-| udatpg.h | void udatpg_setDateTimeFormatForStyle(UDateTimePatternGenerator*, UDateFormatStyle, const UChar*, int32_t, UErrorCode*) |  (missing) | DraftICU 71
-| unum.h | <tt>enum</tt> UNumberFormatFields::UNUM_APPROXIMATELY_SIGN_FIELD |  (missing) | DraftICU 71
+| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getQuarter() |  (missing) | DraftICU 72
+| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getTonne() |  (missing) | DraftICU 72
+| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createQuarter(UErrorCode&amp;) |  (missing) | DraftICU 72
+| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createTonne(UErrorCode&amp;) |  (missing) | DraftICU 72
+| numberformatter.h | Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::displayOptions(const DisplayOptions&amp;) const&amp; |  (missing) | DraftICU 72
+| numberformatter.h | Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::displayOptions(const DisplayOptions&amp;)&amp;&amp; |  (missing) | DraftICU 72
+| numberformatter.h | UDisplayOptionsNounClass icu::number::FormattedNumber::getNounClass(UErrorCode&amp;) const |  (missing) | DraftICU 72
+| platform.h | <tt>#define</tt> U_HIDDEN |  (missing) | 
+                               *(untagged)*
+                        
+| plurrule.h | int32_t icu::PluralRules::getSamples(const UnicodeString&amp;, DecimalQuantity*, int32_t, UErrorCode&amp;) |  (missing) | Internal
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_ARABIC_EXTENDED_C |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_CYRILLIC_EXTENDED_D |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_DEVANAGARI_EXTENDED_A |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_KAKTOVIK_NUMERALS |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_KAWI |  (missing) | StableICU 72| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_NAG_MUNDARI |  (missing) | StableICU 72| *(Born Stable)* |
+| udisplayoptions.h | UDisplayOptionsGrammaticalCase udispopt_fromGrammaticalCaseIdentifier(const char*) |  (missing) | DraftICU 72
+| udisplayoptions.h | UDisplayOptionsNounClass udispopt_fromNounClassIdentifier(const char*) |  (missing) | DraftICU 72
+| udisplayoptions.h | UDisplayOptionsPluralCategory udispopt_fromPluralCategoryIdentifier(const char*) |  (missing) | DraftICU 72
+| udisplayoptions.h | const char* udispopt_getGrammaticalCaseIdentifier(UDisplayOptionsGrammaticalCase) |  (missing) | DraftICU 72
+| udisplayoptions.h | const char* udispopt_getNounClassIdentifier(UDisplayOptionsNounClass) |  (missing) | DraftICU 72
+| udisplayoptions.h | const char* udispopt_getPluralCategoryIdentifier(UDisplayOptionsPluralCategory) |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_BEGINNING_OF_SENTENCE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_MIDDLE_OF_SENTENCE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_STANDALONE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UI_LIST_OR_MENU |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UNDEFINED |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_FULL |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_SHORT |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_UNDEFINED |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ABLATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ACCUSATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_COMITATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_DATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ERGATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_GENITIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_INSTRUMENTAL |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE_COPULATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_NOMINATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_OBLIQUE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_PREPOSITIONAL |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_SOCIATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_UNDEFINED |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_VOCATIVE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_DIALECT_NAMES |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_STANDARD_NAMES |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_UNDEFINED |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_ANIMATE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_COMMON |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_FEMININE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_INANIMATE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_MASCULINE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_NEUTER |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_OTHER |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_PERSONAL |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_UNDEFINED |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_FEW |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_MANY |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ONE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_OTHER |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_TWO |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_UNDEFINED |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ZERO |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_NO_SUBSTITUTE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_SUBSTITUTE |  (missing) | DraftICU 72
+| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_UNDEFINED |  (missing) | DraftICU 72
+| unum.h | bool unum_hasAttribute(const UNumberFormat*, UNumberFormatAttribute) |  (missing) | DraftICU 72.0
+                            *(should be ICU 72)*
+                        
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_KAWI |  (missing) | StableICU 72| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_NAG_MUNDARI |  (missing) | StableICU 72| *(Born Stable)* |
 
 ## Other
 
-Other existing drafts in ICU 71
+Other existing drafts in ICU 72
 
-| File | API | ICU 70 | ICU 71 |
+| File | API | ICU 71 | ICU 72 |
 |---|---|---|---|
+| dtptngen.h |  const UnicodeString&amp; icu::DateTimePatternGenerator::getDateTimeFormat(UDateFormatStyle, UErrorCode&amp;) const | DraftICU 71 | 
+| dtptngen.h |  void icu::DateTimePatternGenerator::setDateTimeFormat(UDateFormatStyle, const UnicodeString&amp;, UErrorCode&amp;) | DraftICU 71 | 
 | measfmt.h |  void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;) const | DraftICU 53 | 
-| measunit.h |  <tt>static</tt> MeasureUnit icu::MeasureUnit::getItem() | DraftICU 70 | 
-| measunit.h |  <tt>static</tt> MeasureUnit icu::MeasureUnit::getKilowattHourPer100Kilometer() | DraftICU 70 | 
-| measunit.h |  <tt>static</tt> MeasureUnit* icu::MeasureUnit::createItem(UErrorCode&amp;) | DraftICU 70 | 
-| measunit.h |  <tt>static</tt> MeasureUnit* icu::MeasureUnit::createKilowattHourPer100Kilometer(UErrorCode&amp;) | DraftICU 70 | 
-| numberrangeformatter.h |  icu::number::FormattedNumberRange::FormattedNumberRange() | DraftICU 70 | 
-| uchar.h |  bool u_stringHasBinaryProperty(const UChar*, int32_t, UProperty) | DraftICU 70 | 
-| uchar.h |  <tt>enum</tt> UProperty::UCHAR_BASIC_EMOJI | DraftICU 70 | 
-| uchar.h |  <tt>enum</tt> UProperty::UCHAR_EMOJI_KEYCAP_SEQUENCE | DraftICU 70 | 
-| uchar.h |  <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_FLAG_SEQUENCE | DraftICU 70 | 
-| uchar.h |  <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE | DraftICU 70 | 
-| uchar.h |  <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_TAG_SEQUENCE | DraftICU 70 | 
-| uchar.h |  <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI_ZWJ_SEQUENCE | DraftICU 70 | 
-| uchar.h |  <tt>enum</tt> UProperty::UCHAR_RGI_EMOJI | DraftICU 70 | 
-| udat.h |  <tt>enum</tt> UDateFormatSymbolType::UDAT_NARROW_QUARTERS | DraftICU 70 | 
-| udat.h |  <tt>enum</tt> UDateFormatSymbolType::UDAT_STANDALONE_NARROW_QUARTERS | DraftICU 70 | 
-| uformattedvalue.h |  <tt>enum</tt> UFieldCategory::UFIELD_CATEGORY_NUMBER_RANGE_SPAN | DraftICU 69 | 
-| uniset.h |  bool icu::UnicodeSet::hasStrings() const | DraftICU 70 | 
+| numberformatter.h |  <tt>static</tt> IncrementPrecision icu::number::Precision::incrementExact(uint64_t, int16_t) | DraftICU 71 | 
+| udatpg.h |  const UChar* udatpg_getDateTimeFormatForStyle(const UDateTimePatternGenerator*, UDateFormatStyle, int32_t*, UErrorCode*) | DraftICU 71 | 
+| udatpg.h |  void udatpg_setDateTimeFormatForStyle(UDateTimePatternGenerator*, UDateFormatStyle, const UChar*, int32_t, UErrorCode*) | DraftICU 71 | 
+| unum.h |  bool unum_hasAttribute(const UNumberFormat*, UNumberFormatAttribute) | 
+| unum.h |  <tt>enum</tt> UNumberFormatFields::UNUM_APPROXIMATELY_SIGN_FIELD | DraftICU 71 | 
 | uregex.h |  <tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ | DraftICU 2.4 | 
-| uset.h |  bool uset_hasStrings(const USet*) | DraftICU 70 | 
-| uset.h |  int32_t uset_getRangeCount(const USet*) | DraftICU 70 | 
-| usetiter.h |  UnicodeSetIterator&amp; icu::UnicodeSetIterator::skipToStrings() | DraftICU 70 | 
 
 ## Simplifications
 
@@ -176,7 +216,7 @@ This section shows cases where the signature was "simplified" for the sake of co
 
 ## Colophon
 
-Contents generated by StableAPI tool on Thu Mar 10 11:13:13 PST 2022
+Contents generated by StableAPI tool on Wed Sep 21 09:33:31 PDT 2022
 
 Copyright © 2019 and later: Unicode, Inc. and others.
 License & terms of use: http://www.unicode.org/copyright.html
index 181e4cd3046f29365c684dbb912bd7829a304567..09aafadfac73fe831429e4b65d3343b264c0f342 100644 (file)
@@ -241,6 +241,6 @@ VersionInfo
 </ul>
 
 <hr/>
-<p><i><font size="-1">Contents generated by ReportAPI tool on Thu Aug 25 16:25:50 PDT 2022<br/>© 2022 and later: Unicode, Inc. and others. License & terms of use: <a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a></font></i></p>
+<p><i><font size="-1">Contents generated by ReportAPI tool on Wed Sep 21 12:49:57 PDT 2022<br/>© 2022 and later: Unicode, Inc. and others. License & terms of use: <a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a></font></i></p>
 </body>
 </html>