The utf8data.h file in this directory is generated from the Unicode
Character Database for version 12.1.0 of the Unicode standard.

The full set of files can be found here:

  http://www.unicode.org/Public/12.1.0/ucd/

Individual source links:

  https://www.unicode.org/Public/12.1.0/ucd/CaseFolding.txt
  https://www.unicode.org/Public/12.1.0/ucd/DerivedAge.txt
  https://www.unicode.org/Public/12.1.0/ucd/extracted/DerivedCombiningClass.txt
  https://www.unicode.org/Public/12.1.0/ucd/DerivedCoreProperties.txt
  https://www.unicode.org/Public/12.1.0/ucd/NormalizationCorrections.txt
  https://www.unicode.org/Public/12.1.0/ucd/NormalizationTest.txt
  https://www.unicode.org/Public/12.1.0/ucd/UnicodeData.txt

md5sums (verify by running "md5sum -c README.utf8data"):

  900e76da1d822a160fd6b8c0b1d70094  CaseFolding.txt
  131256380bff4fea8ad4a851616f2f10  DerivedAge.txt
  e731a4089b30002144e107e3d6f8d1fa  DerivedCombiningClass.txt
  a47c9fbd7ff92a9b261ba9831e68778a  DerivedCoreProperties.txt
  fcab6dad15e440879d92f315978f93d3  NormalizationCorrections.txt
  f9ff1c55a60decf436100f791b44aa98  NormalizationTest.txt
  755f6af699f8c8d2d958da411f78f6c6  UnicodeData.txt

sha1sums (verify by running "sha1sum -c README.utf8data"):

  dc9245f6803c4ac99555c361f5052e0b13eb779b  CaseFolding.txt
  3281104f237184cdb5d869e86eb8573678ada7da  DerivedAge.txt
  2f5f995ccb96e0fa84b15151b35d5e2681535175  DerivedCombiningClass.txt
  5b8698a3fcd5018e1987f296b02e2c17e696415e  DerivedCoreProperties.txt
  cd83935fbc012345d8792d2c704f69497e753835  NormalizationCorrections.txt
  ea419aae505b337b0d99a83fa83fe58ddff7c19f  NormalizationTest.txt
  dc973c0fc93d6f09d9ab9f70d1c9f89c447f0526  UnicodeData.txt


To update to the newer version of the Unicode standard, the latest
released version of the UCD can be found here:

  http://www.unicode.org/Public/UCD/latest/

Then, build under fs/unicode/ with REGENERATE_UTF8DATA=1:

	make REGENERATE_UTF8DATA=1 fs/unicode/

After sanity checking the newly generated utf8data.h file (the
version generated from the 12.1.0 UCD should be 4,109 lines long, and
have a total size of 324k) and/or comparing it with the older version
of utf8data.h_shipped, rename it to utf8data.h_shipped.

If you are a kernel developer updating to a newer version of the
Unicode Character Database, please update this README.utf8data file
with the version of the UCD that was used, the md5sum and sha1sums of
the *.txt files, before checking in the new versions of the utf8data.h
and README.utf8data files.
