ICU-7599 Add support for alternate symbols per numbering system

X-SVN-Rev: 28134
diff --git a/icu4c/source/data/locales/af.txt b/icu4c/source/data/locales/af.txt
index 0368126..847018f 100644
--- a/icu4c/source/data/locales/af.txt
+++ b/icu4c/source/data/locales/af.txt
@@ -17,24 +17,23 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                minusSign{"-"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.68"}
     calendar{
diff --git a/icu4c/source/data/locales/af_NA.txt b/icu4c/source/data/locales/af_NA.txt
index 19b08e6..1e285b2 100644
--- a/icu4c/source/data/locales/af_NA.txt
+++ b/icu4c/source/data/locales/af_NA.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 af_NA{
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+            }
+        }
     }
     Version{"2.0.47.67"}
 }
diff --git a/icu4c/source/data/locales/ak.txt b/icu4c/source/data/locales/ak.txt
index 605fd2b..b6dfc90 100755
--- a/icu4c/source/data/locales/ak.txt
+++ b/icu4c/source/data/locales/ak.txt
@@ -17,24 +17,14 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+            symbols{
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/am.txt b/icu4c/source/data/locales/am.txt
index 992987c..5b527ba 100644
--- a/icu4c/source/data/locales/am.txt
+++ b/icu4c/source/data/locales/am.txt
@@ -14,11 +14,12 @@
     LocaleScript{
         "Ethi",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.47.68"}
     calendar{
diff --git a/icu4c/source/data/locales/ar.txt b/icu4c/source/data/locales/ar.txt
index a11887a..f40f26a 100644
--- a/icu4c/source/data/locales/ar.txt
+++ b/icu4c/source/data/locales/ar.txt
@@ -21,24 +21,36 @@
         "Arab",
     }
     NumberElements{
-        "٫",
-        "٬",
-        "؛",
-        "٪",
-        "٠",
-        "#",
-        "-",
-        "اس",
-        "؉",
-        "∞",
-        "ليس رقم",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###;#,##0.###-",
-        "¤ #,##0.00;¤ #,##0.00-",
-        "#,##0%",
-        "#E0",
+        arab{
+            symbols{
+                decimal{"٫"}
+                exponential{"اس"}
+                group{"٬"}
+                list{"؛"}
+                nan{"ليس رقم"}
+                perMille{"؉"}
+                percentSign{"٪"}
+            }
+        }
+        default{"arab"}
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00;¤ #,##0.00-"}
+                decimalFormat{"#,##0.###;#,##0.###-"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
@@ -645,7 +657,6 @@
             }
         }
     }
-    defaultNumberingSystem{"arab"}
     delimiters{
         alternateQuotationEnd{"’"}
         alternateQuotationStart{"‘"}
diff --git a/icu4c/source/data/locales/ar_DZ.txt b/icu4c/source/data/locales/ar_DZ.txt
index 53f8173..ac569f7 100644
--- a/icu4c/source/data/locales/ar_DZ.txt
+++ b/icu4c/source/data/locales/ar_DZ.txt
@@ -7,7 +7,10 @@
 // *
 // ***************************************************************************
 ar_DZ{
-    Version{"2.0.48.49"}
+    NumberElements{
+        default{"latn"}
+    }
+    Version{"2.0.48.50"}
     calendar{
         gregorian{
             DateTimeElements:intvector{
@@ -57,5 +60,4 @@
             }
         }
     }
-    defaultNumberingSystem{"latn"}
 }
diff --git a/icu4c/source/data/locales/ar_MA.txt b/icu4c/source/data/locales/ar_MA.txt
index dcd9bf0..2cde259 100644
--- a/icu4c/source/data/locales/ar_MA.txt
+++ b/icu4c/source/data/locales/ar_MA.txt
@@ -7,7 +7,10 @@
 // *
 // ***************************************************************************
 ar_MA{
-    Version{"2.0.48.49"}
+    NumberElements{
+        default{"latn"}
+    }
+    Version{"2.0.48.50"}
     calendar{
         gregorian{
             DateTimeElements:intvector{
@@ -60,5 +63,4 @@
             }
         }
     }
-    defaultNumberingSystem{"latn"}
 }
diff --git a/icu4c/source/data/locales/ar_QA.txt b/icu4c/source/data/locales/ar_QA.txt
index 9ffd82c..2191745 100644
--- a/icu4c/source/data/locales/ar_QA.txt
+++ b/icu4c/source/data/locales/ar_QA.txt
@@ -7,11 +7,13 @@
 // *
 // ***************************************************************************
 ar_QA{
-    NumberPatterns{
-        "#0.###;#0.###-",
-        "¤#0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#0.00"}
+                decimalFormat{"#0.###;#0.###-"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/ar_SA.txt b/icu4c/source/data/locales/ar_SA.txt
index 60a4a2c..1159775 100644
--- a/icu4c/source/data/locales/ar_SA.txt
+++ b/icu4c/source/data/locales/ar_SA.txt
@@ -7,11 +7,13 @@
 // *
 // ***************************************************************************
 ar_SA{
-    NumberPatterns{
-        "#0.###;#0.###-",
-        "¤#0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#0.00"}
+                decimalFormat{"#0.###;#0.###-"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/ar_SY.txt b/icu4c/source/data/locales/ar_SY.txt
index a734b0b..b8179ac 100644
--- a/icu4c/source/data/locales/ar_SY.txt
+++ b/icu4c/source/data/locales/ar_SY.txt
@@ -7,11 +7,13 @@
 // *
 // ***************************************************************************
 ar_SY{
-    NumberPatterns{
-        "#0.###;#0.###-",
-        "¤#0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#0.00"}
+                decimalFormat{"#0.###;#0.###-"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/ar_TN.txt b/icu4c/source/data/locales/ar_TN.txt
index 46be58f..5693f0f 100644
--- a/icu4c/source/data/locales/ar_TN.txt
+++ b/icu4c/source/data/locales/ar_TN.txt
@@ -7,13 +7,16 @@
 // *
 // ***************************************************************************
 ar_TN{
-    NumberPatterns{
-        "#0.###;#0.###-",
-        "¤#0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        default{"latn"}
+        latn{
+            patterns{
+                currencyFormat{"¤#0.00"}
+                decimalFormat{"#0.###;#0.###-"}
+            }
+        }
     }
-    Version{"2.0.48.49"}
+    Version{"2.0.48.50"}
     calendar{
         gregorian{
             DateTimeElements:intvector{
@@ -79,5 +82,4 @@
             }
         }
     }
-    defaultNumberingSystem{"latn"}
 }
diff --git a/icu4c/source/data/locales/ar_YE.txt b/icu4c/source/data/locales/ar_YE.txt
index 277ab78..25a90a5 100644
--- a/icu4c/source/data/locales/ar_YE.txt
+++ b/icu4c/source/data/locales/ar_YE.txt
@@ -7,11 +7,13 @@
 // *
 // ***************************************************************************
 ar_YE{
-    NumberPatterns{
-        "#0.###;#0.###-",
-        "¤#0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#0.00"}
+                decimalFormat{"#0.###;#0.###-"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/as.txt b/icu4c/source/data/locales/as.txt
index 4b7e4f1..f312994 100644
--- a/icu4c/source/data/locales/as.txt
+++ b/icu4c/source/data/locales/as.txt
@@ -18,11 +18,14 @@
     LocaleScript{
         "Beng",
     }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/asa.txt b/icu4c/source/data/locales/asa.txt
index 9345600..ac747e4 100755
--- a/icu4c/source/data/locales/asa.txt
+++ b/icu4c/source/data/locales/asa.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/az.txt b/icu4c/source/data/locales/az.txt
index 86216bc..4094e30 100644
--- a/icu4c/source/data/locales/az.txt
+++ b/icu4c/source/data/locales/az.txt
@@ -17,24 +17,23 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/az_Cyrl.txt b/icu4c/source/data/locales/az_Cyrl.txt
index e6c19aa..84af02f 100644
--- a/icu4c/source/data/locales/az_Cyrl.txt
+++ b/icu4c/source/data/locales/az_Cyrl.txt
@@ -17,24 +17,23 @@
         "Cyrl",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/be.txt b/icu4c/source/data/locales/be.txt
index f9deea4..bf3d8ee 100644
--- a/icu4c/source/data/locales/be.txt
+++ b/icu4c/source/data/locales/be.txt
@@ -18,24 +18,18 @@
         "Cyrl",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.68"}
     calendar{
diff --git a/icu4c/source/data/locales/bem.txt b/icu4c/source/data/locales/bem.txt
index 989b2c0..41f13c0 100755
--- a/icu4c/source/data/locales/bem.txt
+++ b/icu4c/source/data/locales/bem.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.46.79"}
     calendar{
diff --git a/icu4c/source/data/locales/bez.txt b/icu4c/source/data/locales/bez.txt
index 74e8e6b..b04bfac 100755
--- a/icu4c/source/data/locales/bez.txt
+++ b/icu4c/source/data/locales/bez.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/bg.txt b/icu4c/source/data/locales/bg.txt
index 5ef11f9..f26b182 100644
--- a/icu4c/source/data/locales/bg.txt
+++ b/icu4c/source/data/locales/bg.txt
@@ -17,26 +17,25 @@
         "Cyrl",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/bm.txt b/icu4c/source/data/locales/bm.txt
index 0142491..0a0ea10 100755
--- a/icu4c/source/data/locales/bm.txt
+++ b/icu4c/source/data/locales/bm.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/bn.txt b/icu4c/source/data/locales/bn.txt
index 4fac16e..3f808a7 100644
--- a/icu4c/source/data/locales/bn.txt
+++ b/icu4c/source/data/locales/bn.txt
@@ -25,24 +25,32 @@
         "Beng",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "০",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "সংখ্যা না",
-        "+",
-    }
-    NumberPatterns{
-        "#,##,##0.###",
-        "#,##,##0.00¤;(#,##,##0.00¤)",
-        "#,##,##0%",
-        "#E0",
+        beng{
+            symbols{
+                nan{"সংখ্যা না"}
+            }
+        }
+        default{"beng"}
+        latn{
+            patterns{
+                currencyFormat{"#,##,##0.00¤;(#,##,##0.00¤)"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
@@ -401,7 +409,6 @@
             }
         }
     }
-    defaultNumberingSystem{"beng"}
     delimiters{
         alternateQuotationEnd{"’"}
         alternateQuotationStart{"‘"}
diff --git a/icu4c/source/data/locales/bo.txt b/icu4c/source/data/locales/bo.txt
index 94649f1..bb6bceb 100644
--- a/icu4c/source/data/locales/bo.txt
+++ b/icu4c/source/data/locales/bo.txt
@@ -26,11 +26,22 @@
     LocaleScript{
         "Tibt",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        default{"tibt"}
+        latn{
+            patterns{
+                percentFormat{"#,##0%"}
+            }
+            symbols{
+                group{","}
+                nan{"NaN"}
+            }
+        }
+        tibt{
+            symbols{
+                nan{"ཨང་མེན་"}
+            }
+        }
     }
     Version{"2.0.47.20"}
     calendar{
diff --git a/icu4c/source/data/locales/ca.txt b/icu4c/source/data/locales/ca.txt
index 4b43434..227aa4a 100644
--- a/icu4c/source/data/locales/ca.txt
+++ b/icu4c/source/data/locales/ca.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/cgg.txt b/icu4c/source/data/locales/cgg.txt
index aea0537..ede2b59 100755
--- a/icu4c/source/data/locales/cgg.txt
+++ b/icu4c/source/data/locales/cgg.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;-#,##0.00¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;-#,##0.00¤"}
+            }
+        }
     }
     Version{"2.0.46.52"}
     calendar{
diff --git a/icu4c/source/data/locales/chr.txt b/icu4c/source/data/locales/chr.txt
index 29f90b3..8d590ff 100755
--- a/icu4c/source/data/locales/chr.txt
+++ b/icu4c/source/data/locales/chr.txt
@@ -21,24 +21,26 @@
         "Cher",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.46.34"}
     calendar{
diff --git a/icu4c/source/data/locales/cs.txt b/icu4c/source/data/locales/cs.txt
index 286fd6a..3ce208e 100644
--- a/icu4c/source/data/locales/cs.txt
+++ b/icu4c/source/data/locales/cs.txt
@@ -19,24 +19,26 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/da.txt b/icu4c/source/data/locales/da.txt
index 49c3a94..c43b5d2 100644
--- a/icu4c/source/data/locales/da.txt
+++ b/icu4c/source/data/locales/da.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ",",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{","}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/dav.txt b/icu4c/source/data/locales/dav.txt
index 93bec84..f4a430d 100755
--- a/icu4c/source/data/locales/dav.txt
+++ b/icu4c/source/data/locales/dav.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/de.txt b/icu4c/source/data/locales/de.txt
index b391f8d..b782ebe 100644
--- a/icu4c/source/data/locales/de.txt
+++ b/icu4c/source/data/locales/de.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/de_AT.txt b/icu4c/source/data/locales/de_AT.txt
index d29f629..1f0cd35 100644
--- a/icu4c/source/data/locales/de_AT.txt
+++ b/icu4c/source/data/locales/de_AT.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 de_AT{
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0 %",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/de_CH.txt b/icu4c/source/data/locales/de_CH.txt
index d40c0b8..27c9c3e 100644
--- a/icu4c/source/data/locales/de_CH.txt
+++ b/icu4c/source/data/locales/de_CH.txt
@@ -8,24 +8,15 @@
 // ***************************************************************************
 de_CH{
     NumberElements{
-        ".",
-        "'",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00;¤-#,##0.00",
-        "#,##0 %",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00;¤-#,##0.00"}
+            }
+            symbols{
+                decimal{"."}
+                group{"'"}
+            }
+        }
     }
     Version{"2.0.47.67"}
     delimiters{
diff --git a/icu4c/source/data/locales/de_LI.txt b/icu4c/source/data/locales/de_LI.txt
index 4b89c81..c360bd1 100644
--- a/icu4c/source/data/locales/de_LI.txt
+++ b/icu4c/source/data/locales/de_LI.txt
@@ -8,24 +8,15 @@
 // ***************************************************************************
 de_LI{
     NumberElements{
-        ".",
-        "'",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0 %",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+            }
+            symbols{
+                decimal{"."}
+                group{"'"}
+            }
+        }
     }
     Version{"2.0.41.23"}
 }
diff --git a/icu4c/source/data/locales/ebu.txt b/icu4c/source/data/locales/ebu.txt
index 8b9d2dd..1adbb01 100755
--- a/icu4c/source/data/locales/ebu.txt
+++ b/icu4c/source/data/locales/ebu.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/ee.txt b/icu4c/source/data/locales/ee.txt
index 88dcf3f..155f942 100755
--- a/icu4c/source/data/locales/ee.txt
+++ b/icu4c/source/data/locales/ee.txt
@@ -19,11 +19,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/el.txt b/icu4c/source/data/locales/el.txt
index 8024d2d..c32ce0e 100644
--- a/icu4c/source/data/locales/el.txt
+++ b/icu4c/source/data/locales/el.txt
@@ -17,26 +17,26 @@
         "Grek",
     }
     NumberElements{
-        ",",
-        ".",
-        ",",
-        "%",
-        "0",
-        "#",
-        "-",
-        "e",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                percentFormat{"#,##0%"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"e"}
+                group{"."}
+                infinity{"∞"}
+                list{","}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/el_CY.txt b/icu4c/source/data/locales/el_CY.txt
index 67a194f..9f71a9f 100644
--- a/icu4c/source/data/locales/el_CY.txt
+++ b/icu4c/source/data/locales/el_CY.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 el_CY{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.82"}
 }
diff --git a/icu4c/source/data/locales/en.txt b/icu4c/source/data/locales/en.txt
index 0eab15b..a34c20f 100644
--- a/icu4c/source/data/locales/en.txt
+++ b/icu4c/source/data/locales/en.txt
@@ -21,26 +21,28 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/en_AU.txt b/icu4c/source/data/locales/en_AU.txt
index 93a7c32..2b2f2c6 100644
--- a/icu4c/source/data/locales/en_AU.txt
+++ b/icu4c/source/data/locales/en_AU.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_AU{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.47.52"}
     calendar{
diff --git a/icu4c/source/data/locales/en_BE.txt b/icu4c/source/data/locales/en_BE.txt
index 7757c90..0ffd048 100644
--- a/icu4c/source/data/locales/en_BE.txt
+++ b/icu4c/source/data/locales/en_BE.txt
@@ -8,24 +8,15 @@
 // ***************************************************************************
 en_BE{
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/en_BW.txt b/icu4c/source/data/locales/en_BW.txt
index 8c559ce..9ec8fe4 100644
--- a/icu4c/source/data/locales/en_BW.txt
+++ b/icu4c/source/data/locales/en_BW.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_BW{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/en_BZ.txt b/icu4c/source/data/locales/en_BZ.txt
index c7858c8..c6d2bf5 100644
--- a/icu4c/source/data/locales/en_BZ.txt
+++ b/icu4c/source/data/locales/en_BZ.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_BZ{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/en_CA.txt b/icu4c/source/data/locales/en_CA.txt
index 82c80c8..f24ed1a 100644
--- a/icu4c/source/data/locales/en_CA.txt
+++ b/icu4c/source/data/locales/en_CA.txt
@@ -11,7 +11,7 @@
         279,
         216,
     }
-    Version{"2.0.48.53"}
+    Version{"2.0.48.69"}
     calendar{
         gregorian{
             DateTimeElements:intvector{
diff --git a/icu4c/source/data/locales/en_GB.txt b/icu4c/source/data/locales/en_GB.txt
index 502acaa..67563b8 100644
--- a/icu4c/source/data/locales/en_GB.txt
+++ b/icu4c/source/data/locales/en_GB.txt
@@ -8,11 +8,12 @@
 // ***************************************************************************
 en_GB{
     ExemplarCharactersCurrency{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.99"}
     calendar{
diff --git a/icu4c/source/data/locales/en_IE.txt b/icu4c/source/data/locales/en_IE.txt
index 6d253fc..55060c4 100644
--- a/icu4c/source/data/locales/en_IE.txt
+++ b/icu4c/source/data/locales/en_IE.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_IE{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/en_IN.txt b/icu4c/source/data/locales/en_IN.txt
index 1de5721..c9bd846 100644
--- a/icu4c/source/data/locales/en_IN.txt
+++ b/icu4c/source/data/locales/en_IN.txt
@@ -7,11 +7,14 @@
 // *
 // ***************************************************************************
 en_IN{
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/en_JM.txt b/icu4c/source/data/locales/en_JM.txt
index 468baf8..418129f 100644
--- a/icu4c/source/data/locales/en_JM.txt
+++ b/icu4c/source/data/locales/en_JM.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_JM{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/en_MT.txt b/icu4c/source/data/locales/en_MT.txt
index c1c09ac..0cf3421 100644
--- a/icu4c/source/data/locales/en_MT.txt
+++ b/icu4c/source/data/locales/en_MT.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_MT{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/en_NA.txt b/icu4c/source/data/locales/en_NA.txt
index 3b04d98..a77eff4 100644
--- a/icu4c/source/data/locales/en_NA.txt
+++ b/icu4c/source/data/locales/en_NA.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_NA{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.41.23"}
 }
diff --git a/icu4c/source/data/locales/en_NZ.txt b/icu4c/source/data/locales/en_NZ.txt
index 8c8b871..12334b2 100644
--- a/icu4c/source/data/locales/en_NZ.txt
+++ b/icu4c/source/data/locales/en_NZ.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_NZ{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/en_TT.txt b/icu4c/source/data/locales/en_TT.txt
index 63ca42b..4832803 100644
--- a/icu4c/source/data/locales/en_TT.txt
+++ b/icu4c/source/data/locales/en_TT.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_TT{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.41.23"}
     calendar{
diff --git a/icu4c/source/data/locales/en_US_POSIX.txt b/icu4c/source/data/locales/en_US_POSIX.txt
index 8ce79e4..99779ba5 100644
--- a/icu4c/source/data/locales/en_US_POSIX.txt
+++ b/icu4c/source/data/locales/en_US_POSIX.txt
@@ -11,24 +11,18 @@
  */
 en_US_POSIX{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "0/00",
-        "INF",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#0.######",
-        "¤ #0.00",
-        "#0%",
-        "0.000000E+000",
+        latn{
+            patterns{
+                currencyFormat{"¤ #0.00"}
+                decimalFormat{"#0.######"}
+                percentFormat{"#0%"}
+                scientificFormat{"0.000000E+000"}
+            }
+            symbols{
+                infinity{"INF"}
+                perMille{"0/00"}
+            }
+        }
     }
     Version{"2.0.45.82"}
 }
diff --git a/icu4c/source/data/locales/en_ZA.txt b/icu4c/source/data/locales/en_ZA.txt
index 518a27f..306e35a 100644
--- a/icu4c/source/data/locales/en_ZA.txt
+++ b/icu4c/source/data/locales/en_ZA.txt
@@ -12,24 +12,15 @@
         " ŭ û ü ū ÿ]"
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/en_ZW.txt b/icu4c/source/data/locales/en_ZW.txt
index 6b28f0d..57d3e24 100644
--- a/icu4c/source/data/locales/en_ZW.txt
+++ b/icu4c/source/data/locales/en_ZW.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 en_ZW{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/eo.txt b/icu4c/source/data/locales/eo.txt
index c41cad7..8934714 100644
--- a/icu4c/source/data/locales/eo.txt
+++ b/icu4c/source/data/locales/eo.txt
@@ -17,18 +17,12 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/es.txt b/icu4c/source/data/locales/es.txt
index f8d37c7..210c249 100644
--- a/icu4c/source/data/locales/es.txt
+++ b/icu4c/source/data/locales/es.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/es_CL.txt b/icu4c/source/data/locales/es_CL.txt
index 1792bc0..ab685ef 100644
--- a/icu4c/source/data/locales/es_CL.txt
+++ b/icu4c/source/data/locales/es_CL.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 es_CL{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;¤-#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;¤-#,##0.00"}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/es_DO.txt b/icu4c/source/data/locales/es_DO.txt
index beb3f14..e7ef1c7 100644
--- a/icu4c/source/data/locales/es_DO.txt
+++ b/icu4c/source/data/locales/es_DO.txt
@@ -8,18 +8,12 @@
 // ***************************************************************************
 es_DO{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     Version{"2.0.41.23"}
 }
diff --git a/icu4c/source/data/locales/es_EC.txt b/icu4c/source/data/locales/es_EC.txt
index 58f66fe..16747fb 100644
--- a/icu4c/source/data/locales/es_EC.txt
+++ b/icu4c/source/data/locales/es_EC.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 es_EC{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;¤-#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;¤-#,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/es_GT.txt b/icu4c/source/data/locales/es_GT.txt
index 3d35279..ba23056 100644
--- a/icu4c/source/data/locales/es_GT.txt
+++ b/icu4c/source/data/locales/es_GT.txt
@@ -8,18 +8,12 @@
 // ***************************************************************************
 es_GT{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/es_HN.txt b/icu4c/source/data/locales/es_HN.txt
index 9b92df0..33b0bde 100644
--- a/icu4c/source/data/locales/es_HN.txt
+++ b/icu4c/source/data/locales/es_HN.txt
@@ -8,18 +8,12 @@
 // ***************************************************************************
 es_HN{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/es_MX.txt b/icu4c/source/data/locales/es_MX.txt
index 31e8876..493309f 100644
--- a/icu4c/source/data/locales/es_MX.txt
+++ b/icu4c/source/data/locales/es_MX.txt
@@ -8,18 +8,12 @@
 // ***************************************************************************
 es_MX{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/es_NI.txt b/icu4c/source/data/locales/es_NI.txt
index 56723e3..e9bedd6 100644
--- a/icu4c/source/data/locales/es_NI.txt
+++ b/icu4c/source/data/locales/es_NI.txt
@@ -8,18 +8,12 @@
 // ***************************************************************************
 es_NI{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/es_PA.txt b/icu4c/source/data/locales/es_PA.txt
index fcff9b5..2c41d9a 100644
--- a/icu4c/source/data/locales/es_PA.txt
+++ b/icu4c/source/data/locales/es_PA.txt
@@ -8,18 +8,12 @@
 // ***************************************************************************
 es_PA{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/es_PE.txt b/icu4c/source/data/locales/es_PE.txt
index dd5cea1..66551eb 100644
--- a/icu4c/source/data/locales/es_PE.txt
+++ b/icu4c/source/data/locales/es_PE.txt
@@ -8,18 +8,12 @@
 // ***************************************************************************
 es_PE{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     Version{"2.0.47.43"}
     calendar{
diff --git a/icu4c/source/data/locales/es_PR.txt b/icu4c/source/data/locales/es_PR.txt
index 51f44d7..25e08ff 100644
--- a/icu4c/source/data/locales/es_PR.txt
+++ b/icu4c/source/data/locales/es_PR.txt
@@ -8,18 +8,12 @@
 // ***************************************************************************
 es_PR{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/es_PY.txt b/icu4c/source/data/locales/es_PY.txt
index 6736087..816fd92 100644
--- a/icu4c/source/data/locales/es_PY.txt
+++ b/icu4c/source/data/locales/es_PY.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 es_PY{
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00;¤ -#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00;¤ -#,##0.00"}
+            }
+        }
     }
     Version{"2.0.41.23"}
 }
diff --git a/icu4c/source/data/locales/es_SV.txt b/icu4c/source/data/locales/es_SV.txt
index 2dca044..e24561f 100644
--- a/icu4c/source/data/locales/es_SV.txt
+++ b/icu4c/source/data/locales/es_SV.txt
@@ -8,18 +8,12 @@
 // ***************************************************************************
 es_SV{
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/es_US.txt b/icu4c/source/data/locales/es_US.txt
index 00f8de7..d62684c 100644
--- a/icu4c/source/data/locales/es_US.txt
+++ b/icu4c/source/data/locales/es_US.txt
@@ -9,18 +9,12 @@
 es_US{
     MeasurementSystem:int{1}
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/es_UY.txt b/icu4c/source/data/locales/es_UY.txt
index 8f86618..680e59d 100644
--- a/icu4c/source/data/locales/es_UY.txt
+++ b/icu4c/source/data/locales/es_UY.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 es_UY{
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00;(¤ #,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00;(¤ #,##0.00)"}
+            }
+        }
     }
     Version{"2.0.41.23"}
 }
diff --git a/icu4c/source/data/locales/es_VE.txt b/icu4c/source/data/locales/es_VE.txt
index 10fa353..d54ad51 100644
--- a/icu4c/source/data/locales/es_VE.txt
+++ b/icu4c/source/data/locales/es_VE.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 es_VE{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;¤-#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;¤-#,##0.00"}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/et.txt b/icu4c/source/data/locales/et.txt
index f9bec74..72e3905 100644
--- a/icu4c/source/data/locales/et.txt
+++ b/icu4c/source/data/locales/et.txt
@@ -17,26 +17,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/eu.txt b/icu4c/source/data/locales/eu.txt
index 8b8159f..610f5d3 100644
--- a/icu4c/source/data/locales/eu.txt
+++ b/icu4c/source/data/locales/eu.txt
@@ -18,26 +18,27 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             eras{
diff --git a/icu4c/source/data/locales/fa.txt b/icu4c/source/data/locales/fa.txt
index 2e4e2c1..9f9d5d5 100644
--- a/icu4c/source/data/locales/fa.txt
+++ b/icu4c/source/data/locales/fa.txt
@@ -23,24 +23,37 @@
         "Arab",
     }
     NumberElements{
-        "٫",
-        "٬",
-        "؛",
-        "٪",
-        "۰",
-        "#",
-        "−",
-        "×۱۰^",
-        "؉",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###;'‪'-#,##0.###'‬'",
-        "#,##0.00 ¤;'‪'-#,##0.00'‬' ¤",
-        "'‪'%#,##0'‬'",
-        "#E0",
+        arabext{
+            symbols{
+                decimal{"٫"}
+                exponential{"×۱۰^"}
+                group{"٬"}
+                list{"؛"}
+                perMille{"؉"}
+                percentSign{"٪"}
+            }
+        }
+        default{"arabext"}
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤;'‪'-#,##0.00'‬' ¤"}
+                decimalFormat{"#,##0.###;'‪'-#,##0.###'‬'"}
+                percentFormat{"'‪'%#,##0'‬'"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"/"}
+                exponential{"E"}
+                group{"،"}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"−"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.72"}
     calendar{
@@ -512,7 +525,6 @@
             }
         }
     }
-    defaultNumberingSystem{"arabext"}
     delimiters{
         alternateQuotationEnd{"›"}
         alternateQuotationStart{"‹"}
diff --git a/icu4c/source/data/locales/fa_AF.txt b/icu4c/source/data/locales/fa_AF.txt
index bdd3bc2..86b6069 100644
--- a/icu4c/source/data/locales/fa_AF.txt
+++ b/icu4c/source/data/locales/fa_AF.txt
@@ -8,11 +8,12 @@
 // ***************************************************************************
 fa_AF{
     AuxExemplarCharacters{"[\u0656 \u0670 \u200C \u200D ټ ځ څ ډ ړ ږ ښ ګ ڼ ي]"}
-    NumberPatterns{
-        "#,##0.###;'‪'-#,##0.###'‬'",
-        "#,##0.00 ¤;'‪'-#,##0.00'‬' ¤",
-        "'‪'#,##0%'‬'",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                percentFormat{"'‪'#,##0%'‬'"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/ff.txt b/icu4c/source/data/locales/ff.txt
index 060c1e1..3820543 100755
--- a/icu4c/source/data/locales/ff.txt
+++ b/icu4c/source/data/locales/ff.txt
@@ -17,24 +17,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.46.85"}
     calendar{
diff --git a/icu4c/source/data/locales/fi.txt b/icu4c/source/data/locales/fi.txt
index 11b696a..0db019e 100644
--- a/icu4c/source/data/locales/fi.txt
+++ b/icu4c/source/data/locales/fi.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "epäluku",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"epäluku"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/fil.txt b/icu4c/source/data/locales/fil.txt
index 412254d..eca05bc 100755
--- a/icu4c/source/data/locales/fil.txt
+++ b/icu4c/source/data/locales/fil.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/fo.txt b/icu4c/source/data/locales/fo.txt
index 3c4fe93..e1d6868 100644
--- a/icu4c/source/data/locales/fo.txt
+++ b/icu4c/source/data/locales/fo.txt
@@ -17,24 +17,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;¤-#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;¤-#,##0.00"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/fr.txt b/icu4c/source/data/locales/fr.txt
index edaa865..1c53498 100644
--- a/icu4c/source/data/locales/fr.txt
+++ b/icu4c/source/data/locales/fr.txt
@@ -21,26 +21,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/fr_BE.txt b/icu4c/source/data/locales/fr_BE.txt
index 4f0e4a2..233dc4d 100644
--- a/icu4c/source/data/locales/fr_BE.txt
+++ b/icu4c/source/data/locales/fr_BE.txt
@@ -8,18 +8,11 @@
 // ***************************************************************************
 fr_BE{
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                group{"."}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/fr_CA.txt b/icu4c/source/data/locales/fr_CA.txt
index f77d058..01c9369 100644
--- a/icu4c/source/data/locales/fr_CA.txt
+++ b/icu4c/source/data/locales/fr_CA.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 fr_CA{
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤;(#,##0.00 ¤)",
-        "#,##0 %",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤;(#,##0.00 ¤)"}
+            }
+        }
     }
     PaperSize:intvector{
         279,
diff --git a/icu4c/source/data/locales/fr_CH.txt b/icu4c/source/data/locales/fr_CH.txt
index be16f75..a8cbeeb 100644
--- a/icu4c/source/data/locales/fr_CH.txt
+++ b/icu4c/source/data/locales/fr_CH.txt
@@ -8,24 +8,15 @@
 // ***************************************************************************
 fr_CH{
     NumberElements{
-        ".",
-        "'",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00;¤-#,##0.00",
-        "#,##0 %",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00;¤-#,##0.00"}
+            }
+            symbols{
+                decimal{"."}
+                group{"'"}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/fr_LU.txt b/icu4c/source/data/locales/fr_LU.txt
index d23f59c..3e151e2 100644
--- a/icu4c/source/data/locales/fr_LU.txt
+++ b/icu4c/source/data/locales/fr_LU.txt
@@ -8,18 +8,11 @@
 // ***************************************************************************
 fr_LU{
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                group{"."}
+            }
+        }
     }
     Version{"2.0.41.23"}
 }
diff --git a/icu4c/source/data/locales/ga.txt b/icu4c/source/data/locales/ga.txt
index df0db82..beb9fdb 100644
--- a/icu4c/source/data/locales/ga.txt
+++ b/icu4c/source/data/locales/ga.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/gl.txt b/icu4c/source/data/locales/gl.txt
index 6b19c3f..38686ca 100644
--- a/icu4c/source/data/locales/gl.txt
+++ b/icu4c/source/data/locales/gl.txt
@@ -17,24 +17,26 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/gsw.txt b/icu4c/source/data/locales/gsw.txt
index 8a7f829..37de45c 100644
--- a/icu4c/source/data/locales/gsw.txt
+++ b/icu4c/source/data/locales/gsw.txt
@@ -17,26 +17,28 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        "’",
-        ";",
-        "%",
-        "0",
-        "#",
-        "−",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{"’"}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"−"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/gu.txt b/icu4c/source/data/locales/gu.txt
index 5c6ff7b..6f517da 100644
--- a/icu4c/source/data/locales/gu.txt
+++ b/icu4c/source/data/locales/gu.txt
@@ -23,11 +23,14 @@
     LocaleScript{
         "Gujr",
     }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/guz.txt b/icu4c/source/data/locales/guz.txt
index c878b10..958a3df 100755
--- a/icu4c/source/data/locales/guz.txt
+++ b/icu4c/source/data/locales/guz.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/gv.txt b/icu4c/source/data/locales/gv.txt
index ba657c8..42e045a 100644
--- a/icu4c/source/data/locales/gv.txt
+++ b/icu4c/source/data/locales/gv.txt
@@ -14,11 +14,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/ha.txt b/icu4c/source/data/locales/ha.txt
index 06c57d1..21298c5 100755
--- a/icu4c/source/data/locales/ha.txt
+++ b/icu4c/source/data/locales/ha.txt
@@ -18,24 +18,18 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     Version{"2.0.47.68"}
     calendar{
diff --git a/icu4c/source/data/locales/haw.txt b/icu4c/source/data/locales/haw.txt
index 5f26b31..8e5b359 100644
--- a/icu4c/source/data/locales/haw.txt
+++ b/icu4c/source/data/locales/haw.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.47.68"}
     calendar{
diff --git a/icu4c/source/data/locales/he.txt b/icu4c/source/data/locales/he.txt
index d771202..5792df9 100644
--- a/icu4c/source/data/locales/he.txt
+++ b/icu4c/source/data/locales/he.txt
@@ -22,26 +22,28 @@
         "Hebr",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/hi.txt b/icu4c/source/data/locales/hi.txt
index 22416a9..4663666 100644
--- a/icu4c/source/data/locales/hi.txt
+++ b/icu4c/source/data/locales/hi.txt
@@ -24,26 +24,29 @@
         "Deva",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "०",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        default{"deva"}
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         ethiopic{
             monthNames{
@@ -781,7 +784,6 @@
             }
         }
     }
-    defaultNumberingSystem{"deva"}
     delimiters{
         alternateQuotationEnd{"\""}
         alternateQuotationStart{"\""}
diff --git a/icu4c/source/data/locales/hr.txt b/icu4c/source/data/locales/hr.txt
index e81d42d..f901c57 100644
--- a/icu4c/source/data/locales/hr.txt
+++ b/icu4c/source/data/locales/hr.txt
@@ -21,26 +21,17 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/hu.txt b/icu4c/source/data/locales/hu.txt
index 5332db3..091359e 100644
--- a/icu4c/source/data/locales/hu.txt
+++ b/icu4c/source/data/locales/hu.txt
@@ -24,26 +24,27 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             eras{
diff --git a/icu4c/source/data/locales/hy.txt b/icu4c/source/data/locales/hy.txt
index adb90be..e2b2123 100644
--- a/icu4c/source/data/locales/hy.txt
+++ b/icu4c/source/data/locales/hy.txt
@@ -18,24 +18,17 @@
         "Armn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#0.###",
-        "#0.00 ¤",
-        "#0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#0.00 ¤"}
+                decimalFormat{"#0.###"}
+                percentFormat{"#0%"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/id.txt b/icu4c/source/data/locales/id.txt
index b3b7fac..a5ceb24 100644
--- a/icu4c/source/data/locales/id.txt
+++ b/icu4c/source/data/locales/id.txt
@@ -16,26 +16,17 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.56"}
+    Version{"2.0.48.72"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/ig.txt b/icu4c/source/data/locales/ig.txt
index ecae353..5414687 100755
--- a/icu4c/source/data/locales/ig.txt
+++ b/icu4c/source/data/locales/ig.txt
@@ -18,11 +18,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.46.79"}
     calendar{
diff --git a/icu4c/source/data/locales/ii.txt b/icu4c/source/data/locales/ii.txt
index 38d26e4..d09434c 100755
--- a/icu4c/source/data/locales/ii.txt
+++ b/icu4c/source/data/locales/ii.txt
@@ -15,18 +15,12 @@
         "Yiii",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/is.txt b/icu4c/source/data/locales/is.txt
index 1be2aad..35e6846 100644
--- a/icu4c/source/data/locales/is.txt
+++ b/icu4c/source/data/locales/is.txt
@@ -18,24 +18,26 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "−",
-        "×10^",
-        "‰",
-        "∞",
-        "EiTa",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"×10^"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"−"}
+                nan{"EiTa"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.72"}
     calendar{
diff --git a/icu4c/source/data/locales/it.txt b/icu4c/source/data/locales/it.txt
index ec7e301..228dd8c 100644
--- a/icu4c/source/data/locales/it.txt
+++ b/icu4c/source/data/locales/it.txt
@@ -18,24 +18,18 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.69"}
     calendar{
diff --git a/icu4c/source/data/locales/it_CH.txt b/icu4c/source/data/locales/it_CH.txt
index 1290908..1ed34ad 100644
--- a/icu4c/source/data/locales/it_CH.txt
+++ b/icu4c/source/data/locales/it_CH.txt
@@ -8,24 +8,15 @@
 // ***************************************************************************
 it_CH{
     NumberElements{
-        ".",
-        "'",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00;¤-#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00;¤-#,##0.00"}
+            }
+            symbols{
+                decimal{"."}
+                group{"'"}
+            }
+        }
     }
     Version{"2.0.46.25"}
     calendar{
diff --git a/icu4c/source/data/locales/ja.txt b/icu4c/source/data/locales/ja.txt
index c71a84d..714de0f 100644
--- a/icu4c/source/data/locales/ja.txt
+++ b/icu4c/source/data/locales/ja.txt
@@ -74,26 +74,20 @@
         "Hani",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/jmc.txt b/icu4c/source/data/locales/jmc.txt
index 65cde05..7f06c6f 100755
--- a/icu4c/source/data/locales/jmc.txt
+++ b/icu4c/source/data/locales/jmc.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/ka.txt b/icu4c/source/data/locales/ka.txt
index ef5c6f2..fd9b830 100644
--- a/icu4c/source/data/locales/ka.txt
+++ b/icu4c/source/data/locales/ka.txt
@@ -22,20 +22,22 @@
         "Geor",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             quarters{
diff --git a/icu4c/source/data/locales/kab.txt b/icu4c/source/data/locales/kab.txt
index dbf9568..d7adccd 100755
--- a/icu4c/source/data/locales/kab.txt
+++ b/icu4c/source/data/locales/kab.txt
@@ -17,24 +17,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.70"}
     calendar{
diff --git a/icu4c/source/data/locales/kam.txt b/icu4c/source/data/locales/kam.txt
index c270ccf..52d52cb 100755
--- a/icu4c/source/data/locales/kam.txt
+++ b/icu4c/source/data/locales/kam.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.46.85"}
     calendar{
diff --git a/icu4c/source/data/locales/kde.txt b/icu4c/source/data/locales/kde.txt
index a023fb9..633f6c6 100755
--- a/icu4c/source/data/locales/kde.txt
+++ b/icu4c/source/data/locales/kde.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/kea.txt b/icu4c/source/data/locales/kea.txt
index db5c008..468af8a 100755
--- a/icu4c/source/data/locales/kea.txt
+++ b/icu4c/source/data/locales/kea.txt
@@ -17,24 +17,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/khq.txt b/icu4c/source/data/locales/khq.txt
index 2ac5812..f437de0 100755
--- a/icu4c/source/data/locales/khq.txt
+++ b/icu4c/source/data/locales/khq.txt
@@ -17,24 +17,14 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+            symbols{
+                group{" "}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/ki.txt b/icu4c/source/data/locales/ki.txt
index 50543ad..73adae7 100755
--- a/icu4c/source/data/locales/ki.txt
+++ b/icu4c/source/data/locales/ki.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/kk.txt b/icu4c/source/data/locales/kk.txt
index 86b119a..34d59af 100644
--- a/icu4c/source/data/locales/kk.txt
+++ b/icu4c/source/data/locales/kk.txt
@@ -19,24 +19,15 @@
         "Cyrl",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/kl.txt b/icu4c/source/data/locales/kl.txt
index b14461b..5082754 100644
--- a/icu4c/source/data/locales/kl.txt
+++ b/icu4c/source/data/locales/kl.txt
@@ -18,24 +18,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;¤-#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;¤-#,##0.00"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/kln.txt b/icu4c/source/data/locales/kln.txt
index 7b7955c..b3bb44c 100755
--- a/icu4c/source/data/locales/kln.txt
+++ b/icu4c/source/data/locales/kln.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/km.txt b/icu4c/source/data/locales/km.txt
index 756a5aa..f2becb8 100644
--- a/icu4c/source/data/locales/km.txt
+++ b/icu4c/source/data/locales/km.txt
@@ -21,24 +21,15 @@
         "Khmr",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/kn.txt b/icu4c/source/data/locales/kn.txt
index 42a513f..4a0996f 100644
--- a/icu4c/source/data/locales/kn.txt
+++ b/icu4c/source/data/locales/kn.txt
@@ -23,24 +23,14 @@
         "Knda",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "೦",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+        default{"knda"}
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
@@ -156,5 +146,4 @@
             }
         }
     }
-    defaultNumberingSystem{"knda"}
 }
diff --git a/icu4c/source/data/locales/ko.txt b/icu4c/source/data/locales/ko.txt
index 166585e..58926fe 100644
--- a/icu4c/source/data/locales/ko.txt
+++ b/icu4c/source/data/locales/ko.txt
@@ -40,26 +40,28 @@
         "Hani",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.56"}
+    Version{"2.0.48.72"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/kok.txt b/icu4c/source/data/locales/kok.txt
index f00e343..e94e4de 100644
--- a/icu4c/source/data/locales/kok.txt
+++ b/icu4c/source/data/locales/kok.txt
@@ -20,11 +20,14 @@
     LocaleScript{
         "Deva",
     }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
     Version{"2.0.47.68"}
     calendar{
diff --git a/icu4c/source/data/locales/kw.txt b/icu4c/source/data/locales/kw.txt
index 11731ac..6221518 100644
--- a/icu4c/source/data/locales/kw.txt
+++ b/icu4c/source/data/locales/kw.txt
@@ -14,11 +14,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/lg.txt b/icu4c/source/data/locales/lg.txt
index 3e10e08..528da30 100755
--- a/icu4c/source/data/locales/lg.txt
+++ b/icu4c/source/data/locales/lg.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/lt.txt b/icu4c/source/data/locales/lt.txt
index b8bb57f..1570b2a 100644
--- a/icu4c/source/data/locales/lt.txt
+++ b/icu4c/source/data/locales/lt.txt
@@ -21,26 +21,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "−",
-        "×10^",
-        "‰",
-        "∞",
-        "¤¤¤",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"×10^"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"−"}
+                nan{"¤¤¤"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/luo.txt b/icu4c/source/data/locales/luo.txt
index ae4b0c6..070d28a 100755
--- a/icu4c/source/data/locales/luo.txt
+++ b/icu4c/source/data/locales/luo.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/luy.txt b/icu4c/source/data/locales/luy.txt
index cd11642..f568f6a 100755
--- a/icu4c/source/data/locales/luy.txt
+++ b/icu4c/source/data/locales/luy.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;¤- #,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;¤- #,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/lv.txt b/icu4c/source/data/locales/lv.txt
index 941b563..8ef8022 100644
--- a/icu4c/source/data/locales/lv.txt
+++ b/icu4c/source/data/locales/lv.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "−",
-        "E",
-        "‰",
-        "∞",
-        "nav skaitlis",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"−"}
+                nan{"nav skaitlis"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/mas.txt b/icu4c/source/data/locales/mas.txt
index 209bf98..2f59951 100755
--- a/icu4c/source/data/locales/mas.txt
+++ b/icu4c/source/data/locales/mas.txt
@@ -19,11 +19,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.46.85"}
     calendar{
diff --git a/icu4c/source/data/locales/mer.txt b/icu4c/source/data/locales/mer.txt
index 0d194a8..2b55409 100755
--- a/icu4c/source/data/locales/mer.txt
+++ b/icu4c/source/data/locales/mer.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/mfe.txt b/icu4c/source/data/locales/mfe.txt
index 2f6e343..d6a1fa7 100755
--- a/icu4c/source/data/locales/mfe.txt
+++ b/icu4c/source/data/locales/mfe.txt
@@ -16,18 +16,11 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/mg.txt b/icu4c/source/data/locales/mg.txt
index 196af01..7c43151 100755
--- a/icu4c/source/data/locales/mg.txt
+++ b/icu4c/source/data/locales/mg.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/mk.txt b/icu4c/source/data/locales/mk.txt
index fa22088..897748b 100644
--- a/icu4c/source/data/locales/mk.txt
+++ b/icu4c/source/data/locales/mk.txt
@@ -18,24 +18,15 @@
         "Cyrl",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                decimalFormat{"#,##0.###"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/ml.txt b/icu4c/source/data/locales/ml.txt
index 28ecc4f..acc17f0 100644
--- a/icu4c/source/data/locales/ml.txt
+++ b/icu4c/source/data/locales/ml.txt
@@ -21,24 +21,26 @@
         "Mlym",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##,##0.###",
-        "#,##,##0.00¤",
-        "#,##,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##,##0.00¤"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/mr.txt b/icu4c/source/data/locales/mr.txt
index 956ee65..2839603 100644
--- a/icu4c/source/data/locales/mr.txt
+++ b/icu4c/source/data/locales/mr.txt
@@ -24,24 +24,14 @@
         "Deva",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "०",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+        default{"deva"}
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
@@ -205,7 +195,6 @@
             }
         }
     }
-    defaultNumberingSystem{"deva"}
     delimiters{
         alternateQuotationEnd{"\""}
         alternateQuotationStart{"\""}
diff --git a/icu4c/source/data/locales/ms.txt b/icu4c/source/data/locales/ms.txt
index 7bd74b2..6df893c 100644
--- a/icu4c/source/data/locales/ms.txt
+++ b/icu4c/source/data/locales/ms.txt
@@ -17,13 +17,14 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
-    Version{"2.0.48.56"}
+    Version{"2.0.48.72"}
     calendar{
         gregorian{
             availableFormats{
diff --git a/icu4c/source/data/locales/ms_BN.txt b/icu4c/source/data/locales/ms_BN.txt
index 1beef6c..fa09c55 100644
--- a/icu4c/source/data/locales/ms_BN.txt
+++ b/icu4c/source/data/locales/ms_BN.txt
@@ -8,24 +8,15 @@
 // ***************************************************************************
 ms_BN{
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/mt.txt b/icu4c/source/data/locales/mt.txt
index 9ede8d6..45966d4 100644
--- a/icu4c/source/data/locales/mt.txt
+++ b/icu4c/source/data/locales/mt.txt
@@ -17,24 +17,15 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
diff --git a/icu4c/source/data/locales/naq.txt b/icu4c/source/data/locales/naq.txt
index 1ebe56981..16c20fb 100755
--- a/icu4c/source/data/locales/naq.txt
+++ b/icu4c/source/data/locales/naq.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.46.85"}
     calendar{
diff --git a/icu4c/source/data/locales/nb.txt b/icu4c/source/data/locales/nb.txt
index 3038951..2cc1ba8 100644
--- a/icu4c/source/data/locales/nb.txt
+++ b/icu4c/source/data/locales/nb.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0 %",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/nd.txt b/icu4c/source/data/locales/nd.txt
index 0312808..8f0593b 100755
--- a/icu4c/source/data/locales/nd.txt
+++ b/icu4c/source/data/locales/nd.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/ne.txt b/icu4c/source/data/locales/ne.txt
index 4300b7c..f6f744d 100755
--- a/icu4c/source/data/locales/ne.txt
+++ b/icu4c/source/data/locales/ne.txt
@@ -19,18 +19,15 @@
         "Deva",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "०",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        default{"deva"}
+        latn{
+            symbols{
+                decimal{"."}
+                group{","}
+                list{";"}
+                minusSign{"-"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
@@ -128,7 +125,6 @@
             }
         }
     }
-    defaultNumberingSystem{"deva"}
     delimiters{
         alternateQuotationEnd{"\""}
         alternateQuotationStart{"\""}
diff --git a/icu4c/source/data/locales/nl.txt b/icu4c/source/data/locales/nl.txt
index 4ee6a6a..530c316 100644
--- a/icu4c/source/data/locales/nl.txt
+++ b/icu4c/source/data/locales/nl.txt
@@ -21,26 +21,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00;¤ #,##0.00-"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00;¤ #,##0.00-",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/nl_BE.txt b/icu4c/source/data/locales/nl_BE.txt
index ba74c18..ff3205e 100644
--- a/icu4c/source/data/locales/nl_BE.txt
+++ b/icu4c/source/data/locales/nl_BE.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 nl_BE{
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/nn.txt b/icu4c/source/data/locales/nn.txt
index c57c330..7357ac1 100644
--- a/icu4c/source/data/locales/nn.txt
+++ b/icu4c/source/data/locales/nn.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "−",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"−"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/nyn.txt b/icu4c/source/data/locales/nyn.txt
index 7352667..a012262 100755
--- a/icu4c/source/data/locales/nyn.txt
+++ b/icu4c/source/data/locales/nyn.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;-#,##0.00¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;-#,##0.00¤"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/om.txt b/icu4c/source/data/locales/om.txt
index 17ed653..252e5de 100644
--- a/icu4c/source/data/locales/om.txt
+++ b/icu4c/source/data/locales/om.txt
@@ -15,13 +15,14 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/or.txt b/icu4c/source/data/locales/or.txt
index bd294ee..5d0562f 100644
--- a/icu4c/source/data/locales/or.txt
+++ b/icu4c/source/data/locales/or.txt
@@ -24,24 +24,18 @@
         "Orya",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "୦",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+        default{"orya"}
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     Version{"2.0.47.70"}
     calendar{
@@ -141,5 +135,4 @@
             }
         }
     }
-    defaultNumberingSystem{"orya"}
 }
diff --git a/icu4c/source/data/locales/pa.txt b/icu4c/source/data/locales/pa.txt
index b80efab..6cb5a75 100644
--- a/icu4c/source/data/locales/pa.txt
+++ b/icu4c/source/data/locales/pa.txt
@@ -21,24 +21,14 @@
         "Guru",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "੦",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+        default{"guru"}
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
@@ -188,5 +178,4 @@
             }
         }
     }
-    defaultNumberingSystem{"guru"}
 }
diff --git a/icu4c/source/data/locales/pa_Arab.txt b/icu4c/source/data/locales/pa_Arab.txt
index ca69144..378d355 100755
--- a/icu4c/source/data/locales/pa_Arab.txt
+++ b/icu4c/source/data/locales/pa_Arab.txt
@@ -20,18 +20,7 @@
         "Arab",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "٠",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        default{"arab"}
     }
     Version{"2.0.47.30"}
     calendar{
@@ -133,7 +122,6 @@
             }
         }
     }
-    defaultNumberingSystem{"arab"}
     layout{
         characters{"right-to-left"}
         lines{"top-to-bottom"}
diff --git a/icu4c/source/data/locales/pl.txt b/icu4c/source/data/locales/pl.txt
index 46f1ba1..e88dd19 100644
--- a/icu4c/source/data/locales/pl.txt
+++ b/icu4c/source/data/locales/pl.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.65"}
+    Version{"2.0.48.77"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/ps.txt b/icu4c/source/data/locales/ps.txt
index dab3907..b32b1a2 100644
--- a/icu4c/source/data/locales/ps.txt
+++ b/icu4c/source/data/locales/ps.txt
@@ -20,24 +20,27 @@
         "Arab",
     }
     NumberElements{
-        "٫",
-        "٬",
-        ";",
-        "٪",
-        "۰",
-        "#",
-        "−",
-        "×۱۰^",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+        arabext{
+            symbols{
+                decimal{"٫"}
+                exponential{"×۱۰^"}
+                group{"٬"}
+                percentSign{"٪"}
+            }
+        }
+        default{"arabext"}
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                minusSign{"−"}
+                percentSign{"%"}
+            }
+        }
     }
     Version{"2.0.47.67"}
     calendar{
@@ -125,7 +128,6 @@
             }
         }
     }
-    defaultNumberingSystem{"arabext"}
     layout{
         characters{"right-to-left"}
         lines{"top-to-bottom"}
diff --git a/icu4c/source/data/locales/pt.txt b/icu4c/source/data/locales/pt.txt
index 69ba7be..2e9d2aa 100644
--- a/icu4c/source/data/locales/pt.txt
+++ b/icu4c/source/data/locales/pt.txt
@@ -21,26 +21,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/pt_PT.txt b/icu4c/source/data/locales/pt_PT.txt
index ea8fb8f..cce1473 100644
--- a/icu4c/source/data/locales/pt_PT.txt
+++ b/icu4c/source/data/locales/pt_PT.txt
@@ -9,24 +9,14 @@
 pt_PT{
     AuxExemplarCharacters{"[ª ă å ä ā æ è ĕ ë ē ì ĭ î ï ī ñ º ŏ ö ø ō œ ù ŭ û ü ū ÿ]"}
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+            symbols{
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.71"}
     calendar{
diff --git a/icu4c/source/data/locales/rm.txt b/icu4c/source/data/locales/rm.txt
index af4cec8..e6bedf9 100755
--- a/icu4c/source/data/locales/rm.txt
+++ b/icu4c/source/data/locales/rm.txt
@@ -18,24 +18,26 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        "’",
-        ";",
-        "%",
-        "0",
-        "#",
-        "−",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{"’"}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"−"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/ro.txt b/icu4c/source/data/locales/ro.txt
index 1156187..a1ed487 100644
--- a/icu4c/source/data/locales/ro.txt
+++ b/icu4c/source/data/locales/ro.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/rof.txt b/icu4c/source/data/locales/rof.txt
index dc2f3ce..7a74958 100755
--- a/icu4c/source/data/locales/rof.txt
+++ b/icu4c/source/data/locales/rof.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/root.txt b/icu4c/source/data/locales/root.txt
index b5111f4..856eee9 100644
--- a/icu4c/source/data/locales/root.txt
+++ b/icu4c/source/data/locales/root.txt
@@ -18,30 +18,33 @@
     }
     MeasurementSystem:int{0}
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+        default{"latn"}
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
     PaperSize:intvector{
         297,
         210,
     }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             AmPmMarkers:alias{"/LOCALE/calendar/gregorian/AmPmMarkers"}
@@ -1410,7 +1413,6 @@
             quarters:alias{"/LOCALE/calendar/gregorian/quarters"}
         }
     }
-    defaultNumberingSystem{"latn"}
     delimiters{
         alternateQuotationEnd{"’"}
         alternateQuotationStart{"‘"}
diff --git a/icu4c/source/data/locales/ru.txt b/icu4c/source/data/locales/ru.txt
index 666e3c8..8d8a5bb 100644
--- a/icu4c/source/data/locales/ru.txt
+++ b/icu4c/source/data/locales/ru.txt
@@ -21,26 +21,27 @@
         "Cyrl",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
-    }
-    Version{"2.0.48.56"}
+    Version{"2.0.48.72"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/rw.txt b/icu4c/source/data/locales/rw.txt
index 84836fb..716a743 100755
--- a/icu4c/source/data/locales/rw.txt
+++ b/icu4c/source/data/locales/rw.txt
@@ -16,20 +16,14 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/rwk.txt b/icu4c/source/data/locales/rwk.txt
index 5b4d483..e7a4786 100755
--- a/icu4c/source/data/locales/rwk.txt
+++ b/icu4c/source/data/locales/rwk.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/saq.txt b/icu4c/source/data/locales/saq.txt
index 4b1ef6e..ad7b95c 100755
--- a/icu4c/source/data/locales/saq.txt
+++ b/icu4c/source/data/locales/saq.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.46.70"}
     calendar{
diff --git a/icu4c/source/data/locales/seh.txt b/icu4c/source/data/locales/seh.txt
index 43845a4..fc52ec6 100755
--- a/icu4c/source/data/locales/seh.txt
+++ b/icu4c/source/data/locales/seh.txt
@@ -19,24 +19,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.38"}
     calendar{
diff --git a/icu4c/source/data/locales/ses.txt b/icu4c/source/data/locales/ses.txt
index 96b0774..e6b9eef 100755
--- a/icu4c/source/data/locales/ses.txt
+++ b/icu4c/source/data/locales/ses.txt
@@ -17,24 +17,14 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+            symbols{
+                group{" "}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/sg.txt b/icu4c/source/data/locales/sg.txt
index abdd963..a685b62 100755
--- a/icu4c/source/data/locales/sg.txt
+++ b/icu4c/source/data/locales/sg.txt
@@ -17,24 +17,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;¤-#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;¤-#,##0.00"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.46.85"}
     calendar{
diff --git a/icu4c/source/data/locales/shi.txt b/icu4c/source/data/locales/shi.txt
index 05b50f5..4e364c6 100755
--- a/icu4c/source/data/locales/shi.txt
+++ b/icu4c/source/data/locales/shi.txt
@@ -17,24 +17,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/shi_Tfng.txt b/icu4c/source/data/locales/shi_Tfng.txt
index 7388190..286e163 100755
--- a/icu4c/source/data/locales/shi_Tfng.txt
+++ b/icu4c/source/data/locales/shi_Tfng.txt
@@ -17,24 +17,15 @@
         "Tfng",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00¤"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.46.25"}
     calendar{
diff --git a/icu4c/source/data/locales/si.txt b/icu4c/source/data/locales/si.txt
index fbbf0b5..1c0d862 100755
--- a/icu4c/source/data/locales/si.txt
+++ b/icu4c/source/data/locales/si.txt
@@ -24,11 +24,14 @@
     LocaleScript{
         "Sinh",
     }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤#,##,##0.00;(¤#,##,##0.00)",
-        "#,##,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##,##0.00;(¤#,##,##0.00)"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/sk.txt b/icu4c/source/data/locales/sk.txt
index ee544c6..6cede2d 100644
--- a/icu4c/source/data/locales/sk.txt
+++ b/icu4c/source/data/locales/sk.txt
@@ -20,26 +20,17 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.56"}
+    Version{"2.0.48.72"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/sl.txt b/icu4c/source/data/locales/sl.txt
index bfbf76e..09ea673 100644
--- a/icu4c/source/data/locales/sl.txt
+++ b/icu4c/source/data/locales/sl.txt
@@ -21,26 +21,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "e",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"e"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/sn.txt b/icu4c/source/data/locales/sn.txt
index 802fd64..67e5bd3 100755
--- a/icu4c/source/data/locales/sn.txt
+++ b/icu4c/source/data/locales/sn.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.47.63"}
     calendar{
diff --git a/icu4c/source/data/locales/so.txt b/icu4c/source/data/locales/so.txt
index 106d7f3..58d8c62 100644
--- a/icu4c/source/data/locales/so.txt
+++ b/icu4c/source/data/locales/so.txt
@@ -15,24 +15,15 @@
         "Latn",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     Version{"2.0.47.68"}
     calendar{
diff --git a/icu4c/source/data/locales/sq.txt b/icu4c/source/data/locales/sq.txt
index 2af5d08..c25f94b 100644
--- a/icu4c/source/data/locales/sq.txt
+++ b/icu4c/source/data/locales/sq.txt
@@ -23,24 +23,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+            symbols{
+                decimal{","}
+                group{"."}
+            }
+        }
     }
     Version{"2.0.47.69"}
     calendar{
diff --git a/icu4c/source/data/locales/sr.txt b/icu4c/source/data/locales/sr.txt
index 3718aa8..5330390 100644
--- a/icu4c/source/data/locales/sr.txt
+++ b/icu4c/source/data/locales/sr.txt
@@ -21,26 +21,28 @@
         "Cyrl",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             eras{
diff --git a/icu4c/source/data/locales/sr_Latn.txt b/icu4c/source/data/locales/sr_Latn.txt
index bcc5b26..7a687c4 100644
--- a/icu4c/source/data/locales/sr_Latn.txt
+++ b/icu4c/source/data/locales/sr_Latn.txt
@@ -16,7 +16,7 @@
     LocaleScript{
         "Latn",
     }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/sr_Latn_ME.txt b/icu4c/source/data/locales/sr_Latn_ME.txt
index 447e9eb..10dc0f5 100644
--- a/icu4c/source/data/locales/sr_Latn_ME.txt
+++ b/icu4c/source/data/locales/sr_Latn_ME.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 sr_Latn_ME{
-    NumberPatterns{
-        "#,##0.###",
-        "¤ #,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.82"}
     calendar{
diff --git a/icu4c/source/data/locales/sv.txt b/icu4c/source/data/locales/sv.txt
index 3f96534..d5ed0e2 100644
--- a/icu4c/source/data/locales/sv.txt
+++ b/icu4c/source/data/locales/sv.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "−",
-        "×10^",
-        "‰",
-        "∞",
-        "¤¤¤",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0 %"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"×10^"}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"−"}
+                nan{"¤¤¤"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0 %",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/sw.txt b/icu4c/source/data/locales/sw.txt
index 926f14b..c24ecfb 100644
--- a/icu4c/source/data/locales/sw.txt
+++ b/icu4c/source/data/locales/sw.txt
@@ -19,13 +19,14 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+        }
     }
-    Version{"2.0.48.30"}
+    Version{"2.0.48.31"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/sw_KE.txt b/icu4c/source/data/locales/sw_KE.txt
index 4e8d9bf..d9c68b1 100644
--- a/icu4c/source/data/locales/sw_KE.txt
+++ b/icu4c/source/data/locales/sw_KE.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 sw_KE{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.41.23"}
     calendar{
diff --git a/icu4c/source/data/locales/ta.txt b/icu4c/source/data/locales/ta.txt
index 6a17df6..4b86972 100644
--- a/icu4c/source/data/locales/ta.txt
+++ b/icu4c/source/data/locales/ta.txt
@@ -23,13 +23,16 @@
     LocaleScript{
         "Taml",
     }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
-    Version{"2.0.48.54"}
+    Version{"2.0.48.70"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/te.txt b/icu4c/source/data/locales/te.txt
index 1bddff3..b66d619 100644
--- a/icu4c/source/data/locales/te.txt
+++ b/icu4c/source/data/locales/te.txt
@@ -23,13 +23,16 @@
     LocaleScript{
         "Telu",
     }
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
-    Version{"2.0.48.44"}
+    Version{"2.0.48.45"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/teo.txt b/icu4c/source/data/locales/teo.txt
index d8a6648..eb75437 100755
--- a/icu4c/source/data/locales/teo.txt
+++ b/icu4c/source/data/locales/teo.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.46.85"}
     calendar{
diff --git a/icu4c/source/data/locales/th.txt b/icu4c/source/data/locales/th.txt
index eca3acf..2ac12ed 100644
--- a/icu4c/source/data/locales/th.txt
+++ b/icu4c/source/data/locales/th.txt
@@ -25,26 +25,28 @@
         "Thai",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;¤-#,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                exponential{"E"}
+                group{","}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;¤-#,##0.00",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         buddhist{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/ti.txt b/icu4c/source/data/locales/ti.txt
index 0587f48..64d15eb 100644
--- a/icu4c/source/data/locales/ti.txt
+++ b/icu4c/source/data/locales/ti.txt
@@ -25,13 +25,14 @@
     LocaleScript{
         "Ethi",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/tr.txt b/icu4c/source/data/locales/tr.txt
index 90b9c3b..2892513 100644
--- a/icu4c/source/data/locales/tr.txt
+++ b/icu4c/source/data/locales/tr.txt
@@ -18,26 +18,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"% #,##0"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "% #,##0",
-        "#E0",
-    }
-    Version{"2.0.48.46"}
+    Version{"2.0.48.47"}
     calendar{
         coptic{
             monthNames{
diff --git a/icu4c/source/data/locales/tzm.txt b/icu4c/source/data/locales/tzm.txt
index aa86bb8..d6707c2 100755
--- a/icu4c/source/data/locales/tzm.txt
+++ b/icu4c/source/data/locales/tzm.txt
@@ -17,24 +17,15 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.46.85"}
     calendar{
diff --git a/icu4c/source/data/locales/uk.txt b/icu4c/source/data/locales/uk.txt
index 4b1e7a5..c75d33f 100644
--- a/icu4c/source/data/locales/uk.txt
+++ b/icu4c/source/data/locales/uk.txt
@@ -18,26 +18,26 @@
         "Cyrl",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         coptic{
             monthNames{
diff --git a/icu4c/source/data/locales/ur.txt b/icu4c/source/data/locales/ur.txt
index d82786e..8fce2ff 100644
--- a/icu4c/source/data/locales/ur.txt
+++ b/icu4c/source/data/locales/ur.txt
@@ -18,24 +18,18 @@
         "Arab",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
     Version{"2.0.47.65"}
     calendar{
diff --git a/icu4c/source/data/locales/ur_IN.txt b/icu4c/source/data/locales/ur_IN.txt
index ddd8453..a8f64fc 100644
--- a/icu4c/source/data/locales/ur_IN.txt
+++ b/icu4c/source/data/locales/ur_IN.txt
@@ -10,11 +10,14 @@
  *  ICU <specials> source: <path>/xml/main/ur_IN.xml
  */
 ur_IN{
-    NumberPatterns{
-        "#,##,##0.###",
-        "¤ #,##,##0.00",
-        "#,##,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤ #,##,##0.00"}
+                decimalFormat{"#,##,##0.###"}
+                percentFormat{"#,##,##0%"}
+            }
+        }
     }
     Version{"2.0.41.23"}
     calendar{
diff --git a/icu4c/source/data/locales/uz_Arab.txt b/icu4c/source/data/locales/uz_Arab.txt
index e9d76f9..615476b 100644
--- a/icu4c/source/data/locales/uz_Arab.txt
+++ b/icu4c/source/data/locales/uz_Arab.txt
@@ -21,21 +21,24 @@
         "Arab",
     }
     NumberElements{
-        "٫",
-        "٬",
-        ";",
-        "٪",
-        "۰",
-        "#",
-        "−",
-        "×۱۰^",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        arabext{
+            symbols{
+                decimal{"٫"}
+                exponential{"×۱۰^"}
+                group{"٬"}
+                percentSign{"٪"}
+            }
+        }
+        default{"arabext"}
+        latn{
+            symbols{
+                decimal{","}
+                group{"."}
+                minusSign{"−"}
+            }
+        }
     }
     Version{"2.0.47.70"}
-    defaultNumberingSystem{"arabext"}
     layout{
         characters{"right-to-left"}
         lines{"top-to-bottom"}
diff --git a/icu4c/source/data/locales/uz_Latn.txt b/icu4c/source/data/locales/uz_Latn.txt
index 42984f0..c69c3de 100644
--- a/icu4c/source/data/locales/uz_Latn.txt
+++ b/icu4c/source/data/locales/uz_Latn.txt
@@ -17,18 +17,12 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.68"}
     calendar{
diff --git a/icu4c/source/data/locales/vi.txt b/icu4c/source/data/locales/vi.txt
index d1b6600..9b80348 100644
--- a/icu4c/source/data/locales/vi.txt
+++ b/icu4c/source/data/locales/vi.txt
@@ -22,26 +22,28 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        ".",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                exponential{"E"}
+                group{"."}
+                infinity{"∞"}
+                list{";"}
+                minusSign{"-"}
+                nan{"NaN"}
+                perMille{"‰"}
+                percentSign{"%"}
+                plusSign{"+"}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.64"}
+    Version{"2.0.48.76"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/vun.txt b/icu4c/source/data/locales/vun.txt
index 679d8bb..06d9863 100755
--- a/icu4c/source/data/locales/vun.txt
+++ b/icu4c/source/data/locales/vun.txt
@@ -16,11 +16,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
     Version{"2.0.45.90"}
     calendar{
diff --git a/icu4c/source/data/locales/xog.txt b/icu4c/source/data/locales/xog.txt
index 0833740..b93c2d5 100755
--- a/icu4c/source/data/locales/xog.txt
+++ b/icu4c/source/data/locales/xog.txt
@@ -15,11 +15,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "#,##0.00 ¤",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"#,##0.00 ¤"}
+            }
+        }
     }
     Version{"2.0.47.53"}
     calendar{
diff --git a/icu4c/source/data/locales/yo.txt b/icu4c/source/data/locales/yo.txt
index 2b9a028..20adc7a 100755
--- a/icu4c/source/data/locales/yo.txt
+++ b/icu4c/source/data/locales/yo.txt
@@ -19,11 +19,12 @@
     LocaleScript{
         "Latn",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.46.79"}
     calendar{
diff --git a/icu4c/source/data/locales/zh.txt b/icu4c/source/data/locales/zh.txt
index 95bc393..aa7fef2 100644
--- a/icu4c/source/data/locales/zh.txt
+++ b/icu4c/source/data/locales/zh.txt
@@ -72,26 +72,20 @@
         "Hani",
     }
     NumberElements{
-        ".",
-        ",",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{"."}
+                group{","}
+            }
+        }
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
-    }
-    Version{"2.0.48.56"}
+    Version{"2.0.48.72"}
     calendar{
         gregorian{
             AmPmMarkers{
diff --git a/icu4c/source/data/locales/zh_Hant.txt b/icu4c/source/data/locales/zh_Hant.txt
index beb6802..4029b77 100644
--- a/icu4c/source/data/locales/zh_Hant.txt
+++ b/icu4c/source/data/locales/zh_Hant.txt
@@ -73,13 +73,14 @@
         "Hani",
         "Bopo",
     }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+            }
+        }
     }
-    Version{"2.0.48.57"}
+    Version{"2.0.48.73"}
     calendar{
         chinese{
             DateTimePatterns{
diff --git a/icu4c/source/data/locales/zh_Hant_HK.txt b/icu4c/source/data/locales/zh_Hant_HK.txt
index 3370245..e05beda 100644
--- a/icu4c/source/data/locales/zh_Hant_HK.txt
+++ b/icu4c/source/data/locales/zh_Hant_HK.txt
@@ -7,11 +7,12 @@
 // *
 // ***************************************************************************
 zh_Hant_HK{
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00;(¤#,##0.00)",
-        "#,##0%",
-        "#E0",
+    NumberElements{
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
+            }
+        }
     }
     Version{"2.0.46.25"}
     calendar{
diff --git a/icu4c/source/data/locales/zu.txt b/icu4c/source/data/locales/zu.txt
index 1cef700..28c7403 100644
--- a/icu4c/source/data/locales/zu.txt
+++ b/icu4c/source/data/locales/zu.txt
@@ -21,24 +21,18 @@
         "Latn",
     }
     NumberElements{
-        ",",
-        " ",
-        ";",
-        "%",
-        "0",
-        "#",
-        "-",
-        "E",
-        "‰",
-        "∞",
-        "NaN",
-        "+",
-    }
-    NumberPatterns{
-        "#,##0.###",
-        "¤#,##0.00",
-        "#,##0%",
-        "#E0",
+        latn{
+            patterns{
+                currencyFormat{"¤#,##0.00"}
+                decimalFormat{"#,##0.###"}
+                percentFormat{"#,##0%"}
+                scientificFormat{"#E0"}
+            }
+            symbols{
+                decimal{","}
+                group{" "}
+            }
+        }
     }
     Version{"2.0.47.65"}
     calendar{
diff --git a/icu4c/source/i18n/currpinf.cpp b/icu4c/source/i18n/currpinf.cpp
index 8087d4b..27218ad 100644
--- a/icu4c/source/i18n/currpinf.cpp
+++ b/icu4c/source/i18n/currpinf.cpp
@@ -54,7 +54,10 @@
 static const UChar gPart0[] = {0x7B, 0x30, 0x7D, 0};
 static const UChar gPart1[] = {0x7B, 0x31, 0x7D, 0};
 
-static const char gNumberPatternsTag[]="NumberPatterns";
+static const char gNumberElementsTag[]="NumberElements";
+static const char gLatnTag[]="latn";
+static const char gPatternsTag[]="patterns";
+static const char gDecimalFormatTag[]="decimalFormat";
 static const char gCurrUnitPtnTag[]="CurrencyUnitPatterns";
 
 CurrencyPluralInfo::CurrencyPluralInfo(UErrorCode& status)
@@ -238,11 +241,11 @@
 
     UErrorCode ec = U_ZERO_ERROR;
     UResourceBundle *rb = ures_open(NULL, loc.getName(), &ec);
-    UResourceBundle *numberPatterns = ures_getByKey(rb, gNumberPatternsTag, NULL, &ec);
+    rb = ures_getByKey(rb, gNumberElementsTag, rb, &ec);
+    rb = ures_getByKey(rb, gLatnTag, rb, &ec);
+    rb = ures_getByKey(rb, gPatternsTag, rb, &ec);
     int32_t ptnLen;
-    // TODO: 0 to be NumberFormat::fNumberStyle
-    const UChar* numberStylePattern = ures_getStringByIndex(numberPatterns, 0, 
-                                                            &ptnLen, &ec);
+    const UChar* numberStylePattern = ures_getStringByKeyWithFallback(rb, gDecimalFormatTag, &ptnLen, &ec);
     int32_t numberStylePatternLen = ptnLen;
     const UChar* negNumberStylePattern = NULL;
     int32_t negNumberStylePatternLen = 0;
@@ -260,7 +263,6 @@
             }
         }
     }
-    ures_close(numberPatterns);
     ures_close(rb);
 
     if (U_FAILURE(ec)) {
diff --git a/icu4c/source/i18n/dcfmtsym.cpp b/icu4c/source/i18n/dcfmtsym.cpp
index 637f8b3..018e98d 100644
--- a/icu4c/source/i18n/dcfmtsym.cpp
+++ b/icu4c/source/i18n/dcfmtsym.cpp
@@ -1,6 +1,6 @@
 /*
 *******************************************************************************
-* Copyright (C) 1997-2009, International Business Machines Corporation and    *
+* Copyright (C) 1997-2010, International Business Machines Corporation and    *
 * others. All Rights Reserved.                                                *
 *******************************************************************************
 *
@@ -50,6 +50,7 @@
 static const char gCurrencySudMatchTag[] = "surroundingMatch";
 static const char gCurrencyInsertBtnTag[] = "insertBetween";
 
+
 static const UChar INTL_CURRENCY_SYMBOL_STR[] = {0xa4, 0xa4, 0};
 
 // -------------------------------------
@@ -59,7 +60,7 @@
     : UObject(),
     locale()
 {
-    initialize(locale, status, TRUE);
+    initialize(locale, status);
 }
 
 // -------------------------------------
@@ -138,9 +139,35 @@
 // -------------------------------------
 
 void
-DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status,
-                                 UBool useLastResortData)
+DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status)
 {
+    static const char *gNumberElementKeys[kFormatSymbolCount] = {
+        "decimal",
+        "group",
+        "list",
+        "percentSign",
+        NULL, /* Native zero digit is deprecated from CLDR - get it from the numbering system */
+        NULL, /* Pattern digit character is deprecated from CLDR - use # by default always */
+        "minusSign",
+        "plusSign",
+        NULL, /* currency symbol - We don't really try to load this directly from CLDR until we know the currency */
+        NULL, /* intl currency symbol - We don't really try to load this directly from CLDR until we know the currency */
+        "currencyDecimal",
+        "exponential",
+        "perMille",
+        NULL, /* Escape padding character - not in CLDR */
+        "infinity",
+        "nan",
+        NULL, /* Significant digit symbol - not in CLDR */
+        "currencyGroup",
+    };
+
+    static const char *gLatn =  "latn";
+    static const char *gSymbols = "symbols";
+    const char *nsName;
+    const UChar *sym = NULL;
+    int32_t len = 0;
+
     *validLocale = *actualLocale = 0;
     currPattern = NULL;
     if (U_FAILURE(status))
@@ -148,75 +175,113 @@
 
     const char* locStr = loc.getName();
     UResourceBundle *resource = ures_open((char *)0, locStr, &status);
-    UResourceBundle *numberElementsRes = ures_getByKey(resource, gNumberElements, NULL, &status);
+    UResourceBundle *numberElementsRes = ures_getByKeyWithFallback(resource, gNumberElements, NULL, &status);
 
-    if (U_FAILURE(status))
-    {
-        // Initializes with last resort data if necessary.
-        if (useLastResortData)
-        {
-            status = U_USING_FALLBACK_WARNING;
-            initialize();
-        }
-    }
-    else {
-        // Gets the number element array.
-        int32_t numberElementsLength = ures_getSize(numberElementsRes);
+    if (U_FAILURE(status)) {
+        status = U_USING_FALLBACK_WARNING;
+        initialize();
+        return;
+    } else {
 
-        if (numberElementsLength > (int32_t)kFormatSymbolCount) {
-            /* Warning: Invalid format. Array too large. */
-            numberElementsLength = (int32_t)kFormatSymbolCount;
+        // First initialize all the symbols to the fallbacks for anything we can't find
+        initialize();
+
+        //
+        // Next get the numbering system for this locale and set zero digit
+        // and the digit string based on the numbering system for the locale
+        //
+
+        NumberingSystem* ns = NumberingSystem::createInstance(loc,status);
+        if (U_SUCCESS(status) && ns->getRadix() == 10 && !ns->isAlgorithmic()) {
+            nsName = ns->getName();
+            UnicodeString *zeroDigit = new UnicodeString(ns->getDescription(),0,1);
+            setSymbol(kZeroDigitSymbol,*zeroDigit);
+            delete zeroDigit;
+        } else {
+            nsName = gLatn;
         }
-        // If the array size is too small, something is wrong with the resource
-        // bundle, returns the failure error code.
-        if (numberElementsLength != 12 || U_FAILURE(status)) {
-            status = U_INVALID_FORMAT_ERROR;
+       
+        UBool isLatn = !uprv_strcmp(nsName,gLatn);
+
+        UErrorCode nlStatus = U_ZERO_ERROR;
+        UResourceBundle *nonLatnSymbols = NULL;
+        if ( !isLatn ) {
+            nonLatnSymbols = ures_getByKeyWithFallback(numberElementsRes, nsName, NULL, &nlStatus);
+            nonLatnSymbols = ures_getByKeyWithFallback(nonLatnSymbols, gSymbols, nonLatnSymbols, &nlStatus);
         }
-        else {
-            const UChar *numberElements[kFormatSymbolCount];
-            int32_t numberElementsStrLen[kFormatSymbolCount];
-            int32_t i = 0;
-            for(i = 0; i<numberElementsLength; i++) {
-                numberElements[i] = ures_getStringByIndex(numberElementsRes, i, &numberElementsStrLen[i], &status);
+
+        UResourceBundle *latnSymbols = ures_getByKeyWithFallback(numberElementsRes, gLatn, NULL, &status);
+        latnSymbols = ures_getByKeyWithFallback(latnSymbols, gSymbols, latnSymbols, &status);
+
+        UBool kMonetaryDecimalSet = FALSE;
+        UBool kMonetaryGroupingSet = FALSE;
+        for(int32_t i = 0; i<kFormatSymbolCount; i++) {
+            if ( gNumberElementKeys[i] != NULL ) {
+                UErrorCode localStatus = U_ZERO_ERROR;
+                if ( !isLatn ) {
+                    sym = ures_getStringByKeyWithFallback(nonLatnSymbols,gNumberElementKeys[i],&len,&localStatus);
+                    // If we can't find the symbol in the numbering system specific resources,
+                    // use the "latn" numbering system as the fallback.
+                    if ( U_FAILURE(localStatus) ) {
+                        localStatus = U_ZERO_ERROR;
+                        sym = ures_getStringByKeyWithFallback(latnSymbols,gNumberElementKeys[i],&len,&localStatus);
+                    }
+                } else {
+                        sym = ures_getStringByKeyWithFallback(latnSymbols,gNumberElementKeys[i],&len,&localStatus);
+                }
+
+                if ( U_SUCCESS(localStatus) ) {
+                    setSymbol((ENumberFormatSymbol)i,sym);
+                    if ( i == kMonetarySeparatorSymbol ) {
+                        kMonetaryDecimalSet = TRUE;
+                    } else if ( i == kMonetaryGroupingSeparatorSymbol ) {
+                        kMonetaryGroupingSet = TRUE;
+                    }
+                }
             }
-
-            if (U_SUCCESS(status)) {
-                initialize(numberElements, numberElementsStrLen, numberElementsLength);
-
-                // Attempt to set the zero digit based on the numbering system for the locale requested
-                //
-                NumberingSystem* ns = NumberingSystem::createInstance(loc,status);
-                if (U_SUCCESS(status) && ns->getRadix() == 10 && !ns->isAlgorithmic()) {
-                    UnicodeString zeroDigit(ns->getDescription(),0,1);
-                    setSymbol(kZeroDigitSymbol,zeroDigit);
-                }
-                if (ns) {
-                    delete ns;
-                }
-
-                // Obtain currency data from the currency API.  This is strictly
-                // for backward compatibility; we don't use DecimalFormatSymbols
-                // for currency data anymore.
-                UErrorCode internalStatus = U_ZERO_ERROR; // don't propagate failures out
-                UChar curriso[4];
-                UnicodeString tempStr;
-                ucurr_forLocale(locStr, curriso, 4, &internalStatus);
-
-                // Reuse numberElements[0] as a temporary buffer
-                uprv_getStaticCurrencyName(curriso, locStr, tempStr, internalStatus);
-                if (U_SUCCESS(internalStatus)) {
-                    fSymbols[kIntlCurrencySymbol] = curriso;
-                    fSymbols[kCurrencySymbol] = tempStr;
-                }
-                /* else use the default values. */
-            }
-
-            U_LOCALE_BASED(locBased, *this);
-            locBased.setLocaleIDs(ures_getLocaleByType(numberElementsRes,
-                                       ULOC_VALID_LOCALE, &status),
-                                  ures_getLocaleByType(numberElementsRes,
-                                       ULOC_ACTUAL_LOCALE, &status));
         }
+
+        ures_close(latnSymbols);
+        if ( !isLatn ) {
+            ures_close(nonLatnSymbols);
+        }
+
+        // If monetary decimal or grouping were not explicitly set, then set them to be the
+        // same as their non-monetary counterparts.
+
+        if ( !kMonetaryDecimalSet ) {
+            setSymbol(kMonetarySeparatorSymbol,fSymbols[kDecimalSeparatorSymbol]);
+        }
+        if ( !kMonetaryGroupingSet ) {
+            setSymbol(kMonetaryGroupingSeparatorSymbol,fSymbols[kGroupingSeparatorSymbol]);
+        }
+
+        if (ns) {
+            delete ns;
+        }
+
+        // Obtain currency data from the currency API.  This is strictly
+        // for backward compatibility; we don't use DecimalFormatSymbols
+        // for currency data anymore.
+        UErrorCode internalStatus = U_ZERO_ERROR; // don't propagate failures out
+        UChar curriso[4];
+        UnicodeString tempStr;
+        ucurr_forLocale(locStr, curriso, 4, &internalStatus);
+
+        // Reuse numberElements[0] as a temporary buffer
+        uprv_getStaticCurrencyName(curriso, locStr, tempStr, internalStatus);
+        if (U_SUCCESS(internalStatus)) {
+            fSymbols[kIntlCurrencySymbol] = curriso;
+            fSymbols[kCurrencySymbol] = tempStr;
+        }
+        /* else use the default values. */
+
+        U_LOCALE_BASED(locBased, *this);
+        locBased.setLocaleIDs(ures_getLocaleByType(numberElementsRes,
+                              ULOC_VALID_LOCALE, &status),
+                              ures_getLocaleByType(numberElementsRes,
+                              ULOC_ACTUAL_LOCALE, &status));
+        
         //load the currency data
         UChar ucc[4]={0}; //Currency Codes are always 3 chars long
         int32_t uccLen = 4;
@@ -249,86 +314,48 @@
             /* else An explicit currency was requested and is unknown or locale data is malformed. */
             /* ucurr_* API will get the correct value later on. */
         }
-        // else ignore the error if no currency
-    }
-    ures_close(numberElementsRes);
+            // else ignore the error if no currency
 
-    // Currency Spacing.
-    UErrorCode localStatus = U_ZERO_ERROR;
-    UResourceBundle *currencyResource = ures_open(U_ICUDATA_CURR, locStr, &localStatus);
-    UResourceBundle *currencySpcRes = ures_getByKeyWithFallback(currencyResource,
-                                       gCurrencySpacingTag, NULL, &localStatus);
-
-    if (localStatus == U_USING_FALLBACK_WARNING || U_SUCCESS(localStatus)) {
-        const char* keywords[kCurrencySpacingCount] = {
-            gCurrencyMatchTag, gCurrencySudMatchTag, gCurrencyInsertBtnTag
-        };
+        // Currency Spacing.
         localStatus = U_ZERO_ERROR;
-        UResourceBundle *dataRes = ures_getByKeyWithFallback(currencySpcRes,
-                                   gBeforeCurrencyTag, NULL, &localStatus);
+        UResourceBundle *currencyResource = ures_open(U_ICUDATA_CURR, locStr, &localStatus);
+        UResourceBundle *currencySpcRes = ures_getByKeyWithFallback(currencyResource,
+                                           gCurrencySpacingTag, NULL, &localStatus);
+
         if (localStatus == U_USING_FALLBACK_WARNING || U_SUCCESS(localStatus)) {
+            const char* keywords[kCurrencySpacingCount] = {
+                gCurrencyMatchTag, gCurrencySudMatchTag, gCurrencyInsertBtnTag
+            };
             localStatus = U_ZERO_ERROR;
-            for (int32_t i = 0; i < kCurrencySpacingCount; i++) {
-              currencySpcBeforeSym[i] = ures_getStringByKey(dataRes, keywords[i],
-                                                        NULL, &localStatus);
-            }
-            ures_close(dataRes);
-        }
-        dataRes = ures_getByKeyWithFallback(currencySpcRes,
-                                  gAfterCurrencyTag, NULL, &localStatus);
-        if (localStatus == U_USING_FALLBACK_WARNING || U_SUCCESS(localStatus)) {
-            localStatus = U_ZERO_ERROR;
-            for (int32_t i = 0; i < kCurrencySpacingCount; i++) {
-              currencySpcAfterSym[i] = ures_getStringByKey(dataRes, keywords[i],
+            UResourceBundle *dataRes = ures_getByKeyWithFallback(currencySpcRes,
+                                       gBeforeCurrencyTag, NULL, &localStatus);
+            if (localStatus == U_USING_FALLBACK_WARNING || U_SUCCESS(localStatus)) {
+                localStatus = U_ZERO_ERROR;
+                for (int32_t i = 0; i < kCurrencySpacingCount; i++) {
+                  currencySpcBeforeSym[i] = ures_getStringByKey(dataRes, keywords[i],
                                                             NULL, &localStatus);
+                }
+                ures_close(dataRes);
             }
-            ures_close(dataRes);
+            dataRes = ures_getByKeyWithFallback(currencySpcRes,
+                                      gAfterCurrencyTag, NULL, &localStatus);
+            if (localStatus == U_USING_FALLBACK_WARNING || U_SUCCESS(localStatus)) {
+                localStatus = U_ZERO_ERROR;
+                for (int32_t i = 0; i < kCurrencySpacingCount; i++) {
+                  currencySpcAfterSym[i] = ures_getStringByKey(dataRes, keywords[i],
+                                                                NULL, &localStatus);
+                }
+                ures_close(dataRes);
+            }
+            ures_close(currencySpcRes);
+            ures_close(currencyResource);
         }
-        ures_close(currencySpcRes);
-        ures_close(currencyResource);
     }
     ures_close(resource);
+    ures_close(numberElementsRes);
+
 }
 
-// Initializes the DecimalFormatSymbol instance with the data obtained
-// from ResourceBundle in the desired locale.
-
-void
-DecimalFormatSymbols::initialize(const UChar** numberElements, int32_t *numberElementsStrLen, int32_t numberElementsLength)
-{
-    static const int8_t TYPE_MAPPING[][2] = {
-        {kDecimalSeparatorSymbol, 0},
-        {kGroupingSeparatorSymbol, 1},
-        {kPatternSeparatorSymbol, 2},
-        {kPercentSymbol, 3},
-        {kZeroDigitSymbol, 4},
-        {kDigitSymbol, 5},
-        {kMinusSignSymbol, 6},
-        {kExponentialSymbol, 7},
-        {kPerMillSymbol, 8},
-        {kInfinitySymbol, 9},
-        {kNaNSymbol, 10},
-        {kPlusSignSymbol, 11},
-        {kMonetarySeparatorSymbol, 0}
-    };
-    int32_t idx;
-
-    for (idx = 0; idx < (int32_t)(sizeof(TYPE_MAPPING)/sizeof(TYPE_MAPPING[0])); idx++) {
-        if (TYPE_MAPPING[idx][1] < numberElementsLength) {
-            fSymbols[TYPE_MAPPING[idx][0]].setTo(TRUE, numberElements[TYPE_MAPPING[idx][1]], numberElementsStrLen[TYPE_MAPPING[idx][1]]);
-        }
-    }
-
-    // Default values until it's set later on.
-    fSymbols[kCurrencySymbol] = (UChar)0xa4;            // 'OX' currency symbol
-    fSymbols[kIntlCurrencySymbol] = INTL_CURRENCY_SYMBOL_STR;
-    // TODO: read from locale data, if this makes it into CLDR
-    fSymbols[kSignificantDigitSymbol] = (UChar)0x0040;  // '@' significant digit
-    fSymbols[kPadEscapeSymbol] = (UChar)0x002a; // TODO: '*' Hard coded for now; get from resource later
-    fSymbols[kMonetaryGroupingSeparatorSymbol] = fSymbols[kGroupingSeparatorSymbol];
-}
-
-// initialize with default values
 void
 DecimalFormatSymbols::initialize() {
     /*
@@ -353,6 +380,7 @@
     fSymbols[kInfinitySymbol] = (UChar)0x221e;          // 'oo' infinite
     fSymbols[kNaNSymbol] = (UChar)0xfffd;               // SUB NaN
     fSymbols[kSignificantDigitSymbol] = (UChar)0x0040;  // '@' significant digit
+    fSymbols[kMonetaryGroupingSeparatorSymbol].remove(); // 
 }
 
 Locale
diff --git a/icu4c/source/i18n/decimfmt.cpp b/icu4c/source/i18n/decimfmt.cpp
index ba72cfc..cf24baf 100644
--- a/icu4c/source/i18n/decimfmt.cpp
+++ b/icu4c/source/i18n/decimfmt.cpp
@@ -226,7 +226,12 @@
  * These are the tags we expect to see in normal resource bundle files associated
  * with a locale.
  */
-const char DecimalFormat::fgNumberPatterns[]="NumberPatterns";
+const char DecimalFormat::fgNumberPatterns[]="NumberPatterns"; // Deprecated - not used
+static const char fgNumberElements[]="NumberElements";
+static const char fgLatn[]="latn";
+static const char fgPatterns[]="patterns";
+static const char fgDecimalFormat[]="decimalFormat";
+static const char fgCurrencyFormat[]="currencyFormat";
 static const UChar fgTripleCurrencySign[] = {0xA4, 0xA4, 0xA4, 0};
 
 inline int32_t _min(int32_t a, int32_t b) { return (a<b) ? a : b; }
@@ -386,8 +391,11 @@
         int32_t len = 0;
         UResourceBundle *resource = ures_open(NULL, Locale::getDefault().getName(), &status);
 
-        resource = ures_getByKey(resource, fgNumberPatterns, resource, &status);
-        const UChar *resStr = ures_getStringByIndex(resource, (int32_t)0, &len, &status);
+        resource = ures_getByKey(resource, fgNumberElements, resource, &status);
+        // TODO : Get the pattern based on the active numbering system for the locale. Right now assumes "latn".
+        resource = ures_getByKey(resource, fgLatn, resource, &status);
+        resource = ures_getByKey(resource, fgPatterns, resource, &status);
+        const UChar *resStr = ures_getStringByKey(resource, fgDecimalFormat, &len, &status);
         str.setTo(TRUE, resStr, len);
         pattern = &str;
         ures_close(resource);
@@ -478,12 +486,15 @@
     // Here, chose onlyApplyPatternWithoutExpandAffix without
     // expanding the affix patterns into affixes.
     UnicodeString currencyPattern;
-    UErrorCode error = U_ZERO_ERROR;
-    UResourceBundle *resource = ures_open((char *)0, fSymbols->getLocale().getName(), &error);
-    UResourceBundle *numberPatterns = ures_getByKey(resource, fgNumberPatterns, NULL, &error);
+    UErrorCode error = U_ZERO_ERROR;   
+    
+    UResourceBundle *resource = ures_open(NULL, fSymbols->getLocale().getName(), &error);
+    resource = ures_getByKey(resource, fgNumberElements, resource, &error);
+    // TODO : Get the pattern based on the active numbering system for the locale. Right now assumes "latn".
+    resource = ures_getByKey(resource, fgLatn, resource, &error);
+    resource = ures_getByKey(resource, fgPatterns, resource, &error);
     int32_t patLen = 0;
-    const UChar *patResStr = ures_getStringByIndex(numberPatterns, kCurrencyStyle,  &patLen, &error);
-    ures_close(numberPatterns);
+    const UChar *patResStr = ures_getStringByKey(resource, fgCurrencyFormat,  &patLen, &error);
     ures_close(resource);
 
     if (U_SUCCESS(error)) {
diff --git a/icu4c/source/i18n/numfmt.cpp b/icu4c/source/i18n/numfmt.cpp
index 577ec3c..dcd24a7 100644
--- a/icu4c/source/i18n/numfmt.cpp
+++ b/icu4c/source/i18n/numfmt.cpp
@@ -104,6 +104,13 @@
     gLastResortPluralCurrencyPat,
 };
 
+// Keys used for accessing resource bundles
+
+static const char *gNumberElements = "NumberElements";
+static const char *gLatn = "latn";
+static const char *gPatterns = "patterns";
+static const char *gFormatKeys[] = { "decimalFormat", "currencyFormat", "percentFormat", "scientificFormat" };
+
 // Static hashtable cache of NumberingSystem objects used by NumberFormat
 static UHashtable * NumberingSystem_cache = NULL;
 
@@ -1083,8 +1090,7 @@
     NumberFormat* f = NULL;
     DecimalFormatSymbols* symbolsToAdopt = NULL;
     UnicodeString pattern;
-    UResourceBundle *resource = ures_open((char *)0, desiredLocale.getName(), &status);
-    UResourceBundle *numberPatterns = ures_getByKey(resource, DecimalFormat::fgNumberPatterns, NULL, &status);
+    UResourceBundle *resource = ures_open(NULL, desiredLocale.getName(), &status);
     NumberingSystem *ns = NULL;
     UBool deleteSymbols = TRUE;
     UHashtable * cache = NULL;
@@ -1102,13 +1108,6 @@
         pattern.setTo(TRUE, gLastResortNumberPatterns[style], -1);
     }
     else {
-        // If not all the styled patterns exists for the NumberFormat in this locale,
-        // sets the status code to failure and returns nil.
-        if (ures_getSize(numberPatterns) < (int32_t)(sizeof(gLastResortNumberPatterns)/sizeof(gLastResortNumberPatterns[0])) -2 ) { //minus 2: ISO and plural
-            status = U_INVALID_FORMAT_ERROR;
-            goto cleanup;
-        }
-
         // Loads the decimal symbols of the desired locale.
         symbolsToAdopt = new DecimalFormatSymbols(desiredLocale, status);
 
@@ -1123,7 +1122,12 @@
                                      style == kPluralCurrencyStyle) ?
                                     kCurrencyStyle : style);
 
-        const UChar *patResStr = ures_getStringByIndex(numberPatterns, (int32_t)styleInNumberPattern, &patLen, &status);
+        resource = ures_getByKeyWithFallback(resource, gNumberElements, resource, &status);
+        // TODO : Get patterns on a per numbering system basis, for right now assumes "latn" for patterns
+        resource = ures_getByKeyWithFallback(resource, gLatn, resource, &status);
+        resource = ures_getByKeyWithFallback(resource, gPatterns, resource, &status);
+
+        const UChar *patResStr = ures_getStringByKeyWithFallback(resource, gFormatKeys[styleInNumberPattern], &patLen, &status);
 
         // Creates the specified decimal format style of the desired locale.
         pattern.setTo(TRUE, patResStr, patLen);
@@ -1258,11 +1262,10 @@
         deleteSymbols = FALSE;
     }
 
-    f->setLocaleIDs(ures_getLocaleByType(numberPatterns, ULOC_VALID_LOCALE, &status),
-                    ures_getLocaleByType(numberPatterns, ULOC_ACTUAL_LOCALE, &status));
+    f->setLocaleIDs(ures_getLocaleByType(resource, ULOC_VALID_LOCALE, &status),
+                    ures_getLocaleByType(resource, ULOC_ACTUAL_LOCALE, &status));
 
 cleanup:
-    ures_close(numberPatterns);
     ures_close(resource);
 
     if (deleteNS && ns) {
diff --git a/icu4c/source/i18n/numsys.cpp b/icu4c/source/i18n/numsys.cpp
index 5666e57..e962a18 100644
--- a/icu4c/source/i18n/numsys.cpp
+++ b/icu4c/source/i18n/numsys.cpp
@@ -22,7 +22,7 @@
 #include "unicode/uloc.h"
 #include "unicode/schriter.h"
 #include "unicode/numsys.h"
-
+#include "cstring.h"
 #include "uresimp.h"
 
 #if !UCONFIG_NO_FORMATTING
@@ -33,10 +33,12 @@
 
 #define DEFAULT_DIGITS UNICODE_STRING_SIMPLE("0123456789");
 static const char gNumberingSystems[] = "numberingSystems";
-static const char gDefaultNumberingSystem[] = "defaultNumberingSystem";
+static const char gNumberElements[] = "NumberElements";
+static const char gDefault[] = "default";
 static const char gDesc[] = "desc";
 static const char gRadix[] = "radix";
 static const char gAlgorithmic[] = "algorithmic";
+static const char gLatn[] = "latn";
 
 
 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(NumberingSystem)
@@ -52,6 +54,7 @@
      algorithmic = FALSE;
      UnicodeString defaultDigits = DEFAULT_DIGITS;
      desc.setTo(defaultDigits);
+     uprv_strcpy(name,gLatn);
 }
 
     /**
@@ -84,6 +87,7 @@
     ns->setRadix(radix_in);
     ns->setDesc(desc_in);
     ns->setAlgorithmic(isAlgorithmic_in);
+    ns->setName(NULL);
     return ns;
     
 }
@@ -98,17 +102,20 @@
         buffer[count] = '\0'; // Make sure it is null terminated.
         return NumberingSystem::createInstanceByName(buffer,status);
     } else { // Find the default numbering system for this locale.
-        LocalUResourceBundlePointer resource(ures_open(NULL, inLocale.getName(), &status));
+        const char *ln = inLocale.getName();
+        UResourceBundle *resource = ures_open(NULL, inLocale.getName(), &status);
+        UResourceBundle *numberElementsRes = ures_getByKey(resource,gNumberElements,NULL,&status);
+        const UChar *defaultNSName =
+            ures_getStringByKeyWithFallback(numberElementsRes, gDefault, &count, &status);
+        ures_close(numberElementsRes);
+        ures_close(resource);
+
         if (U_FAILURE(status)) {
             status = U_USING_FALLBACK_WARNING;
             NumberingSystem *ns = new NumberingSystem();
             return ns;
         } 
-        const UChar *defaultNSName =
-            ures_getStringByKeyWithFallback(resource.getAlias(), gDefaultNumberingSystem, &count, &status);
-        if (U_FAILURE(status)) {
-               return NULL;
-        }
+
         if ( count > 0 && count < ULOC_KEYWORDS_CAPACITY ) { // Default numbering system found
            u_UCharsToChars(defaultNSName,buffer,count); 
            buffer[count] = '\0'; // Make sure it is null terminated.
@@ -161,8 +168,9 @@
          return NULL;
      }
 
-     return NumberingSystem::createInstance(radix,isAlgorithmic,nsd,status);
-
+     NumberingSystem* ns = NumberingSystem::createInstance(radix,isAlgorithmic,nsd,status);
+     ns->setName(name);
+     return ns;
 }
 
     /**
@@ -180,6 +188,10 @@
     return desc;
 }
 
+const char * NumberingSystem::getName() {
+    return name;
+}
+
 void NumberingSystem::setRadix(int32_t r) {
     radix = r;
 }
@@ -191,7 +203,14 @@
 void NumberingSystem::setDesc(UnicodeString d) {
     desc.setTo(d);
 }
-
+void NumberingSystem::setName(const char *n) {
+    if ( n == NULL ) {
+        name[0] = (char) 0;
+    } else {
+        uprv_strncpy(name,n,NUMSYS_NAME_CAPACITY);
+        name[NUMSYS_NAME_CAPACITY] = (char)0; // Make sure it is null terminated.
+    }
+}
 UBool NumberingSystem::isAlgorithmic() const {
     return ( algorithmic );
 }
diff --git a/icu4c/source/i18n/unicode/dcfmtsym.h b/icu4c/source/i18n/unicode/dcfmtsym.h
index 0d07082..24b99a0 100644
--- a/icu4c/source/i18n/unicode/dcfmtsym.h
+++ b/icu4c/source/i18n/unicode/dcfmtsym.h
@@ -293,16 +293,7 @@
      *                             failure code upon return.
      * @param useLastResortData    determine if use last resort data
      */
-    void initialize(const Locale& locale, UErrorCode& success, UBool useLastResortData = FALSE);
-
-    /**
-     * Initialize the symbols from the given array of UnicodeStrings.
-     * The array must be of the correct size.
-     *
-     * @param numberElements    the number format symbols
-     * @param numberElementsLength length of numberElements
-     */
-    void initialize(const UChar** numberElements, int32_t *numberElementsStrLen, int32_t numberElementsLength);
+    void initialize(const Locale& locale, UErrorCode& success);
 
     /**
      * Initialize the symbols with default values.
diff --git a/icu4c/source/i18n/unicode/numsys.h b/icu4c/source/i18n/unicode/numsys.h
index e93b717..33870c3 100644
--- a/icu4c/source/i18n/unicode/numsys.h
+++ b/icu4c/source/i18n/unicode/numsys.h
@@ -15,7 +15,7 @@
 
 #ifndef NUMSYS
 #define NUMSYS
-
+#define NUMSYS_NAME_CAPACITY 8
 #include "unicode/utypes.h"
 
 /**
@@ -116,6 +116,13 @@
     int32_t getRadix();
 
     /**
+     * Returns the name of this numbering system if it was created using one of the predefined names
+     * known to ICU.  Otherwise, returns NULL.
+     * @draft ICU 4.6
+     */
+    const char * getName();
+
+    /**
      * Returns the description string of this numbering system, which is either
      * the string of digits in the case of simple systems, or the ruleset name
      * in the case of algorithmic systems.
@@ -154,6 +161,7 @@
     UnicodeString   desc;
     int32_t         radix;
     UBool           algorithmic;
+    char            name[NUMSYS_NAME_CAPACITY+1];
 
     void setRadix(int32_t radix);
 
@@ -161,6 +169,8 @@
 
     void setDesc(UnicodeString desc);
 
+    void setName(const char* name);
+
     static UBool isValidDigitString(const UnicodeString &str);
 
     UBool hasContiguousDecimalDigits() const;
diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp
index b0ecbfe..3252d20 100644
--- a/icu4c/source/test/intltest/numfmtst.cpp
+++ b/icu4c/source/test/intltest/numfmtst.cpp
@@ -2664,6 +2664,8 @@
     Locale loc2("en", "US", "", "numbers=hebr");
     Locale loc3("en", "US", "", "numbers=arabext");
     Locale loc4("en", "US", "", "numbers=foobar");
+    Locale loc5("ar", "EG", "", ""); // ar_EG uses arab numbering system
+    Locale loc6("ar", "MA", "", ""); // ar_MA uses latn numbering system
 
     NumberFormat* fmt1= NumberFormat::createInstance(loc1, ec);
     if (U_FAILURE(ec)) {
@@ -2677,11 +2679,21 @@
     if (U_FAILURE(ec)) {
         dataerrln("FAIL: getInstance(en_US@numbers=arabext) - %s", u_errorName(ec));
     }
+    NumberFormat* fmt5= NumberFormat::createInstance(loc5, ec);
+    if (U_FAILURE(ec)) {
+        dataerrln("FAIL: getInstance(ar_EG) - %s", u_errorName(ec));
+    }
+    NumberFormat* fmt6= NumberFormat::createInstance(loc6, ec);
+    if (U_FAILURE(ec)) {
+        dataerrln("FAIL: getInstance(ar_MA) - %s", u_errorName(ec));
+    }
 
-    if (U_SUCCESS(ec) && fmt1 != NULL && fmt2 != NULL && fmt3 != NULL) {
+    if (U_SUCCESS(ec) && fmt1 != NULL && fmt2 != NULL && fmt3 != NULL && fmt5 != NULL && fmt6 != NULL) {
         expect2(*fmt1, 1234.567, CharsToUnicodeString("\\u0E51,\\u0E52\\u0E53\\u0E54.\\u0E55\\u0E56\\u0E57"));
         expect3(*fmt2, 5678.0, CharsToUnicodeString("\\u05D4\\u05F3\\u05EA\\u05E8\\u05E2\\u05F4\\u05D7"));
         expect2(*fmt3, 1234.567, CharsToUnicodeString("\\u06F1,\\u06F2\\u06F3\\u06F4.\\u06F5\\u06F6\\u06F7"));
+        expect2(*fmt5, 1234.567, CharsToUnicodeString("\\u0661\\u066c\\u0662\\u0663\\u0664\\u066b\\u0665\\u0666\\u0667"));
+        expect2(*fmt6, 1234.567, CharsToUnicodeString("1.234,567"));
     }
 
     // Test bogus keyword value
@@ -3008,7 +3020,7 @@
         // format result using ISOCURRENCYSTYLE,
         // format result using PLURALCURRENCYSTYLE,
         {"en_US", "1", "USD", "$1.00", "USD1.00", "1.00 US dollar"},
-        {"pa_PK", "1", "USD", "US$\\u00a0\\u0a67.\\u0a66\\u0a66", "USD\\u00a0\\u0a67.\\u0a66\\u0a66", "\\u0a67.\\u0a66\\u0a66 USD"},
+        {"pa_IN", "1", "USD", "US$\\u00a0\\u0a67.\\u0a66\\u0a66", "USD\\u00a0\\u0a67.\\u0a66\\u0a66", "\\u0a67.\\u0a66\\u0a66 USD"},
         {"es_AR", "1", "USD", "US$\\u00a01,00", "USD\\u00a01,00", "1,00 d\\u00f3lar estadounidense"},
         {"ar_EG", "1", "USD", "US$\\u00a0\\u0661\\u066b\\u0660\\u0660", "USD\\u00a0\\u0661\\u066b\\u0660\\u0660", "\\u0661\\u066b\\u0660\\u0660 \\u062f\\u0648\\u0644\\u0627\\u0631 \\u0623\\u0645\\u0631\\u064a\\u0643\\u064a"},
         {"fa_CA", "1", "USD", "\\u06f1\\u066b\\u06f0\\u06f0\\u00a0US$", "\\u06f1\\u066b\\u06f0\\u06f0\\u00a0USD", "\\u06f1\\u066b\\u06f0\\u06f0\\u0020\\u062f\\u0644\\u0627\\u0631\\u0020\\u0627\\u0645\\u0631\\u06cc\\u06a9\\u0627"},
diff --git a/icu4c/source/test/intltest/numrgts.cpp b/icu4c/source/test/intltest/numrgts.cpp
index ddc7d31..dea9e1a 100644
--- a/icu4c/source/test/intltest/numrgts.cpp
+++ b/icu4c/source/test/intltest/numrgts.cpp
@@ -1640,15 +1640,21 @@
             NULL/*"java.text.resources.LocaleElements"*/, 
             locales[i], status);
         failure(status, "new ResourceBundle");
-        ResourceBundle numPat = rb->get("NumberPatterns", status);
-        failure(status, "new ResourceBundle(NumberPatterns)");
-        //
+        ResourceBundle numPat = rb->getWithFallback("NumberElements", status);
+        failure(status, "rb.get(NumberElements)");
+        numPat = numPat.getWithFallback("latn",status);
+        failure(status, "rb.get(latn)");
+        numPat = numPat.getWithFallback("patterns",status);
+        failure(status, "rb.get(patterns)");
+        numPat = numPat.getWithFallback("currencyFormat",status);
+        failure(status, "rb.get(currencyFormat)");
+       //
         // Get the currency pattern for this locale.  We have to fish it
         // out of the ResourceBundle directly, since DecimalFormat.toPattern
         // will return the localized symbol, not \00a4
         //
-        UnicodeString pattern = numPat.getStringEx(1, status);
-        failure(status, "rb->getStringArray");
+        UnicodeString pattern = numPat.getString(status);
+        failure(status, "rb->getString()");
 
         UChar fo[] = { 0x00A4 };
         UnicodeString foo(fo, 1, 1);
diff --git a/icu4c/source/test/testdata/structLocale.txt b/icu4c/source/test/testdata/structLocale.txt
index 9df36e2..ce0c4aa 100644
--- a/icu4c/source/test/testdata/structLocale.txt
+++ b/icu4c/source/test/testdata/structLocale.txt
@@ -4390,24 +4390,367 @@
     }
     MeasurementSystem:int{0}
     NumberElements{
-        "",
-        "",
-        "",
-        "",
-        "",
-        "",
-        "",
-        "",
-        "",
-        "",
-        "",
-        "",
-    }
-    NumberPatterns{
-        "",
-        "",
-        "",
-        "",
+        arab{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        arabext{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        beng{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        default{""}
+        deva{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        fullwide{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        gujr{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        guru{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        khmr{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        knda{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        laoo{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        latn{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        mlym{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        mong{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        mymr{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        orya{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        telu{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        thai{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
+        tibt{
+            patterns{
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+            }
+        }
     }
     PaperSize:intvector{
         297,