//*
//*******************************************************************************
//*
//*   Copyright (C) 2003, International Business Machines
//*   Corporation and others.  All Rights Reserved.
//*
//*******************************************************************************
//*   file name:  root.txt
//*                      
root{                   
                        
    declaration          { 
                             "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
                           //  "<!DOCTYPE ldml SYSTEM \"file://c:/work/devicu/locale/ldml.dtd\" \n"
                           //  "[\n"
                           //  "      <!ENTITY % icu SYSTEM \"file://c:/work/devicu/locale/ldmlICU.dtd\"> \n"
                           //  "%icu;\n"
                           // "]\n"
                           //  ">\n"
                             "<!DOCTYPE ldml SYSTEM \" 	http://oss.software.ibm.com/cvs/icu/~checkout~/locale/ldml.dtd\" \n"
                             "[\n"
                             "      <!ENTITY % icu SYSTEM \" http://oss.software.ibm.com/cvs/icu/~checkout~/locale/ldmlICU.dtd\"> \n"
                             "%icu;\n"
                             "]\n"
                             ">\n"

                             
                         }
    declarationNoSpecials{
                             "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
                             "<!DOCTYPE ldml SYSTEM \"	http://oss.software.ibm.com/cvs/icu/~checkout~/locale/ldml.dtd\">\n"
                         }
    supplementalDeclaration{
                                "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
                                "<!DOCTYPE supplementalData SYSTEM \"http://www.unicode.org/cldr/dtd/1.1/ldmlSupplemental.dtd\" >\n"

                         }
	default				 {
							 "{0}<default type=\"{1}\"/>\n"
						 }
    special              {
                             "{0}<special {1} {2} {3}>\n"
                         }
	specialEnd			 {
							 "{0}</special>\n"
						 }
    alias                {
							 "{0}<alias source=\"{1}\" type=\"{2}\" />\n"
					     }
	localeData           { 
                             "<{0}ldml{1}>\n"
                         }                    
    identity             {
                             "{0}<{1}identity>\n"
                         }  
    version              {   
                             "{0}<version number=\"{1}\"/>\n"
                         }
    generationDate       {
                             "{0}<generation date=\"{1}\" />\n"
                         }
    languageElem         {  
                             "{0}<language type=\"{1}\" /> \n"
                         }
    scriptElem           {
                            "{0}<script type=\"{1}\" /> \n"
                         }
    territoryElem        {  
                             "{0}<territory type=\"{1}\" /> \n"
                         }
    variantElem          {  
                             "{0}<variant type=\"{1}\" /> \n"
                         }
    keyElem              {  
                             "{0}<key type=\"{1}\" /> \n"
                         }
    language             {
                             "{0}<language type=\"{1}\">{2}</language>\n"
                         }
    territory            {
                             "{0}<territory type=\"{1}\">{2}</territory>\n"
                         }
    variant              {
                             "{0}<variant type=\"{1}\">{2}</variant>\n"
                         }                     
    localeDisplayNames   {
                             "{0}<{1}localeDisplayNames>\n"
                         }
    scripts              {
                             "{0}<{1}scripts>\n"
                         }
    script               {
                             "{0}<script type=\"{1}\">{2}</script>\n"
                         }
    languages            {    
                             "{0}<{1}languages>\n"
                         }
    territories          {
                             "{0}<{1}territories>\n"
                         }
    variants             {
                             "{0}<{1}variants>\n"
                         }
	keys                 {
                             "{0}<{1}keys>\n"
                         }
    key                  {
                             "{0}<key type=\"{1}\">{2}</key>\n"
                         }
	types                {
                             "{0}<{1}types>\n"
                         }
    type                 {
                             "{0}<type type=\"{1}\" key=\"{2}\">{3}</type>\n"
                         }
    layout               {
                             "{0}<{1}layout>\n"
                         }
    orientation          {
                             "{0}<orientation lines=\"{1}\" characters=\"{2}\" />\n"
                         }   
    characters           { 
                             "{0}<{1}characters>\n"
                         }
	exemplarCharacters   {
							 "{0}<exemplarCharacters>{1}</exemplarCharacters>\n"
						 }
						    
    mapping              {   
                             "{0}<mapping registry=\"{1}\" type=\"{2}\"/>\n"
                         }
    encodingsEnd         {
                             "{0}</encodings>\n"
                         }
    delimiters           {
                             "{0}<{1}delimiters>\n"
                         }
    quotationStart       {
                             "{0}<quotationStart>{1}</quotationStart>\n"
                         }
    quotationEnd         {
                             "{0}<quotationEnd>{1}</quotationEnd>\n"
                         }
    doubleQuotStart      {   
                             "{0}<doubleQuotationStart>{1}</doubleQuotationStart>\n"
                         }
    doubleQuotEnd        {
                             "{0}<doubleQuotationEnd>{1}</doubleQuotationEnd>\n"
                         }
    measurement          {  
                             "{0}<{1}measurement>\n"
                         }
    measurementSystem    {
                             "{0}<measurementSystem type=\"{1}\"/>\n"
                         }
    paperSize            {    
                             "{0}<{1}paperSize>\n"
                         }
    height               {
                             "{0}<height>{1}</height>\n"
                         }
    width                {   
                             "{0}<width>{1}</width>\n"
                         }
    units                {        
                             "{0}<units>{1}</units>\n"
                         }                       
    dates                {
                             "{0}<{1}dates>\n"
                         }
	localizedChars       {
							 "{0}<localizedPatternChars>{1}</localizedPatternChars>\n"
						 }
	calendars            {
							 "{0}<{1}calendars>\n"
					     }			
    calendarStart        {   
                             "{0}<calendar type=\"{1}\">\n"
						 }
	calendarEnd          {	
							 "{0}</calendar>\n"
                         }
    months               {
                             "{0}<{1}months>\n"
                         }
    monthContext         {
                             "{0}<monthContext type=\"{1}\">\n"
                         }
    monthContextEnd      {
                             "{0}</monthContext>\n"  
                         }
    monthWidth           {
                             "{0}<monthWidth type=\"{1}\">\n"
                         }
    monthWidthEnd        {
                            "{0}</monthWidth>\n"
                         }
    month                {   
                             "{0}<month type=\"{1}\">{2}</month>\n"
                         }
    days                 {
                             "{0}<{1}days>\n"
                         }
    dayContext           {
                             "{0}<dayContext type=\"{1}\">\n"
                         }
    dayContextEnd        {
                             "{0}</dayContext>\n" 
                         }
    dayWidth             {
                             "{0}<dayWidth type=\"{1}\">\n"
                         }
    dayWidthEnd          {
                            "{0}</dayWidth>\n"
                         }
    day                  {
                             "{0}<day type=\"{1}\">{2}</day>\n"
                         }
    dayNamesEnd          {         
                              "{0}</dayNames>\n"
                         }
    week                 {
                              "{0}<{1}week>\n"
                         }
    minDays              {
                             "{0}<minDays count=\"{1}\"/>\n"
                         }
    firstDay             {
                             "{0}<firstDay day=\"{1}\"/>\n"
                         }
    weekendStart         {
                             "{0}<weekendStart draft=\"true\" day=\"{1}\" time=\"{2}\"/>\n"
                         }
    weekendEnd           {
                             "{0}<weekendEnd draft=\"true\" day=\"{1}\" time=\"{2}\"/>\n"
                         }
    am                   {
                             "{0}<am>{1}</am>\n"
                         }
    pm                   {
                             "{0}<pm>{1}</pm>\n"
                         }
    eras                 {
                             "{0}<{1}eras>\n"
                         }
	eraAbbr				 {
							 "{0}<{1}eraAbbr>\n"
					     }
	eraNames			 {
							 "{0}<{1}eraNames>\n"
						 }
    era                  {
                             "{0}<era type=\"{1}\">{2}</era>\n"
                         }
	dateFormats          {
							 "{0}<{1}dateFormats>\n"
						 }
	dateFormatLength	 {
							 "{0}<{1}dateFormatLength {2}>\n"
					     }
	dateFormatStart		 {
							 "{0}<dateFormat {1}>\n"
						 }
	dateFormatEnd        {
							 "{0}</dateFormat>\n"
						 }
    pattern              {
                             "{0}<pattern>{1}</pattern>\n"
                         }
    displayName          {
                              "{0}<displayName>{1}</displayName>\n"
                         }
	timeFormats          {
							 "{0}<{1}timeFormats>\n"
						 }
	timeFormatLength	 {
							 "{0}<{1}timeFormatLength {2}>\n"
					     }
	timeFormatStart  	 {
							 "{0}<timeFormat {1}>\n"
					     }
	timeFormatEnd        {
							 "{0}</timeFormat>\n"
						 }
	dateTimeFormats      {
							 "{0}<{1}dateTimeFormats>\n"
						 }              
	dateTimeFormatLength {
							 "{0}<{1}dateTimeFormatLength {2}>\n"
					     }
	dateTimeFormatStart	 {
							 "{0}<dateTimeFormat>\n"
						 }
	dateTimeFormatEnd	 {
							 "{0}</dateTimeFormat>\n"
					     }
    timeZone             {
                              "{0}<{1}timeZoneNames>\n"
                         }
    zoneStart            {
                              "{0}<zone type=\"{1}\">\n"
						 }
	zoneEnd				 {
							  "{0}</zone>\n"
                         }
    long                 {    
                             "{0}<{1}long>\n"
                         }
    generic              {    
                             "{0}<generic>{1}</generic>\n"
                         }
    standard             {
                             "{0}<standard>{1}</standard>\n"
                         }
    daylight             {
                             "{0}<daylight>{1}</daylight>\n"
                         }
    short                {
                             "{0}<{1}short>\n"
                         }
    exemplarCity         {
                             "{0}<exemplarCity>{1}</exemplarCity>\n"
                         }                      
    numbers              {
                             "{0}<{1}numbers>\n"
                         }
                        
    symbols              {
                             "{0}<{1}symbols>\n"
                         }
    decimal              {
                             "{0}<decimal>{1}</decimal>\n"
                         }
    group                {
                             "{0}<group>{1}</group>\n"
                         }
    list                 {
                             "{0}<list>{1}</list>\n"
                         }
    percentSign          {
                             "{0}<percentSign>{1}</percentSign>\n"
                         }
    negativeZero         {
                             "{0}<nativeZeroDigit>{1}</nativeZeroDigit>\n"
                         }
    patternDigit         {
                             "{0}<patternDigit>{1}</patternDigit>\n"
                         }
    plusSign             {
                             "{0}<plusSign>{1}</plusSign>\n"
                         }
    minusSign            {
                             "{0}<minusSign>{1}</minusSign>\n"
                         }
    exponential          {
                             "{0}<exponential>{1}</exponential>\n"
                         }
    perMille             {
                             "{0}<perMille>{1}</perMille>\n"
                         }
    infinity             {
                             "{0}<infinity>{1}</infinity>\n"
                         }
    nan                  {   
                             "{0}<nan>{1}</nan>\n"
                         }
    decimalFormats       {
                             "{0}<{1}decimalFormats>\n" 
                         }
    decimalFormatLength  {
                             "{0}<{1}decimalFormatLength {2}>\n" 
                         }
    decimalFormatStart   {
							 "{0}<decimalFormat {1}>\n"
						 }
	decimalFormatEnd     {
							 "{0}</decimalFormat>\n"
						 }
    percentFormats       {
                             "{0}<{1}percentFormats>\n" 
                         }
    percentFormatLength  {
                             "{0}<{1}percentFormatLength {2}>\n" 
                         }
    percentFormatStart   {
							 "{0}<percentFormat {1}>\n"
						 }
	percentFormatEnd     {
							 "{0}</percentFormat>\n"
						 }
    scientificFormats    {
                             "{0}<{1}scientificFormats>\n" 
                         }
    scientificFormatLength{
                             "{0}<{1}scientificFormatLength {2}>\n" 
                         }
    scientificFormatStart{
							 "{0}<scientificFormat {1}>\n"
						 }
	scientificFormatEnd  {
							 "{0}</scientificFormat>\n"
						 }
    currencyFormats      {
                             "{0}<{1}currencyFormats>\n" 
                         }
    currencyFormatLength {
                             "{0}<{1}currencyFormatLength {2}>\n" 
                         }
    currencyFormatStart  {
							 "{0}<currencyFormat {1}>\n"
						 }
	currencyFormatEnd    {
							 "{0}</currencyFormat>\n"
						 }
    currencies           {
                             "{0}<{1}currencies>\n"
                         }
    currencyStart        {
                             "{0}<currency type=\"{1}\">\n"
						 }
	currencyEnd			 {
							 "{0}</currency>\n"
                         }
    symbol               {
                             "{0}<symbol>{1}</symbol>\n"
                         }
	collations		     {
							 "{0}<{1}collations>\n"
						 }
    collation            {
                             "{0}<{1}collation {2} >\n"
                         }
	baseStart		     {		
							 "{0}<base>\n"
						 }
    baseEnd              {
                             "{0}</base>\n"
                         }   
	settings			 {
							 "{0}<settings {1} />\n"
						 }
	rules				 {
							 "{0}<{1}rules>\n"
						 }
    reset                {
                             "{0}<reset>{1}</reset>\n"
                         }
    primary              {
                             "{0}<p>{1}</p>"
                         }
    secondary            {
                             "{0}<s>{1}</s>"
                         }
    tertiary             {
                             "{0}<t>{1}</t>"
                         }
	quaternary           {
                             "{0}<q>{1}</q>"
                         }
	identical			 {
							 "{0}<i>{1}</i>"
						 }
    primarySeq           {
                             "{0}<pc>{1}</pc>"
                         }
    secondarySeq         {
                             "{0}<sc>{1}</sc>"
                         }
    tertiarySeq          {
                             "{0}<tc>{1}</tc>"
                         }
	quarternarySeq       {
                             "{0}<qc>{1}</qc>"
                         }
	identicalSeq         {
							 "{0}<ic>{1}</ic>"
					     }
    extend               {
                             "{0}<extend>{1}</extend>"
                         }

	context				 {
							 "{0}<context>{1}</context>"
						 }

    collator             {
                             "{0}<collator type=\"{1}\"/>\n"
                         }
                        
    collatorEnd          {
                             "{0}</collator>\n"
                         }
                        
    boundaries           {  
                             "{0}<{1}boundaries>\n"
                         }
    graphemeStart        {
                             "{0}<grapheme class=\"{1}\">\n"
						 }
	graphemeEnd  		 {
							 "{0}</grapheme>\n"
                         }
    wordStart            {
                             "{0}<word class=\"{1}\" import=\"{2}\" >\n"
					     }
	wordEnd				 {
							 "{0}</word>\n"
                         }
    sentenceStart        {
                             "{0}<sentence class=\"{1}\">\n"
						 }
	sentenceEnd  		 {
							 "{0}</sentence>\n"
                         }
    lineStart            {
                             "{0}<line class=\"{1}\">\n"
						 }
	lineEnd     		 {
							 "{0}</line>\n"
                         }
    numberingLevel       {      
                             "{0}<numberingLevel Prefix=\"{1}\" NumType=\"{2}\" Suffix=\"{3}\" />\n"
                         }
    reservedWords        {
                             "{0}<{1}reservedWords>\n"
                         }
    trueWord             {        
                             "{0}<trueWord>{1}</trueWord>\n"
                         }
    falseWord            {
                             "{0}<falseWord>{1}</falseWord>\n"
                         }
    quarterWord          {
                             "{0}<quarter{1}Word>{2}</quarter{1}Word>\n"
                         }
    aboveWord            {
                             "{0}<aboveWord>{1}</aboveWord>\n"
                         }
    belowWord            {
                             "{0}<belowWord>{1}</belowWord>\n"
                         }
    transliterationMod   {   
                             "{0}<transliterationModules>{1}</transliterationModules>\n"
                         }
    outLineNumberingLevel{   
                             "{1}<outLineNumberingLevel>{0}</outLineNumberingLevel>\n"
                         }
    messages             {
                             "{0}<{1}messages>\n"
                         }
    no                   {
                             "{0}<no>{1}</no>\n"
                         }
    yes                  {
                             "{0}<yes>{1}</yes>\n"
                         }
    shortYes             {
                             "{0}<shortYes>{1}</shortYes>\n"
                         }
    shortNo              {
                             "{0}<shortNo>{1}</shortNo>\n"
                         }
	cp					 {
							 "<cp hex=\"{1}\" />"
					     }
	suppressContractions {
							 "{0}<suppress_contractions>{1}</suppress_contractions>\n"
						 }
	optimize			 {
							 "{0}<optimize>{1}</optimize>\n"
						 }
	firstTIgnorable		 {
							 "<first_tertiary_ignorable/>"
					     }
    lastTIgnorable       {
                             "<last_tertiary_ignorable/>"
                         }

	firstSIgnorable		 {
							 "<first_secondary_ignorable/>"
					     }
    lastSIgnorable       {
                             "<last_secondary_ignorable/>"
                         }
    firstPIgnorable		 {
							 "<first_primary_ignorable/>"
					     }
    lastPIgnorable       {
                             "<last_primary_ignorable/>"
                         }
    firstVariable    	 {
							 "<first_variable/>"
					     }
	lastVariable		 {    
							 "<last_variable/>"
						 }
    firstNonIgnorable    {
                             "<first_non_ignorable>"
                         }
    lastNonIgnorable	 {
							 "<last_non_ignorable/>"
						 }
    implicits            {
                             "<implicits/>"
                         }
    firstTrailing    	 {
							 "<first_trailing/>"
					     }
	lastTrailing		 {    
							 "<last_trailing/>"
						 }
	resetWithValue		 {
							 "{0}<reset {1}=\"{2}\">{3}</reset>\n"
					     }
	ruleBasedNFS		 {
							 "{0}<{1}icu:ruleBasedNumberFormats>\n"
						 }
	ruleBasedNF			 {
							 "{0}<icu:ruleBasedNumberFormat type=\"{1}\">\n{2}\n{3}</icu:ruleBasedNumberFormat>\n"
					     }
    xmlns_icu            {
                             "xmlns:icu=\"http://oss.software.ibm.com/icu/\""
                         }
    icu_scripts          {
                             "{0}<{1}icu:scripts>\n"
                         }
    icu_script           {
                             "{0}<icu:script type=\"{1}\">{2}</icu:script>\n"
                         }
    supplementalData     {
                             "<{0}supplementalData>\n"
                         }
    currencyData         {
                             "{0}<{1}currencyData>\n"
                         }
    fractions            {
                             "{0}<{1}fractions>\n"
                         }
    info                 {
                             "{0}<info iso4217=\"{1}\" {2} {3} />\n"
                         }
    rounding             {
                             "rounding=\"{0}\""
                         }
    digits               {
                             "digits=\"{0}\""
                         }
    regionStart          {
                            "{0}<region iso3166=\"{1}\">\n"
                         }
    regionEnd            {                  
                            "{0}</region>\n"
                         }
    suppCurrencyStart    {
                            "{0}<currency iso4217=\"{1}\" {2}>\n"
                         }
    suppCurrencyEnd      {
                            "{0}</currency>\n"
                         }
    before               {
                            "before=\"{0}\""
                         }
    alternate            {
                            "{0}<alternate iso4217=\"{1}\"/>\n"
                         }

//          <addressFormat>
//              <postalPattern>"%n%N%a%N%d%N%f%N%b%N%h %s%N%e %r%N%l%N%C-%z %T%, %S %z%N%c%N"</postalPattern>
//          </addressFormat>
//   
//          <nameFormat>
//              <namePattern>%p%t%g%m%t%f</namePattern>
//              <generalSalutation></generalSalutation>
//              <shortSalutationMr> Mr.</shortSalutationMr>
//              <shortSalutationMiss>Ms.</shortSalutationMiss>
//              <shortSalutationMrs>Mrs.</shortSalutationMrs>
//              <longSalutationMr> Mister.</longSalutationMr>
//              <longSalutationMiss>Miss</longSalutationMiss>
//              <longSalutationMrs>Mrs.</longSalutationMrs>
//          </nameFormat>
//   
//          <identification>
//              <!-- Identification of the person who produced the data file. -->
//              <title></title>
//              <source></source>
//              <address></address>
//           <contact></contact>
//              <email></email>
//              <telephone></telephone>
//              <fax></fax>
//              <languageUsed></languageUsed>
//              <country></country>
//              <audience></audience>
//              <application></application>
//              <abbreviation></abbreviation>
//              <revision></revision>
//              <date></date>
//          </identification>
//   
//          <telephoneFormat>
//              <internationalPattern>+%c (%a)%t-%l</internationalPattern>
//              <domesticPattern>(%a)%t-%l</domesticPattern>
//              <internationalDialCode>001 </internationalDialCode>
//              <internationalPrefix> </internationalPrefix>
//       </telephoneFormat>
//   
//          <countryInfo>
//            <countryPost>US</countryPost>
//            <countryCar>US</countryCar>
//            <countryNumber type="666"/>
//            <countryISBNNumber type="666"/>
//          </countryInfo>
//
//   
//
}
