<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/72f93f04fc6952b663fcf0c0e73d11c2fc247b08">https://github.com/macports/macports-ports/commit/72f93f04fc6952b663fcf0c0e73d11c2fc247b08</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 72f93f04fc6952b663fcf0c0e73d11c2fc247b08
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Mon Sep 5 18:21:33 2022 +0200

<span style='display:block; white-space:pre;color:#404040;'>    php: fix build with new ICU
</span>---
 lang/php/Portfile                               |  20 ++
 lang/php/files/patch-php53-ext-intl-icu-68.diff | 285 +++++++++++++++++++
 lang/php/files/patch-php54-ext-intl-icu-68.diff | 285 +++++++++++++++++++
 lang/php/files/patch-php55-ext-intl-icu-68.diff | 350 ++++++++++++++++++++++++
 lang/php/files/patch-php55-ext-intl-icu-71.diff |  45 +++
 lang/php/files/patch-php56-ext-intl-icu-68.diff | 350 ++++++++++++++++++++++++
 lang/php/files/patch-php56-ext-intl-icu-71.diff |  45 +++
 lang/php/files/patch-php70-ext-intl-icu-56.diff | 179 ++++++++++++
 lang/php/files/patch-php70-ext-intl-icu-68.diff | 200 ++++++++++++++
 lang/php/files/patch-php70-ext-intl-icu-71.diff |  45 +++
 lang/php/files/patch-php70-icu-71.diff          |  45 +++
 lang/php/files/patch-php71-ext-intl-icu-56.diff | 179 ++++++++++++
 lang/php/files/patch-php71-ext-intl-icu-68.diff | 200 ++++++++++++++
 lang/php/files/patch-php71-ext-intl-icu-71.diff |  45 +++
 lang/php/files/patch-php71-icu-71.diff          |  45 +++
 lang/php/files/patch-php72-ext-intl-icu-56.diff | 179 ++++++++++++
 lang/php/files/patch-php72-ext-intl-icu-68.diff | 200 ++++++++++++++
 lang/php/files/patch-php72-ext-intl-icu-71.diff |  45 +++
 lang/php/files/patch-php72-icu-71.diff          |  45 +++
 lang/php/files/patch-php73-ext-intl-icu-56.diff | 179 ++++++++++++
 lang/php/files/patch-php73-ext-intl-icu-68.diff | 200 ++++++++++++++
 lang/php/files/patch-php73-ext-intl-icu-71.diff |  45 +++
 lang/php/files/patch-php73-icu-71.diff          |  45 +++
 lang/php/files/patch-php74-ext-intl-icu-68.diff | 200 ++++++++++++++
 lang/php/files/patch-php74-ext-intl-icu-71.diff |  45 +++
 lang/php/files/patch-php74-icu-71.diff          |  45 +++
 26 files changed, 3546 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/Portfile b/lang/php/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 73dbf72398e..767cc448766 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/php/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -448,6 +448,10 @@ subport ${php} {
</span>         patchfiles-append   dynamic_lookup-11.patch
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[vercmp ${branch} 7.0] >= 0 && [vercmp ${branch} 7.4] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append   patch-${php}-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     if {[vercmp ${branch} 8.0] < 0} {
     post-patch {
         # Ensure the build date is the same for all universal archs.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1206,6 +1210,22 @@ subport ${php}-intl {
</span> 
     depends_lib-append      path:lib/pkgconfig/icu-uc.pc:icu
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[vercmp ${branch} 5.3] >= 0 && [vercmp ${branch} 7.0] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append   patch-${php}-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[vercmp ${branch} 5.5] >= 0 && [vercmp ${branch} 7.4] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append   patch-${php}-ext-intl-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[vercmp ${branch} 7.0] >= 0 && [vercmp ${branch} 7.3] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append   patch-${php}-ext-intl-icu-56.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[vercmp ${branch} 7.0] >= 0 && [vercmp ${branch} 8.0] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append   patch-${php}-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     if {[vercmp ${branch} 7.1] < 0} {
         patchfiles-append   patch-${php}-ext-intl-config.m4.diff
     }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php53-ext-intl-icu-68.diff b/lang/php/files/patch-php53-ext-intl-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..bba203bdaa5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php53-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,285 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Based on https://github.com/php/php-src/commit/975735c02751d9409c4a4757e7b70d217f0f54fe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_convert.c ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e989d4c65a..1dcab60461 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -68,7 +68,7 @@ static void collator_convert_hash_item_from_utf8_to_utf16(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Update current hash item with the converted value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   MAKE_STD_ZVAL( znew_val );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( znew_val, (char*)new_val, UBYTES(new_val_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( znew_val, (char*)new_val, UBYTES(new_val_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( hashKeyType == HASH_KEY_IS_STRING )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -113,7 +113,7 @@ static void collator_convert_hash_item_from_utf16_to_utf8(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Update current hash item with the converted value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   MAKE_STD_ZVAL( znew_val );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( znew_val, (char*)new_val, new_val_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( znew_val, (char*)new_val, new_val_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( hashKeyType == HASH_KEY_IS_STRING )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -201,7 +201,7 @@ zval* collator_convert_zstr_utf16_to_utf8( zval* utf16_zval )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           php_error( E_WARNING, "Error converting utf16 to utf8 in collator_convert_zval_utf16_to_utf8()" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ALLOC_INIT_ZVAL( utf8_zval );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( utf8_zval, str, str_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( utf8_zval, str, str_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return utf8_zval;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,7 +232,7 @@ zval* collator_convert_zstr_utf8_to_utf16( zval* utf8_zval )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Set string. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ALLOC_INIT_ZVAL( zstr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return zstr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -307,7 +307,7 @@ zval* collator_convert_object_to_string( zval* obj TSRMLS_DC )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   zval_dtor( zstr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Set string. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Don't free ustr cause it's set in zstr without copy.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * efree( ustr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_error.c ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c4e41250a2..d4cef5fa00 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -80,7 +80,7 @@ PHP_FUNCTION( collator_get_error_message )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return last error message. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   message = intl_error_get_message( COLLATOR_ERROR_P( co ) TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( (char*)message, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( (char*)message, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_locale.c ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b30b021ee8..572a47e936 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,7 +66,7 @@ PHP_FUNCTION( collator_get_locale )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   COLLATOR_CHECK_STATUS( co, "Error getting locale by type" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( locale_name, strlen(locale_name), TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( locale_name, strlen(locale_name), true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_sort.c ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0785111c96..0e1e6de3e3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -342,7 +342,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_sort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( TRUE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( true, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -534,7 +534,7 @@ PHP_FUNCTION( collator_sort_with_sort_keys )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_asort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( FALSE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( false, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/common/common_error.c ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 282172224c..0973a70316 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,7 +38,7 @@ PHP_FUNCTION( intl_get_error_code )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( intl_get_error_message )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char* message = intl_error_get_message( NULL TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( message, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( message, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_attr.c ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b8c5f25e3a..12eb9b0528 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -161,7 +161,7 @@ PHP_FUNCTION( datefmt_get_timezone_id )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   INTL_METHOD_CHECK_STATUS(dfo, "Error getting formatter timezone_id." );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( dfo->timezone_id ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING((char*)dfo->timezone_id, TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING((char*)dfo->timezone_id, true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -212,7 +212,7 @@ PHP_FUNCTION( datefmt_get_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar  value_buf[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int    length = USIZE( value_buf );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar* value  = value_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -255,7 +255,7 @@ PHP_FUNCTION( datefmt_set_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int         value_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int         slength = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar*      svalue  = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -351,7 +351,7 @@ PHP_FUNCTION( datefmt_is_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( datefmt_set_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool isLenient  = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool isLenient = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_format.c ext/intl/dateformat/dateformat_format.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4d03d924c8..47e3fb20a1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_format.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_format.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -90,7 +90,7 @@ static UDate internal_get_timestamp(IntlDateFormatter_object *dfo, HashTable* ha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long wday =0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long yday =0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long mday =0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool isInDST = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool isInDST = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UCalendar *pcal;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Fetch  values from the incoming array */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/locale/locale_methods.c ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3bb5648356..0e03f119a9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,14 +88,14 @@ static const char * const      LOC_PREFERRED_GRANDFATHERED[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if a is an ID separator FALSE otherwise*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* returns true if a is an ID separator, false otherwise */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDSeparator(a) (a == '_' || a == '-')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordSeparator(a) (a == '@' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isEndOfTag(a) (a == '\0' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*returns true if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'x-' or 'i-' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDPrefix(s) (isPrefixLetter(s[0])&&isIDSeparator(s[1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -214,7 +214,7 @@ PHP_NAMED_FUNCTION(zif_locale_get_default)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( INTL_G(default_locale) == NULL ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           INTL_G(default_locale) = pestrdup( uloc_getDefault(), 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( INTL_G(default_locale), TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( INTL_G(default_locale), true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -406,12 +406,12 @@ static void get_icu_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAMETERS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( tag_value){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   efree( tag_value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING( empty_result , TRUE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING( empty_result , true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* value found */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( tag_value){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING( tag_value , FALSE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING( tag_value , false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Error encountered while fetching the value */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -596,7 +596,7 @@ static void get_icu_disp_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( utf8value, utf8value_len , FALSE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( utf8value, utf8value_len , false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1057,11 +1057,11 @@ static int add_array_entry(char* loc_name, zval* hash_arr, char* key_name TSRMLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   cur_key_name = (char*)ecalloc( 25,  25);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sprintf( cur_key_name , "%s%d", key_name , cnt++);    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_assoc_string( hash_arr, cur_key_name , token ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_assoc_string( hash_arr, cur_key_name , token ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* tokenize on the "_" or "-" and stop  at singleton if any */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   while( (token = php_strtok_r(NULL , DELIMITER , &last_ptr)) && (strlen(token)>1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           sprintf( cur_key_name , "%s%d", key_name , cnt++);    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          add_assoc_string( hash_arr, cur_key_name , token , TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          add_assoc_string( hash_arr, cur_key_name , token , true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if( strcmp(key_name, LOC_PRIVATE_TAG) == 0 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1070,7 +1070,7 @@ static int add_array_entry(char* loc_name, zval* hash_arr, char* key_name TSRMLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( result == 1 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_assoc_string( hash_arr, key_name , key_value , TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_assoc_string( hash_arr, key_name , key_value , true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   cur_result = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1117,7 +1117,7 @@ PHP_FUNCTION(locale_parse)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   grOffset =  findOffset( LOC_GRANDFATHERED , loc_name );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( grOffset >= 0 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , estrdup(loc_name) ,FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , estrdup(loc_name) ,false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Not grandfathered */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1174,10 +1174,10 @@ PHP_FUNCTION(locale_get_all_variants)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( result > 0 && variant){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* Tokenize on the "_" or "-" */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   token = php_strtok_r( variant , DELIMITER , &saved_ptr);    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_next_index_stringl( return_value, token , strlen(token) ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_next_index_stringl( return_value, token , strlen(token) ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* tokenize on the "_" or "-" and stop  at singleton if any */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   while( (token = php_strtok_r(NULL , DELIMITER, &saved_ptr)) && (strlen(token)>1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          add_next_index_stringl( return_value, token , strlen(token) ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          add_next_index_stringl( return_value, token , strlen(token) ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( variant ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f46285e9d9..c9a1723f6a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -159,7 +159,7 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( ret_buf, ret_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( ret_buf, ret_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -179,7 +179,7 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             uinput_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode      status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool           uret = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool           uret = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   intl_error_reset( NULL TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php54-ext-intl-icu-68.diff b/lang/php/files/patch-php54-ext-intl-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..bba203bdaa5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php54-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,285 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Based on https://github.com/php/php-src/commit/975735c02751d9409c4a4757e7b70d217f0f54fe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_convert.c ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e989d4c65a..1dcab60461 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -68,7 +68,7 @@ static void collator_convert_hash_item_from_utf8_to_utf16(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Update current hash item with the converted value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   MAKE_STD_ZVAL( znew_val );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( znew_val, (char*)new_val, UBYTES(new_val_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( znew_val, (char*)new_val, UBYTES(new_val_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( hashKeyType == HASH_KEY_IS_STRING )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -113,7 +113,7 @@ static void collator_convert_hash_item_from_utf16_to_utf8(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Update current hash item with the converted value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   MAKE_STD_ZVAL( znew_val );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( znew_val, (char*)new_val, new_val_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( znew_val, (char*)new_val, new_val_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( hashKeyType == HASH_KEY_IS_STRING )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -201,7 +201,7 @@ zval* collator_convert_zstr_utf16_to_utf8( zval* utf16_zval )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           php_error( E_WARNING, "Error converting utf16 to utf8 in collator_convert_zval_utf16_to_utf8()" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ALLOC_INIT_ZVAL( utf8_zval );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( utf8_zval, str, str_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( utf8_zval, str, str_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return utf8_zval;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,7 +232,7 @@ zval* collator_convert_zstr_utf8_to_utf16( zval* utf8_zval )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Set string. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ALLOC_INIT_ZVAL( zstr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return zstr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -307,7 +307,7 @@ zval* collator_convert_object_to_string( zval* obj TSRMLS_DC )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   zval_dtor( zstr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Set string. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Don't free ustr cause it's set in zstr without copy.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * efree( ustr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_error.c ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c4e41250a2..d4cef5fa00 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -80,7 +80,7 @@ PHP_FUNCTION( collator_get_error_message )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return last error message. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   message = intl_error_get_message( COLLATOR_ERROR_P( co ) TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( (char*)message, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( (char*)message, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_locale.c ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b30b021ee8..572a47e936 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,7 +66,7 @@ PHP_FUNCTION( collator_get_locale )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   COLLATOR_CHECK_STATUS( co, "Error getting locale by type" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( locale_name, strlen(locale_name), TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( locale_name, strlen(locale_name), true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_sort.c ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0785111c96..0e1e6de3e3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -342,7 +342,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_sort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( TRUE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( true, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -534,7 +534,7 @@ PHP_FUNCTION( collator_sort_with_sort_keys )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_asort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( FALSE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( false, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/common/common_error.c ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 282172224c..0973a70316 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,7 +38,7 @@ PHP_FUNCTION( intl_get_error_code )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( intl_get_error_message )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char* message = intl_error_get_message( NULL TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( message, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( message, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_attr.c ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b8c5f25e3a..12eb9b0528 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -161,7 +161,7 @@ PHP_FUNCTION( datefmt_get_timezone_id )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   INTL_METHOD_CHECK_STATUS(dfo, "Error getting formatter timezone_id." );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( dfo->timezone_id ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING((char*)dfo->timezone_id, TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING((char*)dfo->timezone_id, true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -212,7 +212,7 @@ PHP_FUNCTION( datefmt_get_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar  value_buf[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int    length = USIZE( value_buf );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar* value  = value_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -255,7 +255,7 @@ PHP_FUNCTION( datefmt_set_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int         value_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int         slength = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar*      svalue  = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -351,7 +351,7 @@ PHP_FUNCTION( datefmt_is_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( datefmt_set_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool isLenient  = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool isLenient = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_format.c ext/intl/dateformat/dateformat_format.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4d03d924c8..47e3fb20a1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_format.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_format.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -90,7 +90,7 @@ static UDate internal_get_timestamp(IntlDateFormatter_object *dfo, HashTable* ha
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long wday =0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long yday =0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long mday =0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool isInDST = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool isInDST = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UCalendar *pcal;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Fetch  values from the incoming array */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/locale/locale_methods.c ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3bb5648356..0e03f119a9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,14 +88,14 @@ static const char * const      LOC_PREFERRED_GRANDFATHERED[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if a is an ID separator FALSE otherwise*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* returns true if a is an ID separator, false otherwise */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDSeparator(a) (a == '_' || a == '-')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordSeparator(a) (a == '@' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isEndOfTag(a) (a == '\0' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*returns true if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'x-' or 'i-' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDPrefix(s) (isPrefixLetter(s[0])&&isIDSeparator(s[1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -214,7 +214,7 @@ PHP_NAMED_FUNCTION(zif_locale_get_default)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( INTL_G(default_locale) == NULL ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           INTL_G(default_locale) = pestrdup( uloc_getDefault(), 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( INTL_G(default_locale), TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( INTL_G(default_locale), true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -406,12 +406,12 @@ static void get_icu_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAMETERS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( tag_value){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   efree( tag_value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING( empty_result , TRUE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING( empty_result , true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* value found */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( tag_value){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING( tag_value , FALSE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING( tag_value , false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Error encountered while fetching the value */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -596,7 +596,7 @@ static void get_icu_disp_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( utf8value, utf8value_len , FALSE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( utf8value, utf8value_len , false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1057,11 +1057,11 @@ static int add_array_entry(char* loc_name, zval* hash_arr, char* key_name TSRMLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   cur_key_name = (char*)ecalloc( 25,  25);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sprintf( cur_key_name , "%s%d", key_name , cnt++);    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_assoc_string( hash_arr, cur_key_name , token ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_assoc_string( hash_arr, cur_key_name , token ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* tokenize on the "_" or "-" and stop  at singleton if any */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   while( (token = php_strtok_r(NULL , DELIMITER , &last_ptr)) && (strlen(token)>1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           sprintf( cur_key_name , "%s%d", key_name , cnt++);    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          add_assoc_string( hash_arr, cur_key_name , token , TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          add_assoc_string( hash_arr, cur_key_name , token , true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if( strcmp(key_name, LOC_PRIVATE_TAG) == 0 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1070,7 +1070,7 @@ static int add_array_entry(char* loc_name, zval* hash_arr, char* key_name TSRMLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( result == 1 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_assoc_string( hash_arr, key_name , key_value , TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_assoc_string( hash_arr, key_name , key_value , true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   cur_result = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1117,7 +1117,7 @@ PHP_FUNCTION(locale_parse)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   grOffset =  findOffset( LOC_GRANDFATHERED , loc_name );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( grOffset >= 0 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , estrdup(loc_name) ,FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , estrdup(loc_name) ,false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Not grandfathered */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1174,10 +1174,10 @@ PHP_FUNCTION(locale_get_all_variants)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( result > 0 && variant){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* Tokenize on the "_" or "-" */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   token = php_strtok_r( variant , DELIMITER , &saved_ptr);    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_next_index_stringl( return_value, token , strlen(token) ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_next_index_stringl( return_value, token , strlen(token) ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* tokenize on the "_" or "-" and stop  at singleton if any */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   while( (token = php_strtok_r(NULL , DELIMITER, &saved_ptr)) && (strlen(token)>1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          add_next_index_stringl( return_value, token , strlen(token) ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          add_next_index_stringl( return_value, token , strlen(token) ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( variant ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f46285e9d9..c9a1723f6a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -159,7 +159,7 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( ret_buf, ret_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( ret_buf, ret_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -179,7 +179,7 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             uinput_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode      status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool           uret = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool           uret = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   intl_error_reset( NULL TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php55-ext-intl-icu-68.diff b/lang/php/files/patch-php55-ext-intl-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..acaf0950f1c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php55-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,350 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Based on https://github.com/php/php-src/commit/975735c02751d9409c4a4757e7b70d217f0f54fe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf9239d531..fcb258b89b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -55,7 +55,7 @@ CodePointBreakIterator& CodePointBreakIterator::operator=(const CodePointBreakIt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, that.fText, FALSE, TRUE, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, that.fText, false, true, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //don't bother copying the character iterator, getText() is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,17 +75,17 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const CodePointBreakIterator& that2 =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           static_cast<const CodePointBreakIterator&>(that);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!utext_equals(this->fText, that2.fText)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CodePointBreakIterator* CodePointBreakIterator::clone(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -106,7 +106,7 @@ CharacterIterator& CodePointBreakIterator::getText(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UText *CodePointBreakIterator::getUText(UText *fillIn, UErrorCode &status) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return utext_clone(fillIn, this->fText, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return utext_clone(fillIn, this->fText, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CodePointBreakIterator::setText(const UnicodeString &text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,7 +125,7 @@ void CodePointBreakIterator::setText(UText *text, UErrorCode &status)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, text, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, text, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -277,7 +277,7 @@ CodePointBreakIterator &CodePointBreakIterator::refreshInputText(UText *input, U
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int64_t pos = utext_getNativeIndex(this->fText);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, input, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, input, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(status)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_convert.c ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2a3ac10fbf..7850adfea2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -68,7 +68,7 @@ static void collator_convert_hash_item_from_utf8_to_utf16(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Update current hash item with the converted value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   MAKE_STD_ZVAL( znew_val );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( znew_val, (char*)new_val, UBYTES(new_val_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( znew_val, (char*)new_val, UBYTES(new_val_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( hashKeyType == HASH_KEY_IS_STRING )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -113,7 +113,7 @@ static void collator_convert_hash_item_from_utf16_to_utf8(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Update current hash item with the converted value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   MAKE_STD_ZVAL( znew_val );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( znew_val, (char*)new_val, new_val_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( znew_val, (char*)new_val, new_val_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( hashKeyType == HASH_KEY_IS_STRING )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -201,7 +201,7 @@ zval* collator_convert_zstr_utf16_to_utf8( zval* utf16_zval )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           php_error( E_WARNING, "Error converting utf16 to utf8 in collator_convert_zval_utf16_to_utf8()" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ALLOC_INIT_ZVAL( utf8_zval );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( utf8_zval, str, str_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( utf8_zval, str, str_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return utf8_zval;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,7 +232,7 @@ zval* collator_convert_zstr_utf8_to_utf16( zval* utf8_zval )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Set string. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ALLOC_INIT_ZVAL( zstr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return zstr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -307,7 +307,7 @@ zval* collator_convert_object_to_string( zval* obj TSRMLS_DC )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   zval_dtor( zstr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Set string. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Don't free ustr cause it's set in zstr without copy.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * efree( ustr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_error.c ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c4e41250a2..d4cef5fa00 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -80,7 +80,7 @@ PHP_FUNCTION( collator_get_error_message )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return last error message. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   message = intl_error_get_message( COLLATOR_ERROR_P( co ) TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( (char*)message, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( (char*)message, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_locale.c ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b30b021ee8..572a47e936 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,7 +66,7 @@ PHP_FUNCTION( collator_get_locale )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   COLLATOR_CHECK_STATUS( co, "Error getting locale by type" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( locale_name, strlen(locale_name), TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( locale_name, strlen(locale_name), true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_sort.c ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 04a24f013e..e04dba0405 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -343,7 +343,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_sort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( TRUE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( true, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -535,7 +535,7 @@ PHP_FUNCTION( collator_sort_with_sort_keys )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_asort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( FALSE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( false, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/common/common_error.c ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a0ee7c145f..9671b67f01 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,7 +38,7 @@ PHP_FUNCTION( intl_get_error_code )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( intl_get_error_message )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char* message = intl_error_get_message( NULL TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( message, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( message, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_attr.c ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf6b544667..a8f5d8c637 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,7 +88,7 @@ PHP_FUNCTION( datefmt_get_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar  value_buf[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int    length = USIZE( value_buf );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar* value  = value_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,7 +131,7 @@ PHP_FUNCTION( datefmt_set_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int         value_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int         slength = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar*      svalue  = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -227,7 +227,7 @@ PHP_FUNCTION( datefmt_is_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( datefmt_set_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool isLenient  = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool isLenient = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/locale/locale_methods.c ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 39d80d524a..7c098f2955 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,14 +88,14 @@ static const char * const      LOC_PREFERRED_GRANDFATHERED[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if a is an ID separator FALSE otherwise*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* returns true if a is an ID separator, false otherwise */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDSeparator(a) (a == '_' || a == '-')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordSeparator(a) (a == '@' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isEndOfTag(a) (a == '\0' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*returns true if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'x-' or 'i-' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDPrefix(s) (isPrefixLetter(s[0])&&isIDSeparator(s[1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -211,7 +211,7 @@ static int getSingletonPos(const char* str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Get default locale */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_NAMED_FUNCTION(zif_locale_get_default)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( intl_locale_get_default( TSRMLS_C ), TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( intl_locale_get_default( TSRMLS_C ), true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -409,12 +409,12 @@ static void get_icu_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAMETERS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( tag_value){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   efree( tag_value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING( empty_result , TRUE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING( empty_result , true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* value found */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( tag_value){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING( tag_value , FALSE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING( tag_value , false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Error encountered while fetching the value */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -599,7 +599,7 @@ static void get_icu_disp_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( utf8value, utf8value_len , FALSE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( utf8value, utf8value_len , false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1062,11 +1062,11 @@ static int add_array_entry(const char* loc_name, zval* hash_arr, char* key_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   cur_key_name = (char*)ecalloc( 25,  25);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sprintf( cur_key_name , "%s%d", key_name , cnt++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_assoc_string( hash_arr, cur_key_name , token ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_assoc_string( hash_arr, cur_key_name , token ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* tokenize on the "_" or "-" and stop  at singleton if any */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   while( (token = php_strtok_r(NULL , DELIMITER , &last_ptr)) && (strlen(token)>1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           sprintf( cur_key_name , "%s%d", key_name , cnt++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          add_assoc_string( hash_arr, cur_key_name , token , TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          add_assoc_string( hash_arr, cur_key_name , token , true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if( strcmp(key_name, LOC_PRIVATE_TAG) == 0 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1075,7 +1075,7 @@ static int add_array_entry(const char* loc_name, zval* hash_arr, char* key_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( result == 1 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_assoc_string( hash_arr, key_name , key_value , TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_assoc_string( hash_arr, key_name , key_value , true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   cur_result = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1124,7 +1124,7 @@ PHP_FUNCTION(locale_parse)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   grOffset =  findOffset( LOC_GRANDFATHERED , loc_name );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( grOffset >= 0 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , estrdup(loc_name) ,FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , estrdup(loc_name) ,false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Not grandfathered */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1182,10 +1182,10 @@ PHP_FUNCTION(locale_get_all_variants)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( result > 0 && variant){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* Tokenize on the "_" or "-" */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   token = php_strtok_r( variant , DELIMITER , &saved_ptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_next_index_stringl( return_value, token , strlen(token) ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_next_index_stringl( return_value, token , strlen(token) ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* tokenize on the "_" or "-" and stop  at singleton if any */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   while( (token = php_strtok_r(NULL , DELIMITER, &saved_ptr)) && (strlen(token)>1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          add_next_index_stringl( return_value, token , strlen(token) ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          add_next_index_stringl( return_value, token , strlen(token) ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( variant ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f46285e9d9..c9a1723f6a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -159,7 +159,7 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( ret_buf, ret_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( ret_buf, ret_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -179,7 +179,7 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             uinput_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode      status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool           uret = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool           uret = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   intl_error_reset( NULL TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_class.cpp ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 374b163851..963bb1cd80 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -315,7 +315,7 @@ static HashTable *TimeZone_get_debug_info(zval *object, int *is_temp TSRMLS_DC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t rawOffset, dstOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UDate now = Calendar::getNow();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz->getOffset(now, FALSE, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz->getOffset(now, false, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(uec)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return Z_ARRVAL(zv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_methods.cpp ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9ca6b44c89..20a9847a61 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -92,7 +92,7 @@ U_CFUNC PHP_FUNCTION(intltz_from_date_time_zone)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz = timezone_convert_datetimezone(tzobj->type, tzobj, FALSE, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz = timezone_convert_datetimezone(tzobj->type, tzobj, false, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "intltz_from_date_time_zone" TSRMLS_CC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (tz == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php55-ext-intl-icu-71.diff b/lang/php/files/patch-php55-ext-intl-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..839ad53ca34
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php55-ext-intl-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.h ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php56-ext-intl-icu-68.diff b/lang/php/files/patch-php56-ext-intl-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..acaf0950f1c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php56-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,350 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Based on https://github.com/php/php-src/commit/975735c02751d9409c4a4757e7b70d217f0f54fe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf9239d531..fcb258b89b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -55,7 +55,7 @@ CodePointBreakIterator& CodePointBreakIterator::operator=(const CodePointBreakIt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, that.fText, FALSE, TRUE, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, that.fText, false, true, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //don't bother copying the character iterator, getText() is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,17 +75,17 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const CodePointBreakIterator& that2 =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           static_cast<const CodePointBreakIterator&>(that);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!utext_equals(this->fText, that2.fText)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CodePointBreakIterator* CodePointBreakIterator::clone(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -106,7 +106,7 @@ CharacterIterator& CodePointBreakIterator::getText(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UText *CodePointBreakIterator::getUText(UText *fillIn, UErrorCode &status) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return utext_clone(fillIn, this->fText, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return utext_clone(fillIn, this->fText, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CodePointBreakIterator::setText(const UnicodeString &text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,7 +125,7 @@ void CodePointBreakIterator::setText(UText *text, UErrorCode &status)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, text, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, text, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -277,7 +277,7 @@ CodePointBreakIterator &CodePointBreakIterator::refreshInputText(UText *input, U
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int64_t pos = utext_getNativeIndex(this->fText);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, input, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, input, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(status)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_convert.c ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2a3ac10fbf..7850adfea2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_convert.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -68,7 +68,7 @@ static void collator_convert_hash_item_from_utf8_to_utf16(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Update current hash item with the converted value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   MAKE_STD_ZVAL( znew_val );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( znew_val, (char*)new_val, UBYTES(new_val_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( znew_val, (char*)new_val, UBYTES(new_val_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( hashKeyType == HASH_KEY_IS_STRING )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -113,7 +113,7 @@ static void collator_convert_hash_item_from_utf16_to_utf8(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Update current hash item with the converted value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   MAKE_STD_ZVAL( znew_val );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( znew_val, (char*)new_val, new_val_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( znew_val, (char*)new_val, new_val_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( hashKeyType == HASH_KEY_IS_STRING )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -201,7 +201,7 @@ zval* collator_convert_zstr_utf16_to_utf8( zval* utf16_zval )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           php_error( E_WARNING, "Error converting utf16 to utf8 in collator_convert_zval_utf16_to_utf8()" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ALLOC_INIT_ZVAL( utf8_zval );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( utf8_zval, str, str_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( utf8_zval, str, str_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return utf8_zval;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,7 +232,7 @@ zval* collator_convert_zstr_utf8_to_utf16( zval* utf8_zval )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Set string. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ALLOC_INIT_ZVAL( zstr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return zstr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -307,7 +307,7 @@ zval* collator_convert_object_to_string( zval* obj TSRMLS_DC )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   zval_dtor( zstr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Set string. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZVAL_STRINGL( zstr, (char*)ustr, UBYTES(ustr_len), false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Don't free ustr cause it's set in zstr without copy.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * efree( ustr );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_error.c ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c4e41250a2..d4cef5fa00 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -80,7 +80,7 @@ PHP_FUNCTION( collator_get_error_message )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return last error message. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   message = intl_error_get_message( COLLATOR_ERROR_P( co ) TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( (char*)message, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( (char*)message, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_locale.c ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b30b021ee8..572a47e936 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_locale.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,7 +66,7 @@ PHP_FUNCTION( collator_get_locale )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   COLLATOR_CHECK_STATUS( co, "Error getting locale by type" );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( locale_name, strlen(locale_name), TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( locale_name, strlen(locale_name), true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_sort.c ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 04a24f013e..e04dba0405 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -343,7 +343,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_sort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( TRUE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( true, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -535,7 +535,7 @@ PHP_FUNCTION( collator_sort_with_sort_keys )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_asort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( FALSE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( false, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/common/common_error.c ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a0ee7c145f..9671b67f01 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/common/common_error.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,7 +38,7 @@ PHP_FUNCTION( intl_get_error_code )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( intl_get_error_message )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char* message = intl_error_get_message( NULL TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( message, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( message, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_attr.c ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf6b544667..a8f5d8c637 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,7 +88,7 @@ PHP_FUNCTION( datefmt_get_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar  value_buf[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int    length = USIZE( value_buf );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar* value  = value_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,7 +131,7 @@ PHP_FUNCTION( datefmt_set_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int         value_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int         slength = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar*      svalue  = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -227,7 +227,7 @@ PHP_FUNCTION( datefmt_is_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( datefmt_set_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool isLenient  = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool isLenient = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/locale/locale_methods.c ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 39d80d524a..7c098f2955 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,14 +88,14 @@ static const char * const      LOC_PREFERRED_GRANDFATHERED[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if a is an ID separator FALSE otherwise*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* returns true if a is an ID separator, false otherwise */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDSeparator(a) (a == '_' || a == '-')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordSeparator(a) (a == '@' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isEndOfTag(a) (a == '\0' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*returns true if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'x-' or 'i-' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDPrefix(s) (isPrefixLetter(s[0])&&isIDSeparator(s[1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -211,7 +211,7 @@ static int getSingletonPos(const char* str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Get default locale */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_NAMED_FUNCTION(zif_locale_get_default)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETURN_STRING( intl_locale_get_default( TSRMLS_C ), TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETURN_STRING( intl_locale_get_default( TSRMLS_C ), true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -409,12 +409,12 @@ static void get_icu_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAMETERS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( tag_value){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   efree( tag_value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING( empty_result , TRUE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING( empty_result , true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* value found */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( tag_value){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          RETURN_STRING( tag_value , FALSE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          RETURN_STRING( tag_value , false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Error encountered while fetching the value */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -599,7 +599,7 @@ static void get_icu_disp_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( utf8value, utf8value_len , FALSE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( utf8value, utf8value_len , false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1062,11 +1062,11 @@ static int add_array_entry(const char* loc_name, zval* hash_arr, char* key_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   cur_key_name = (char*)ecalloc( 25,  25);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sprintf( cur_key_name , "%s%d", key_name , cnt++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_assoc_string( hash_arr, cur_key_name , token ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_assoc_string( hash_arr, cur_key_name , token ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* tokenize on the "_" or "-" and stop  at singleton if any */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   while( (token = php_strtok_r(NULL , DELIMITER , &last_ptr)) && (strlen(token)>1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           sprintf( cur_key_name , "%s%d", key_name , cnt++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          add_assoc_string( hash_arr, cur_key_name , token , TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          add_assoc_string( hash_arr, cur_key_name , token , true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if( strcmp(key_name, LOC_PRIVATE_TAG) == 0 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1075,7 +1075,7 @@ static int add_array_entry(const char* loc_name, zval* hash_arr, char* key_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( result == 1 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_assoc_string( hash_arr, key_name , key_value , TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_assoc_string( hash_arr, key_name , key_value , true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   cur_result = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1124,7 +1124,7 @@ PHP_FUNCTION(locale_parse)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   grOffset =  findOffset( LOC_GRANDFATHERED , loc_name );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if( grOffset >= 0 ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , estrdup(loc_name) ,FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          add_assoc_string( return_value , LOC_GRANDFATHERED_LANG_TAG , estrdup(loc_name) ,false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Not grandfathered */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1182,10 +1182,10 @@ PHP_FUNCTION(locale_get_all_variants)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( result > 0 && variant){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* Tokenize on the "_" or "-" */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   token = php_strtok_r( variant , DELIMITER , &saved_ptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  add_next_index_stringl( return_value, token , strlen(token) ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  add_next_index_stringl( return_value, token , strlen(token) ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* tokenize on the "_" or "-" and stop  at singleton if any */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   while( (token = php_strtok_r(NULL , DELIMITER, &saved_ptr)) && (strlen(token)>1) ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          add_next_index_stringl( return_value, token , strlen(token) ,TRUE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          add_next_index_stringl( return_value, token , strlen(token) ,true );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( variant ){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f46285e9d9..c9a1723f6a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -159,7 +159,7 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Return it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  RETVAL_STRINGL( ret_buf, ret_len, FALSE );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  RETVAL_STRINGL( ret_buf, ret_len, false );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -179,7 +179,7 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             uinput_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode      status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool           uret = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool           uret = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   intl_error_reset( NULL TSRMLS_CC );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_class.cpp ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 374b163851..963bb1cd80 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -315,7 +315,7 @@ static HashTable *TimeZone_get_debug_info(zval *object, int *is_temp TSRMLS_DC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t rawOffset, dstOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UDate now = Calendar::getNow();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz->getOffset(now, FALSE, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz->getOffset(now, false, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(uec)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return Z_ARRVAL(zv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_methods.cpp ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9ca6b44c89..20a9847a61 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -92,7 +92,7 @@ U_CFUNC PHP_FUNCTION(intltz_from_date_time_zone)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz = timezone_convert_datetimezone(tzobj->type, tzobj, FALSE, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz = timezone_convert_datetimezone(tzobj->type, tzobj, false, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "intltz_from_date_time_zone" TSRMLS_CC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (tz == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php56-ext-intl-icu-71.diff b/lang/php/files/patch-php56-ext-intl-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..839ad53ca34
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php56-ext-intl-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.h ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php70-ext-intl-icu-56.diff b/lang/php/files/patch-php70-ext-intl-icu-56.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e960b65643c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php70-ext-intl-icu-56.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,179 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 36014ad23f3fe1018371e66a0bbf9244ad34d721 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Anatol Belski <ab@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 6 Apr 2018 10:10:17 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Replace the deprecated API by the newer one available with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ICU 56+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UPGRADING                                  |  1 +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer.h           | 15 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer_normalize.c | 83 +++++++++++++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/tests/normalizer_normalize.phpt   |  7 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 104 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer.h ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c057a5188377..ddd2c38a946e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <php.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/utypes.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/unorm.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_NONE UNORM_NONE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +32,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_FORM_KC UNORM_NFKC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_NFKC UNORM_NFKC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_DEFAULT UNORM_DEFAULT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unicode/unorm2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NONE 0x2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_D 0x4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFD NORMALIZER_FORM_D
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_KD 0x8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFKD NORMALIZER_FORM_KD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_C 0x10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFC NORMALIZER_FORM_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_KC 0x20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFKC NORMALIZER_FORM_KC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_DEFAULT NORMALIZER_FORM_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void normalizer_register_constants( INIT_FUNC_ARGS );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c0ab8341d415..e39b2ca73fc2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,7 +19,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_intl.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/unorm.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unicode/unorm2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer_class.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer_normalize.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,6 +33,70 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/utf8.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const UNormalizer2 *intl_get_normalizer(zend_long form, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  switch (form)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_C:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFCInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_D:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFDInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_KC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFKCInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_KD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFKDInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *err = U_ILLEGAL_ARGUMENT_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int32_t intl_normalize(zend_long form, const UChar *src, int32_t src_len, UChar *dst, int32_t dst_len, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const UNormalizer2 *norm;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Mimic the behavior of ICU < 56. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (UNEXPECTED(NORMALIZER_NONE == form)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          /* FIXME This is a noop which should be removed somewhen after PHP 7.3.*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          zend_error(E_DEPRECATED, "Normalizer::NONE is obsolete with ICU 56 and above and will be removed in later PHP versions");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (dst_len >= src_len) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  memmove(dst, src, sizeof(UChar) * src_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  dst[src_len] = '\0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *err = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return src_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          *err = U_BUFFER_OVERFLOW_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return unorm2_normalize(norm, src, src_len, dst, dst_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static UBool intl_is_normalized(zend_long form, const UChar *uinput, int32_t uinput_len, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const UNormalizer2 *norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return unorm2_isNormalized(norm, uinput, uinput_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Normalize a string. }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto string normalizer_normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,7 +179,11 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uret_buf = eumalloc( uret_len + 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* normalize */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_needed = unorm_normalize( uinput, uinput_len, form, (int32_t) 0 /* options */, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_needed = intl_normalize(form, uinput, uinput_len, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Bail out if an unexpected error occurred.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * (U_BUFFER_OVERFLOW_ERROR means that *target buffer is not large enough).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,7 +206,11 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* try normalize again */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           size_needed = unorm_normalize( uinput, uinput_len, form, (int32_t) 0 /* options */, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          size_needed = intl_normalize(form, uinput, uinput_len, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Bail out if an unexpected error occurred. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( U_FAILURE(status)  ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -167,7 +244,7 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto bool Normalizer::isNormalized( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Test if a string is in a given normalization form. }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* {{{ proto bool normalizer_is_normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* {{{ proto bool normalizer_is_normalized( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Test if a string is in a given normalization form.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,7 +309,11 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* test string */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uret = unorm_isNormalizedWithOptions( uinput, uinput_len, form, (int32_t) 0 /* options */, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uret = intl_is_normalized(form, uinput, uinput_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   efree( uinput );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php70-ext-intl-icu-68.diff b/lang/php/files/patch-php70-ext-intl-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..93a3a7a57e4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php70-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,200 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 975735c02751d9409c4a4757e7b70d217f0f54fe Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Nikita Popov <nikita.ppv@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 9 Nov 2020 14:44:11 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use true/false instead of TRUE/FALSE in intl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+And drop the U_DEFINE_TRUE_AND_FALSE flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build/php.m4                                       |  2 --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../breakiterator/codepointiterator_internal.cpp   | 14 +++++++-------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/collator/collator_sort.c                  |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/dateformat/dateformat_attr.c              |  6 +++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/locale/locale_methods.c                   |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer_normalize.c         |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_class.cpp               |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_methods.cpp             |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8 files changed, 18 insertions(+), 20 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 082c02d8b2d2..754e0b01d601 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,7 +56,7 @@ CodePointBreakIterator& CodePointBreakIterator::operator=(const CodePointBreakIt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, that.fText, FALSE, TRUE, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, that.fText, false, true, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //don't bother copying the character iterator, getText() is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -76,17 +76,17 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const CodePointBreakIterator& that2 =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           static_cast<const CodePointBreakIterator&>(that);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!utext_equals(this->fText, that2.fText)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CodePointBreakIterator* CodePointBreakIterator::clone(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,7 +107,7 @@ CharacterIterator& CodePointBreakIterator::getText(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UText *CodePointBreakIterator::getUText(UText *fillIn, UErrorCode &status) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return utext_clone(fillIn, this->fText, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return utext_clone(fillIn, this->fText, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CodePointBreakIterator::setText(const UnicodeString &text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,7 +126,7 @@ void CodePointBreakIterator::setText(UText *text, UErrorCode &status)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, text, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, text, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -278,7 +278,7 @@ CodePointBreakIterator &CodePointBreakIterator::refreshInputText(UText *input, U
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int64_t pos = utext_getNativeIndex(this->fText);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, input, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, input, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(status)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_sort.c ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b2da7e16fe25..5989ef42b2e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -312,7 +312,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_sort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( TRUE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( true, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -495,7 +495,7 @@ PHP_FUNCTION( collator_sort_with_sort_keys )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator, maintaining index association. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_asort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( FALSE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( false, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_attr.c ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7f67afe5b3ca..2d2dbdfb6ccc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ PHP_FUNCTION( datefmt_get_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar  value_buf[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uint32_t    length = USIZE( value_buf );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar* value  = value_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -106,7 +106,7 @@ PHP_FUNCTION( datefmt_set_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_t      value_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t     slength = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar*      svalue  = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -184,7 +184,7 @@ PHP_FUNCTION( datefmt_is_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Set formatter lenient. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( datefmt_set_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool isLenient  = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool isLenient = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/locale/locale_methods.c ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 466dafadaced..9357475f5515 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,14 +83,14 @@ static const char * const      LOC_PREFERRED_GRANDFATHERED[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if a is an ID separator FALSE otherwise*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* returns true if a is an ID separator, false otherwise */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDSeparator(a) (a == '_' || a == '-')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordSeparator(a) (a == '@' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isEndOfTag(a) (a == '\0' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*returns true if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'x-' or 'i-' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDPrefix(s) (isPrefixLetter(s[0])&&isIDSeparator(s[1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5eca379c9905..edeeea7f4be1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ static UBool intl_is_normalized(zend_long form, const UChar *uinput, int32_t uin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const UNormalizer2 *norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return unorm2_isNormalized(norm, uinput, uinput_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -226,7 +226,7 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             uinput_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode      status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool           uret = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool           uret = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   intl_error_reset( NULL );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_class.cpp ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 63d5b057467f..f5749fd621de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -327,7 +327,7 @@ static HashTable *TimeZone_get_debug_info(zend_object *object, int *is_temp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t rawOffset, dstOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UDate now = Calendar::getNow();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz->getOffset(now, FALSE, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz->getOffset(now, false, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(uec)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return debug_info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_methods.cpp ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6516bb6ff79e..3a2d28ada6fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,7 +89,7 @@ U_CFUNC PHP_FUNCTION(intltz_from_date_time_zone)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz = timezone_convert_datetimezone(tzobj->type, tzobj, FALSE, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz = timezone_convert_datetimezone(tzobj->type, tzobj, false, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "intltz_from_date_time_zone");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (tz == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php70-ext-intl-icu-71.diff b/lang/php/files/patch-php70-ext-intl-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..839ad53ca34
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php70-ext-intl-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.h ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php70-icu-71.diff b/lang/php/files/patch-php70-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3460bbf2877
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php70-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.cpp b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.h b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php71-ext-intl-icu-56.diff b/lang/php/files/patch-php71-ext-intl-icu-56.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e960b65643c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php71-ext-intl-icu-56.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,179 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 36014ad23f3fe1018371e66a0bbf9244ad34d721 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Anatol Belski <ab@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 6 Apr 2018 10:10:17 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Replace the deprecated API by the newer one available with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ICU 56+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UPGRADING                                  |  1 +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer.h           | 15 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer_normalize.c | 83 +++++++++++++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/tests/normalizer_normalize.phpt   |  7 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 104 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer.h ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c057a5188377..ddd2c38a946e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <php.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/utypes.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/unorm.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_NONE UNORM_NONE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +32,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_FORM_KC UNORM_NFKC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_NFKC UNORM_NFKC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_DEFAULT UNORM_DEFAULT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unicode/unorm2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NONE 0x2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_D 0x4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFD NORMALIZER_FORM_D
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_KD 0x8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFKD NORMALIZER_FORM_KD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_C 0x10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFC NORMALIZER_FORM_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_KC 0x20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFKC NORMALIZER_FORM_KC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_DEFAULT NORMALIZER_FORM_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void normalizer_register_constants( INIT_FUNC_ARGS );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c0ab8341d415..e39b2ca73fc2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,7 +19,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_intl.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/unorm.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unicode/unorm2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer_class.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer_normalize.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,6 +33,70 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/utf8.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const UNormalizer2 *intl_get_normalizer(zend_long form, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  switch (form)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_C:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFCInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_D:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFDInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_KC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFKCInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_KD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFKDInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *err = U_ILLEGAL_ARGUMENT_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int32_t intl_normalize(zend_long form, const UChar *src, int32_t src_len, UChar *dst, int32_t dst_len, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const UNormalizer2 *norm;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Mimic the behavior of ICU < 56. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (UNEXPECTED(NORMALIZER_NONE == form)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          /* FIXME This is a noop which should be removed somewhen after PHP 7.3.*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          zend_error(E_DEPRECATED, "Normalizer::NONE is obsolete with ICU 56 and above and will be removed in later PHP versions");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (dst_len >= src_len) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  memmove(dst, src, sizeof(UChar) * src_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  dst[src_len] = '\0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *err = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return src_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          *err = U_BUFFER_OVERFLOW_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return unorm2_normalize(norm, src, src_len, dst, dst_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static UBool intl_is_normalized(zend_long form, const UChar *uinput, int32_t uinput_len, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const UNormalizer2 *norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return unorm2_isNormalized(norm, uinput, uinput_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Normalize a string. }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto string normalizer_normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,7 +179,11 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uret_buf = eumalloc( uret_len + 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* normalize */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_needed = unorm_normalize( uinput, uinput_len, form, (int32_t) 0 /* options */, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_needed = intl_normalize(form, uinput, uinput_len, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Bail out if an unexpected error occurred.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * (U_BUFFER_OVERFLOW_ERROR means that *target buffer is not large enough).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,7 +206,11 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* try normalize again */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           size_needed = unorm_normalize( uinput, uinput_len, form, (int32_t) 0 /* options */, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          size_needed = intl_normalize(form, uinput, uinput_len, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Bail out if an unexpected error occurred. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( U_FAILURE(status)  ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -167,7 +244,7 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto bool Normalizer::isNormalized( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Test if a string is in a given normalization form. }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* {{{ proto bool normalizer_is_normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* {{{ proto bool normalizer_is_normalized( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Test if a string is in a given normalization form.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,7 +309,11 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* test string */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uret = unorm_isNormalizedWithOptions( uinput, uinput_len, form, (int32_t) 0 /* options */, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uret = intl_is_normalized(form, uinput, uinput_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   efree( uinput );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php71-ext-intl-icu-68.diff b/lang/php/files/patch-php71-ext-intl-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..93a3a7a57e4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php71-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,200 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 975735c02751d9409c4a4757e7b70d217f0f54fe Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Nikita Popov <nikita.ppv@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 9 Nov 2020 14:44:11 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use true/false instead of TRUE/FALSE in intl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+And drop the U_DEFINE_TRUE_AND_FALSE flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build/php.m4                                       |  2 --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../breakiterator/codepointiterator_internal.cpp   | 14 +++++++-------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/collator/collator_sort.c                  |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/dateformat/dateformat_attr.c              |  6 +++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/locale/locale_methods.c                   |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer_normalize.c         |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_class.cpp               |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_methods.cpp             |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8 files changed, 18 insertions(+), 20 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 082c02d8b2d2..754e0b01d601 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,7 +56,7 @@ CodePointBreakIterator& CodePointBreakIterator::operator=(const CodePointBreakIt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, that.fText, FALSE, TRUE, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, that.fText, false, true, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //don't bother copying the character iterator, getText() is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -76,17 +76,17 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const CodePointBreakIterator& that2 =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           static_cast<const CodePointBreakIterator&>(that);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!utext_equals(this->fText, that2.fText)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CodePointBreakIterator* CodePointBreakIterator::clone(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,7 +107,7 @@ CharacterIterator& CodePointBreakIterator::getText(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UText *CodePointBreakIterator::getUText(UText *fillIn, UErrorCode &status) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return utext_clone(fillIn, this->fText, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return utext_clone(fillIn, this->fText, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CodePointBreakIterator::setText(const UnicodeString &text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,7 +126,7 @@ void CodePointBreakIterator::setText(UText *text, UErrorCode &status)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, text, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, text, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -278,7 +278,7 @@ CodePointBreakIterator &CodePointBreakIterator::refreshInputText(UText *input, U
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int64_t pos = utext_getNativeIndex(this->fText);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, input, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, input, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(status)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_sort.c ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b2da7e16fe25..5989ef42b2e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -312,7 +312,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_sort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( TRUE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( true, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -495,7 +495,7 @@ PHP_FUNCTION( collator_sort_with_sort_keys )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator, maintaining index association. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_asort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( FALSE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( false, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_attr.c ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7f67afe5b3ca..2d2dbdfb6ccc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ PHP_FUNCTION( datefmt_get_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar  value_buf[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uint32_t    length = USIZE( value_buf );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar* value  = value_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -106,7 +106,7 @@ PHP_FUNCTION( datefmt_set_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_t      value_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t     slength = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar*      svalue  = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -184,7 +184,7 @@ PHP_FUNCTION( datefmt_is_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Set formatter lenient. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( datefmt_set_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool isLenient  = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool isLenient = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/locale/locale_methods.c ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 466dafadaced..9357475f5515 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,14 +83,14 @@ static const char * const      LOC_PREFERRED_GRANDFATHERED[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if a is an ID separator FALSE otherwise*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* returns true if a is an ID separator, false otherwise */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDSeparator(a) (a == '_' || a == '-')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordSeparator(a) (a == '@' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isEndOfTag(a) (a == '\0' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*returns true if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'x-' or 'i-' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDPrefix(s) (isPrefixLetter(s[0])&&isIDSeparator(s[1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5eca379c9905..edeeea7f4be1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ static UBool intl_is_normalized(zend_long form, const UChar *uinput, int32_t uin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const UNormalizer2 *norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return unorm2_isNormalized(norm, uinput, uinput_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -226,7 +226,7 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             uinput_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode      status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool           uret = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool           uret = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   intl_error_reset( NULL );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_class.cpp ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 63d5b057467f..f5749fd621de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -327,7 +327,7 @@ static HashTable *TimeZone_get_debug_info(zend_object *object, int *is_temp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t rawOffset, dstOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UDate now = Calendar::getNow();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz->getOffset(now, FALSE, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz->getOffset(now, false, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(uec)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return debug_info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_methods.cpp ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6516bb6ff79e..3a2d28ada6fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,7 +89,7 @@ U_CFUNC PHP_FUNCTION(intltz_from_date_time_zone)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz = timezone_convert_datetimezone(tzobj->type, tzobj, FALSE, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz = timezone_convert_datetimezone(tzobj->type, tzobj, false, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "intltz_from_date_time_zone");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (tz == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php71-ext-intl-icu-71.diff b/lang/php/files/patch-php71-ext-intl-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..839ad53ca34
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php71-ext-intl-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.h ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php71-icu-71.diff b/lang/php/files/patch-php71-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3460bbf2877
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php71-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.cpp b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.h b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php72-ext-intl-icu-56.diff b/lang/php/files/patch-php72-ext-intl-icu-56.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e960b65643c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php72-ext-intl-icu-56.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,179 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 36014ad23f3fe1018371e66a0bbf9244ad34d721 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Anatol Belski <ab@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 6 Apr 2018 10:10:17 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Replace the deprecated API by the newer one available with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ICU 56+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UPGRADING                                  |  1 +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer.h           | 15 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer_normalize.c | 83 +++++++++++++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/tests/normalizer_normalize.phpt   |  7 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 104 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer.h ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c057a5188377..ddd2c38a946e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <php.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/utypes.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/unorm.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_NONE UNORM_NONE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +32,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_FORM_KC UNORM_NFKC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_NFKC UNORM_NFKC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_DEFAULT UNORM_DEFAULT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unicode/unorm2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NONE 0x2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_D 0x4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFD NORMALIZER_FORM_D
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_KD 0x8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFKD NORMALIZER_FORM_KD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_C 0x10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFC NORMALIZER_FORM_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_KC 0x20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFKC NORMALIZER_FORM_KC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_DEFAULT NORMALIZER_FORM_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void normalizer_register_constants( INIT_FUNC_ARGS );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c0ab8341d415..e39b2ca73fc2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,7 +19,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_intl.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/unorm.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unicode/unorm2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer_class.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer_normalize.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,6 +33,70 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/utf8.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const UNormalizer2 *intl_get_normalizer(zend_long form, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  switch (form)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_C:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFCInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_D:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFDInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_KC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFKCInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_KD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFKDInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *err = U_ILLEGAL_ARGUMENT_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int32_t intl_normalize(zend_long form, const UChar *src, int32_t src_len, UChar *dst, int32_t dst_len, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const UNormalizer2 *norm;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Mimic the behavior of ICU < 56. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (UNEXPECTED(NORMALIZER_NONE == form)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          /* FIXME This is a noop which should be removed somewhen after PHP 7.3.*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          zend_error(E_DEPRECATED, "Normalizer::NONE is obsolete with ICU 56 and above and will be removed in later PHP versions");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (dst_len >= src_len) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  memmove(dst, src, sizeof(UChar) * src_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  dst[src_len] = '\0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *err = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return src_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          *err = U_BUFFER_OVERFLOW_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return unorm2_normalize(norm, src, src_len, dst, dst_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static UBool intl_is_normalized(zend_long form, const UChar *uinput, int32_t uinput_len, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const UNormalizer2 *norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return unorm2_isNormalized(norm, uinput, uinput_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Normalize a string. }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto string normalizer_normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,7 +179,11 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uret_buf = eumalloc( uret_len + 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* normalize */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_needed = unorm_normalize( uinput, uinput_len, form, (int32_t) 0 /* options */, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_needed = intl_normalize(form, uinput, uinput_len, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Bail out if an unexpected error occurred.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * (U_BUFFER_OVERFLOW_ERROR means that *target buffer is not large enough).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,7 +206,11 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* try normalize again */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           size_needed = unorm_normalize( uinput, uinput_len, form, (int32_t) 0 /* options */, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          size_needed = intl_normalize(form, uinput, uinput_len, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Bail out if an unexpected error occurred. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( U_FAILURE(status)  ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -167,7 +244,7 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto bool Normalizer::isNormalized( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Test if a string is in a given normalization form. }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* {{{ proto bool normalizer_is_normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* {{{ proto bool normalizer_is_normalized( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Test if a string is in a given normalization form.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,7 +309,11 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* test string */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uret = unorm_isNormalizedWithOptions( uinput, uinput_len, form, (int32_t) 0 /* options */, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uret = intl_is_normalized(form, uinput, uinput_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   efree( uinput );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php72-ext-intl-icu-68.diff b/lang/php/files/patch-php72-ext-intl-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..93a3a7a57e4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php72-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,200 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 975735c02751d9409c4a4757e7b70d217f0f54fe Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Nikita Popov <nikita.ppv@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 9 Nov 2020 14:44:11 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use true/false instead of TRUE/FALSE in intl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+And drop the U_DEFINE_TRUE_AND_FALSE flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build/php.m4                                       |  2 --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../breakiterator/codepointiterator_internal.cpp   | 14 +++++++-------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/collator/collator_sort.c                  |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/dateformat/dateformat_attr.c              |  6 +++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/locale/locale_methods.c                   |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer_normalize.c         |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_class.cpp               |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_methods.cpp             |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8 files changed, 18 insertions(+), 20 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 082c02d8b2d2..754e0b01d601 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,7 +56,7 @@ CodePointBreakIterator& CodePointBreakIterator::operator=(const CodePointBreakIt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, that.fText, FALSE, TRUE, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, that.fText, false, true, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //don't bother copying the character iterator, getText() is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -76,17 +76,17 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const CodePointBreakIterator& that2 =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           static_cast<const CodePointBreakIterator&>(that);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!utext_equals(this->fText, that2.fText)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CodePointBreakIterator* CodePointBreakIterator::clone(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,7 +107,7 @@ CharacterIterator& CodePointBreakIterator::getText(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UText *CodePointBreakIterator::getUText(UText *fillIn, UErrorCode &status) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return utext_clone(fillIn, this->fText, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return utext_clone(fillIn, this->fText, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CodePointBreakIterator::setText(const UnicodeString &text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,7 +126,7 @@ void CodePointBreakIterator::setText(UText *text, UErrorCode &status)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, text, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, text, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -278,7 +278,7 @@ CodePointBreakIterator &CodePointBreakIterator::refreshInputText(UText *input, U
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int64_t pos = utext_getNativeIndex(this->fText);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, input, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, input, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(status)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_sort.c ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b2da7e16fe25..5989ef42b2e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -312,7 +312,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_sort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( TRUE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( true, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -495,7 +495,7 @@ PHP_FUNCTION( collator_sort_with_sort_keys )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator, maintaining index association. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_asort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( FALSE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( false, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_attr.c ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7f67afe5b3ca..2d2dbdfb6ccc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ PHP_FUNCTION( datefmt_get_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar  value_buf[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uint32_t    length = USIZE( value_buf );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar* value  = value_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -106,7 +106,7 @@ PHP_FUNCTION( datefmt_set_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_t      value_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t     slength = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar*      svalue  = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -184,7 +184,7 @@ PHP_FUNCTION( datefmt_is_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Set formatter lenient. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( datefmt_set_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool isLenient  = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool isLenient = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/locale/locale_methods.c ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 466dafadaced..9357475f5515 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,14 +83,14 @@ static const char * const      LOC_PREFERRED_GRANDFATHERED[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if a is an ID separator FALSE otherwise*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* returns true if a is an ID separator, false otherwise */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDSeparator(a) (a == '_' || a == '-')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordSeparator(a) (a == '@' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isEndOfTag(a) (a == '\0' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*returns true if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'x-' or 'i-' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDPrefix(s) (isPrefixLetter(s[0])&&isIDSeparator(s[1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5eca379c9905..edeeea7f4be1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ static UBool intl_is_normalized(zend_long form, const UChar *uinput, int32_t uin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const UNormalizer2 *norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return unorm2_isNormalized(norm, uinput, uinput_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -226,7 +226,7 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             uinput_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode      status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool           uret = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool           uret = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   intl_error_reset( NULL );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_class.cpp ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 63d5b057467f..f5749fd621de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -327,7 +327,7 @@ static HashTable *TimeZone_get_debug_info(zend_object *object, int *is_temp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t rawOffset, dstOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UDate now = Calendar::getNow();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz->getOffset(now, FALSE, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz->getOffset(now, false, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(uec)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return debug_info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_methods.cpp ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6516bb6ff79e..3a2d28ada6fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,7 +89,7 @@ U_CFUNC PHP_FUNCTION(intltz_from_date_time_zone)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz = timezone_convert_datetimezone(tzobj->type, tzobj, FALSE, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz = timezone_convert_datetimezone(tzobj->type, tzobj, false, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "intltz_from_date_time_zone");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (tz == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php72-ext-intl-icu-71.diff b/lang/php/files/patch-php72-ext-intl-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..839ad53ca34
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php72-ext-intl-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.h ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php72-icu-71.diff b/lang/php/files/patch-php72-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3460bbf2877
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php72-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.cpp b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.h b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php73-ext-intl-icu-56.diff b/lang/php/files/patch-php73-ext-intl-icu-56.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e960b65643c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php73-ext-intl-icu-56.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,179 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 36014ad23f3fe1018371e66a0bbf9244ad34d721 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Anatol Belski <ab@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 6 Apr 2018 10:10:17 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Replace the deprecated API by the newer one available with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ICU 56+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UPGRADING                                  |  1 +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer.h           | 15 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer_normalize.c | 83 +++++++++++++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/tests/normalizer_normalize.phpt   |  7 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 104 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer.h ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c057a5188377..ddd2c38a946e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <php.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/utypes.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/unorm.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_NONE UNORM_NONE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +32,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_FORM_KC UNORM_NFKC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_NFKC UNORM_NFKC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NORMALIZER_DEFAULT UNORM_DEFAULT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unicode/unorm2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NONE 0x2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_D 0x4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFD NORMALIZER_FORM_D
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_KD 0x8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFKD NORMALIZER_FORM_KD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_C 0x10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFC NORMALIZER_FORM_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_FORM_KC 0x20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_NFKC NORMALIZER_FORM_KC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NORMALIZER_DEFAULT NORMALIZER_FORM_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void normalizer_register_constants( INIT_FUNC_ARGS );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c0ab8341d415..e39b2ca73fc2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,7 +19,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "php_intl.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unicode/unorm.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unicode/unorm2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer_class.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "normalizer_normalize.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,6 +33,70 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unicode/utf8.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const UNormalizer2 *intl_get_normalizer(zend_long form, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  switch (form)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_C:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFCInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_D:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFDInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_KC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFKCInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case NORMALIZER_FORM_KD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return unorm2_getNFKDInstance(err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *err = U_ILLEGAL_ARGUMENT_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int32_t intl_normalize(zend_long form, const UChar *src, int32_t src_len, UChar *dst, int32_t dst_len, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const UNormalizer2 *norm;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Mimic the behavior of ICU < 56. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (UNEXPECTED(NORMALIZER_NONE == form)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          /* FIXME This is a noop which should be removed somewhen after PHP 7.3.*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          zend_error(E_DEPRECATED, "Normalizer::NONE is obsolete with ICU 56 and above and will be removed in later PHP versions");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (dst_len >= src_len) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  memmove(dst, src, sizeof(UChar) * src_len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  dst[src_len] = '\0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *err = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  return src_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          *err = U_BUFFER_OVERFLOW_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return unorm2_normalize(norm, src, src_len, dst, dst_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static UBool intl_is_normalized(zend_long form, const UChar *uinput, int32_t uinput_len, UErrorCode *err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{/*{{{*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const UNormalizer2 *norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return unorm2_isNormalized(norm, uinput, uinput_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Normalize a string. }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto string normalizer_normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,7 +179,11 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uret_buf = eumalloc( uret_len + 1 );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* normalize */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_needed = unorm_normalize( uinput, uinput_len, form, (int32_t) 0 /* options */, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_needed = intl_normalize(form, uinput, uinput_len, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Bail out if an unexpected error occurred.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * (U_BUFFER_OVERFLOW_ERROR means that *target buffer is not large enough).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,7 +206,11 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* try normalize again */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           size_needed = unorm_normalize( uinput, uinput_len, form, (int32_t) 0 /* options */, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          size_needed = intl_normalize(form, uinput, uinput_len, uret_buf, uret_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Bail out if an unexpected error occurred. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if( U_FAILURE(status)  ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -167,7 +244,7 @@ PHP_FUNCTION( normalizer_normalize )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto bool Normalizer::isNormalized( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Test if a string is in a given normalization form. }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* {{{ proto bool normalizer_is_normalize( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* {{{ proto bool normalizer_is_normalized( string $input [, string $form = FORM_C] )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Test if a string is in a given normalization form.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,7 +309,11 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* test string */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM < 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uret = unorm_isNormalizedWithOptions( uinput, uinput_len, form, (int32_t) 0 /* options */, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uret = intl_is_normalized(form, uinput, uinput_len, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   efree( uinput );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php73-ext-intl-icu-68.diff b/lang/php/files/patch-php73-ext-intl-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..93a3a7a57e4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php73-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,200 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 975735c02751d9409c4a4757e7b70d217f0f54fe Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Nikita Popov <nikita.ppv@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 9 Nov 2020 14:44:11 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use true/false instead of TRUE/FALSE in intl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+And drop the U_DEFINE_TRUE_AND_FALSE flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build/php.m4                                       |  2 --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../breakiterator/codepointiterator_internal.cpp   | 14 +++++++-------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/collator/collator_sort.c                  |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/dateformat/dateformat_attr.c              |  6 +++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/locale/locale_methods.c                   |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer_normalize.c         |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_class.cpp               |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_methods.cpp             |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8 files changed, 18 insertions(+), 20 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 082c02d8b2d2..754e0b01d601 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,7 +56,7 @@ CodePointBreakIterator& CodePointBreakIterator::operator=(const CodePointBreakIt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, that.fText, FALSE, TRUE, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, that.fText, false, true, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //don't bother copying the character iterator, getText() is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -76,17 +76,17 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const CodePointBreakIterator& that2 =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           static_cast<const CodePointBreakIterator&>(that);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!utext_equals(this->fText, that2.fText)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CodePointBreakIterator* CodePointBreakIterator::clone(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,7 +107,7 @@ CharacterIterator& CodePointBreakIterator::getText(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UText *CodePointBreakIterator::getUText(UText *fillIn, UErrorCode &status) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return utext_clone(fillIn, this->fText, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return utext_clone(fillIn, this->fText, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CodePointBreakIterator::setText(const UnicodeString &text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,7 +126,7 @@ void CodePointBreakIterator::setText(UText *text, UErrorCode &status)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, text, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, text, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -278,7 +278,7 @@ CodePointBreakIterator &CodePointBreakIterator::refreshInputText(UText *input, U
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int64_t pos = utext_getNativeIndex(this->fText);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, input, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, input, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(status)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_sort.c ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b2da7e16fe25..5989ef42b2e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -312,7 +312,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_sort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( TRUE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( true, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -495,7 +495,7 @@ PHP_FUNCTION( collator_sort_with_sort_keys )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator, maintaining index association. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_asort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( FALSE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( false, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_attr.c ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7f67afe5b3ca..2d2dbdfb6ccc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ PHP_FUNCTION( datefmt_get_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar  value_buf[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uint32_t    length = USIZE( value_buf );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar* value  = value_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -106,7 +106,7 @@ PHP_FUNCTION( datefmt_set_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_t      value_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t     slength = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar*      svalue  = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -184,7 +184,7 @@ PHP_FUNCTION( datefmt_is_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Set formatter lenient. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( datefmt_set_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool isLenient  = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool isLenient = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/locale/locale_methods.c ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 466dafadaced..9357475f5515 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,14 +83,14 @@ static const char * const      LOC_PREFERRED_GRANDFATHERED[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if a is an ID separator FALSE otherwise*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* returns true if a is an ID separator, false otherwise */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDSeparator(a) (a == '_' || a == '-')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordSeparator(a) (a == '@' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isEndOfTag(a) (a == '\0' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*returns true if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'x-' or 'i-' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDPrefix(s) (isPrefixLetter(s[0])&&isIDSeparator(s[1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5eca379c9905..edeeea7f4be1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ static UBool intl_is_normalized(zend_long form, const UChar *uinput, int32_t uin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const UNormalizer2 *norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return unorm2_isNormalized(norm, uinput, uinput_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -226,7 +226,7 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             uinput_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode      status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool           uret = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool           uret = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   intl_error_reset( NULL );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_class.cpp ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 63d5b057467f..f5749fd621de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -327,7 +327,7 @@ static HashTable *TimeZone_get_debug_info(zend_object *object, int *is_temp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t rawOffset, dstOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UDate now = Calendar::getNow();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz->getOffset(now, FALSE, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz->getOffset(now, false, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(uec)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return debug_info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_methods.cpp ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6516bb6ff79e..3a2d28ada6fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,7 +89,7 @@ U_CFUNC PHP_FUNCTION(intltz_from_date_time_zone)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz = timezone_convert_datetimezone(tzobj->type, tzobj, FALSE, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz = timezone_convert_datetimezone(tzobj->type, tzobj, false, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "intltz_from_date_time_zone");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (tz == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php73-ext-intl-icu-71.diff b/lang/php/files/patch-php73-ext-intl-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..839ad53ca34
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php73-ext-intl-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.h ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php73-icu-71.diff b/lang/php/files/patch-php73-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3460bbf2877
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php73-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.cpp b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.h b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php74-ext-intl-icu-68.diff b/lang/php/files/patch-php74-ext-intl-icu-68.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..93a3a7a57e4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php74-ext-intl-icu-68.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,200 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 975735c02751d9409c4a4757e7b70d217f0f54fe Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Nikita Popov <nikita.ppv@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 9 Nov 2020 14:44:11 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use true/false instead of TRUE/FALSE in intl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+And drop the U_DEFINE_TRUE_AND_FALSE flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build/php.m4                                       |  2 --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../breakiterator/codepointiterator_internal.cpp   | 14 +++++++-------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/collator/collator_sort.c                  |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/dateformat/dateformat_attr.c              |  6 +++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/locale/locale_methods.c                   |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/normalizer/normalizer_normalize.c         |  4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_class.cpp               |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/timezone/timezone_methods.cpp             |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8 files changed, 18 insertions(+), 20 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 082c02d8b2d2..754e0b01d601 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,7 +56,7 @@ CodePointBreakIterator& CodePointBreakIterator::operator=(const CodePointBreakIt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, that.fText, FALSE, TRUE, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, that.fText, false, true, &uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //don't bother copying the character iterator, getText() is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -76,17 +76,17 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const CodePointBreakIterator& that2 =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           static_cast<const CodePointBreakIterator&>(that);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!utext_equals(this->fText, that2.fText)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CodePointBreakIterator* CodePointBreakIterator::clone(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,7 +107,7 @@ CharacterIterator& CodePointBreakIterator::getText(void) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UText *CodePointBreakIterator::getUText(UText *fillIn, UErrorCode &status) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return utext_clone(fillIn, this->fText, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return utext_clone(fillIn, this->fText, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CodePointBreakIterator::setText(const UnicodeString &text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,7 +126,7 @@ void CodePointBreakIterator::setText(UText *text, UErrorCode &status)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, text, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, text, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -278,7 +278,7 @@ CodePointBreakIterator &CodePointBreakIterator::refreshInputText(UText *input, U
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int64_t pos = utext_getNativeIndex(this->fText);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  this->fText = utext_clone(this->fText, input, FALSE, TRUE, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  this->fText = utext_clone(this->fText, input, false, true, &status);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(status)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return *this;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/collator/collator_sort.c ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b2da7e16fe25..5989ef42b2e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/collator/collator_sort.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -312,7 +312,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_sort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( TRUE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( true, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -495,7 +495,7 @@ PHP_FUNCTION( collator_sort_with_sort_keys )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Sort array using specified collator, maintaining index association. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( collator_asort )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  collator_sort_internal( FALSE, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  collator_sort_internal( false, INTERNAL_FUNCTION_PARAM_PASSTHRU );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/dateformat/dateformat_attr.c ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7f67afe5b3ca..2d2dbdfb6ccc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/dateformat/dateformat_attr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ PHP_FUNCTION( datefmt_get_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar  value_buf[64];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uint32_t    length = USIZE( value_buf );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar* value  = value_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -106,7 +106,7 @@ PHP_FUNCTION( datefmt_set_pattern )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_t      value_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t     slength = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UChar*      svalue  = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool   is_pattern_localized =FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool   is_pattern_localized = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -184,7 +184,7 @@ PHP_FUNCTION( datefmt_is_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ Set formatter lenient. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION( datefmt_set_lenient )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  zend_bool isLenient  = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  zend_bool isLenient = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DATE_FORMAT_METHOD_INIT_VARS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/locale/locale_methods.c ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 466dafadaced..9357475f5515 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/locale/locale_methods.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,14 +83,14 @@ static const char * const      LOC_PREFERRED_GRANDFATHERED[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if a is an ID separator FALSE otherwise*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* returns true if a is an ID separator, false otherwise */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDSeparator(a) (a == '_' || a == '-')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordSeparator(a) (a == '@' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isEndOfTag(a) (a == '\0' )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*returns TRUE if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*returns true if one of the special prefixes is here (s=string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   'x-' or 'i-' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isIDPrefix(s) (isPrefixLetter(s[0])&&isIDSeparator(s[1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define isKeywordPrefix(s) ( isKeywordSeparator(s[0]) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/normalizer/normalizer_normalize.c ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5eca379c9905..edeeea7f4be1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/normalizer/normalizer_normalize.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ static UBool intl_is_normalized(zend_long form, const UChar *uinput, int32_t uin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const UNormalizer2 *norm = intl_get_normalizer(form, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(U_FAILURE(*err)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return unorm2_isNormalized(norm, uinput, uinput_len, err);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -226,7 +226,7 @@ PHP_FUNCTION( normalizer_is_normalized )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             uinput_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UErrorCode      status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UBool           uret = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UBool           uret = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   intl_error_reset( NULL );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_class.cpp ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 63d5b057467f..f5749fd621de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_class.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -327,7 +327,7 @@ static HashTable *TimeZone_get_debug_info(zend_object *object, int *is_temp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int32_t rawOffset, dstOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UDate now = Calendar::getNow();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz->getOffset(now, FALSE, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz->getOffset(now, false, rawOffset, dstOffset, uec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (U_FAILURE(uec)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return debug_info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/timezone/timezone_methods.cpp ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6516bb6ff79e..3a2d28ada6fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/timezone/timezone_methods.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,7 +89,7 @@ U_CFUNC PHP_FUNCTION(intltz_from_date_time_zone)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tz = timezone_convert_datetimezone(tzobj->type, tzobj, FALSE, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tz = timezone_convert_datetimezone(tzobj->type, tzobj, false, NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "intltz_from_date_time_zone");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (tz == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           RETURN_NULL();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php74-ext-intl-icu-71.diff b/lang/php/files/patch-php74-ext-intl-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..839ad53ca34
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php74-ext-intl-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.cpp ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git ext/intl/breakiterator/codepointiterator_internal.h ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php74-icu-71.diff b/lang/php/files/patch-php74-icu-71.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3460bbf2877
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php74-icu-71.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 81b3f95622b1da2433f7d1e992c3ae6ad745e704 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Ben Ramsey <ramsey@php.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 19 Oct 2021 23:59:11 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Change UBool to bool for equality operators in ICU >= 70.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Refer to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/633438f8da99fee815e2c61626ea779a84567a3d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- https://github.com/unicode-org/icu/commit/f6325d49ba57ec26f320b2865ce09ca47db458d9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.cpp | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext/intl/breakiterator/codepointiterator_internal.h   | 4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 8 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.cpp b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bf44678efc06..143c181590e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clearCurrentCharIter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (typeid(*this) != typeid(that)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/ext/intl/breakiterator/codepointiterator_internal.h b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ecf12deb5ae..0baf607782d0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/ext/intl/breakiterator/codepointiterator_internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,11 @@ namespace PHP {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual ~CodePointBreakIterator();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if U_ICU_VERSION_MAJOR_NUM >= 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          virtual bool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual UBool operator==(const BreakIterator& that) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           virtual CodePointBreakIterator* clone(void) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>