1*912701f9SAndroid Build Coastguard Worker<?xml version="1.0" encoding="UTF-8" ?> 2*912701f9SAndroid Build Coastguard Worker<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd"> 3*912701f9SAndroid Build Coastguard Worker<!-- 4*912701f9SAndroid Build Coastguard WorkerCopyright © 1991-2023 Unicode, Inc. 5*912701f9SAndroid Build Coastguard WorkerSPDX-License-Identifier: Unicode-3.0 6*912701f9SAndroid Build Coastguard WorkerCLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/) 7*912701f9SAndroid Build Coastguard WorkerFor terms of use, see http://www.unicode.org/copyright.html 8*912701f9SAndroid Build Coastguard Worker--> 9*912701f9SAndroid Build Coastguard Worker<ldml> 10*912701f9SAndroid Build Coastguard Worker <identity> 11*912701f9SAndroid Build Coastguard Worker <version number="$Revision: 13690 $"/> 12*912701f9SAndroid Build Coastguard Worker <language type="root"/> 13*912701f9SAndroid Build Coastguard Worker </identity> 14*912701f9SAndroid Build Coastguard Worker <segmentations> 15*912701f9SAndroid Build Coastguard Worker <segmentation type="GraphemeClusterBreak"> 16*912701f9SAndroid Build Coastguard Worker <variables> 17*912701f9SAndroid Build Coastguard Worker <!-- VARIABLES --> 18*912701f9SAndroid Build Coastguard Worker <variable id="$CR">\p{Grapheme_Cluster_Break=CR}</variable> 19*912701f9SAndroid Build Coastguard Worker <variable id="$LF">\p{Grapheme_Cluster_Break=LF}</variable> 20*912701f9SAndroid Build Coastguard Worker <variable id="$Control">\p{Grapheme_Cluster_Break=Control}</variable> 21*912701f9SAndroid Build Coastguard Worker <variable id="$Extend">\p{Grapheme_Cluster_Break=Extend}</variable> 22*912701f9SAndroid Build Coastguard Worker <variable id="$ZWJ">\p{Grapheme_Cluster_Break=ZWJ}</variable> 23*912701f9SAndroid Build Coastguard Worker <variable id="$RI">\p{Grapheme_Cluster_Break=Regional_Indicator}</variable> 24*912701f9SAndroid Build Coastguard Worker <variable id="$Prepend">\p{Grapheme_Cluster_Break=Prepend}</variable> 25*912701f9SAndroid Build Coastguard Worker <variable id="$SpacingMark">\p{Grapheme_Cluster_Break=SpacingMark}</variable> 26*912701f9SAndroid Build Coastguard Worker <variable id="$L">\p{Grapheme_Cluster_Break=L}</variable> 27*912701f9SAndroid Build Coastguard Worker <variable id="$V">\p{Grapheme_Cluster_Break=V}</variable> 28*912701f9SAndroid Build Coastguard Worker <variable id="$T">\p{Grapheme_Cluster_Break=T}</variable> 29*912701f9SAndroid Build Coastguard Worker <variable id="$LV">\p{Grapheme_Cluster_Break=LV}</variable> 30*912701f9SAndroid Build Coastguard Worker <variable id="$LVT">\p{Grapheme_Cluster_Break=LVT}</variable> 31*912701f9SAndroid Build Coastguard Worker <!-- Note: The following may overlap with the above --> 32*912701f9SAndroid Build Coastguard Worker <!-- Note: ConjunctLinkingScripts is not used anymore, instead that list exists in the derivation of Indic_Conjunct_Break. --> 33*912701f9SAndroid Build Coastguard Worker <!-- It is kept here so that the diff of the generated test cases compared to the Unicode 15.1 β is minimal. --> 34*912701f9SAndroid Build Coastguard Worker <!-- TODO(egg): Consider removing in Unicode 16.0. --> 35*912701f9SAndroid Build Coastguard Worker <variable id="$ConjunctLinkingScripts">[\p{Gujr}\p{sc=Telu}\p{sc=Mlym}\p{sc=Orya}\p{sc=Beng}\p{sc=Deva}]</variable> 36*912701f9SAndroid Build Coastguard Worker <variable id="$ConjunctLinker">\p{Indic_Conjunct_Break=Linker}</variable> 37*912701f9SAndroid Build Coastguard Worker <variable id="$LinkingConsonant">\p{Indic_Conjunct_Break=Consonant}</variable> 38*912701f9SAndroid Build Coastguard Worker <variable id="$ExtPict">\p{Extended_Pictographic}</variable> 39*912701f9SAndroid Build Coastguard Worker <variable id="$ExtCccZwj">[\p{Indic_Conjunct_Break=Linker}\p{Indic_Conjunct_Break=Extend}]</variable> 40*912701f9SAndroid Build Coastguard Worker </variables> 41*912701f9SAndroid Build Coastguard Worker <segmentRules> 42*912701f9SAndroid Build Coastguard Worker <!-- RULES --> 43*912701f9SAndroid Build Coastguard Worker <!-- Break at the start and end of text, unless the text is empty. --> 44*912701f9SAndroid Build Coastguard Worker <!-- Do not break between a CR and LF. Otherwise, break before and after controls. --> 45*912701f9SAndroid Build Coastguard Worker <rule id="3"> $CR × $LF </rule> 46*912701f9SAndroid Build Coastguard Worker <rule id="4"> ( $Control | $CR | $LF ) ÷ </rule> 47*912701f9SAndroid Build Coastguard Worker <rule id="5"> ÷ ( $Control | $CR | $LF ) </rule> 48*912701f9SAndroid Build Coastguard Worker <!-- Do not break Hangul syllable sequences. --> 49*912701f9SAndroid Build Coastguard Worker <rule id="6"> $L × ( $L | $V | $LV | $LVT ) </rule> 50*912701f9SAndroid Build Coastguard Worker <rule id="7"> ( $LV | $V ) × ( $V | $T ) </rule> 51*912701f9SAndroid Build Coastguard Worker <rule id="8"> ( $LVT | $T) × $T </rule> 52*912701f9SAndroid Build Coastguard Worker <rule id="9"> × ($Extend | $ZWJ) </rule> 53*912701f9SAndroid Build Coastguard Worker <!-- Only for extended grapheme clusters: Do not break before SpacingMarks, or after Prepend characters. --> 54*912701f9SAndroid Build Coastguard Worker <rule id="9.1"> × $SpacingMark </rule> 55*912701f9SAndroid Build Coastguard Worker <rule id="9.2"> $Prepend × </rule> 56*912701f9SAndroid Build Coastguard Worker <rule id="9.3"> $LinkingConsonant $ExtCccZwj* $ConjunctLinker $ExtCccZwj* × $LinkingConsonant </rule> 57*912701f9SAndroid Build Coastguard Worker <rule id="11"> $ExtPict $Extend* $ZWJ × $ExtPict </rule> 58*912701f9SAndroid Build Coastguard Worker <!-- Do not break within emoji flag sequences. That is, do not break between regional indicator (RI) symbols if there is an odd number of RI characters before the break point. --> 59*912701f9SAndroid Build Coastguard Worker <rule id="12"> ^ ($RI $RI)* $RI × $RI </rule> 60*912701f9SAndroid Build Coastguard Worker <rule id="13"> [^$RI] ($RI $RI)* $RI × $RI </rule> 61*912701f9SAndroid Build Coastguard Worker <!-- Otherwise, break everywhere. --> 62*912701f9SAndroid Build Coastguard Worker </segmentRules> 63*912701f9SAndroid Build Coastguard Worker </segmentation> 64*912701f9SAndroid Build Coastguard Worker <segmentation type="LineBreak"> 65*912701f9SAndroid Build Coastguard Worker <variables> 66*912701f9SAndroid Build Coastguard Worker <!-- VARIABLES --> 67*912701f9SAndroid Build Coastguard Worker <variable id="$AI">\p{Line_Break=Ambiguous}</variable> 68*912701f9SAndroid Build Coastguard Worker <variable id="$AK">\p{Line_Break=Aksara}</variable> 69*912701f9SAndroid Build Coastguard Worker <variable id="$AL">\p{Line_Break=Alphabetic}</variable> 70*912701f9SAndroid Build Coastguard Worker <variable id="$AP">\p{Line_Break=Aksara_Prebase}</variable> 71*912701f9SAndroid Build Coastguard Worker <variable id="$AS">\p{Line_Break=Aksara_Start}</variable> 72*912701f9SAndroid Build Coastguard Worker <variable id="$B2">\p{Line_Break=Break_Both}</variable> 73*912701f9SAndroid Build Coastguard Worker <variable id="$BA">\p{Line_Break=Break_After}</variable> 74*912701f9SAndroid Build Coastguard Worker <variable id="$BB">\p{Line_Break=Break_Before}</variable> 75*912701f9SAndroid Build Coastguard Worker <variable id="$BK">\p{Line_Break=Mandatory_Break}</variable> 76*912701f9SAndroid Build Coastguard Worker <variable id="$CB">\p{Line_Break=Contingent_Break}</variable> 77*912701f9SAndroid Build Coastguard Worker <variable id="$CL">\p{Line_Break=Close_Punctuation}</variable> 78*912701f9SAndroid Build Coastguard Worker <variable id="$CP">\p{Line_Break=CP}</variable> 79*912701f9SAndroid Build Coastguard Worker <variable id="$CM1">\p{Line_Break=Combining_Mark}</variable> 80*912701f9SAndroid Build Coastguard Worker <variable id="$CR">\p{Line_Break=Carriage_Return}</variable> 81*912701f9SAndroid Build Coastguard Worker <variable id="$EX">\p{Line_Break=Exclamation}</variable> 82*912701f9SAndroid Build Coastguard Worker <variable id="$GL">\p{Line_Break=Glue}</variable> 83*912701f9SAndroid Build Coastguard Worker <variable id="$H2">\p{Line_Break=H2}</variable> 84*912701f9SAndroid Build Coastguard Worker <variable id="$H3">\p{Line_Break=H3}</variable> 85*912701f9SAndroid Build Coastguard Worker <variable id="$HL">\p{Line_Break=HL}</variable> 86*912701f9SAndroid Build Coastguard Worker <variable id="$HY">\p{Line_Break=Hyphen}</variable> 87*912701f9SAndroid Build Coastguard Worker <variable id="$ID">\p{Line_Break=Ideographic}</variable> 88*912701f9SAndroid Build Coastguard Worker <variable id="$IN">\p{Line_Break=Inseparable}</variable> 89*912701f9SAndroid Build Coastguard Worker <variable id="$IS">\p{Line_Break=Infix_Numeric}</variable> 90*912701f9SAndroid Build Coastguard Worker <variable id="$JL">\p{Line_Break=JL}</variable> 91*912701f9SAndroid Build Coastguard Worker <variable id="$JT">\p{Line_Break=JT}</variable> 92*912701f9SAndroid Build Coastguard Worker <variable id="$JV">\p{Line_Break=JV}</variable> 93*912701f9SAndroid Build Coastguard Worker <variable id="$LF">\p{Line_Break=Line_Feed}</variable> 94*912701f9SAndroid Build Coastguard Worker <variable id="$NL">\p{Line_Break=Next_Line}</variable> 95*912701f9SAndroid Build Coastguard Worker <variable id="$NS">\p{Line_Break=Nonstarter}</variable> 96*912701f9SAndroid Build Coastguard Worker <variable id="$NU">\p{Line_Break=Numeric}</variable> 97*912701f9SAndroid Build Coastguard Worker <variable id="$OP">\p{Line_Break=Open_Punctuation}</variable> 98*912701f9SAndroid Build Coastguard Worker <variable id="$PO">\p{Line_Break=Postfix_Numeric}</variable> 99*912701f9SAndroid Build Coastguard Worker <variable id="$PR">\p{Line_Break=Prefix_Numeric}</variable> 100*912701f9SAndroid Build Coastguard Worker <variable id="$QU">\p{Line_Break=Quotation}</variable> 101*912701f9SAndroid Build Coastguard Worker <variable id="$SA">\p{Line_Break=Complex_Context}</variable> 102*912701f9SAndroid Build Coastguard Worker <variable id="$SG">\p{Line_Break=Surrogate}</variable> 103*912701f9SAndroid Build Coastguard Worker <variable id="$SP">\p{Line_Break=Space}</variable> 104*912701f9SAndroid Build Coastguard Worker <variable id="$SY">\p{Line_Break=Break_Symbols}</variable> 105*912701f9SAndroid Build Coastguard Worker <variable id="$VF">\p{Line_Break=Virama_Final}</variable> 106*912701f9SAndroid Build Coastguard Worker <variable id="$VI">\p{Line_Break=Virama}</variable> 107*912701f9SAndroid Build Coastguard Worker <variable id="$WJ">\p{Line_Break=Word_Joiner}</variable> 108*912701f9SAndroid Build Coastguard Worker <variable id="$XX">\p{Line_Break=Unknown}</variable> 109*912701f9SAndroid Build Coastguard Worker <variable id="$ZW">\p{Line_Break=ZWSpace}</variable> 110*912701f9SAndroid Build Coastguard Worker <variable id="$CJ">\p{Line_Break=Conditional_Japanese_Starter}</variable> 111*912701f9SAndroid Build Coastguard Worker <variable id="$RI">\p{Line_Break=Regional_Indicator}</variable> 112*912701f9SAndroid Build Coastguard Worker <variable id="$EB">\p{Line_Break=E_Base}</variable> 113*912701f9SAndroid Build Coastguard Worker <variable id="$EM">\p{Line_Break=E_Modifier}</variable> 114*912701f9SAndroid Build Coastguard Worker <variable id="$ZWJ_O">\p{Line_Break=ZWJ}</variable> 115*912701f9SAndroid Build Coastguard Worker <variable id="$ZWJ">\p{Line_Break=ZWJ}</variable> 116*912701f9SAndroid Build Coastguard Worker <variable id="$QU_Pi">[$QU & \p{gc=Pi}]</variable> 117*912701f9SAndroid Build Coastguard Worker <variable id="$QU_Pf">[$QU & \p{gc=Pf}]</variable> 118*912701f9SAndroid Build Coastguard Worker <variable id="$DottedCircle">◌</variable> 119*912701f9SAndroid Build Coastguard Worker <variable id="$CP30">[$CP-[\p{ea=F}\p{ea=W}\p{ea=H}]]</variable> 120*912701f9SAndroid Build Coastguard Worker <variable id="$OP30">[$OP-[\p{ea=F}\p{ea=W}\p{ea=H}]]</variable> 121*912701f9SAndroid Build Coastguard Worker <variable id="$ExtPictUnassigned">[\p{Extended_Pictographic}&\p{gc=Cn}]</variable> 122*912701f9SAndroid Build Coastguard Worker <!-- Some rules refer to the start and end of text. We could just use a literal ^ for sot, but naming --> 123*912701f9SAndroid Build Coastguard Worker <!-- it as in the spec makes it easier to compare. The parser will eat (and choke on) $, so we play a --> 124*912701f9SAndroid Build Coastguard Worker <!-- stupid trick instead. --> 125*912701f9SAndroid Build Coastguard Worker <variable id="$sot">^</variable> 126*912701f9SAndroid Build Coastguard Worker <variable id="$eot">(?!.)</variable> 127*912701f9SAndroid Build Coastguard Worker <!-- SPECIAL EXTENSIONS --> 128*912701f9SAndroid Build Coastguard Worker <variable id="$CM">[$CM1 $ZWJ]</variable> 129*912701f9SAndroid Build Coastguard Worker <!-- LB 1 Assign a line breaking class to each code point of the input. --> 130*912701f9SAndroid Build Coastguard Worker <!-- Resolve AI, CB, SA, SG, and XX into other line breaking classes depending on criteria outside the scope of this algorithm. --> 131*912701f9SAndroid Build Coastguard Worker <!-- NOTE: CB is ok to fall through, but must handle others here. --> 132*912701f9SAndroid Build Coastguard Worker <variable id="$AL">[$AI $AL $SG $XX $SA]</variable> 133*912701f9SAndroid Build Coastguard Worker <variable id="$NS">[$NS $CJ]</variable> 134*912701f9SAndroid Build Coastguard Worker <!-- WARNING: Fixes for Rule 9 --> 135*912701f9SAndroid Build Coastguard Worker <!-- Treat X (CM|ZWJ* as if it were X. --> 136*912701f9SAndroid Build Coastguard Worker <!-- Where X is any line break class except SP, BK, CR, LF, NL or ZW. --> 137*912701f9SAndroid Build Coastguard Worker <variable id="$X">$CM*</variable> 138*912701f9SAndroid Build Coastguard Worker <!-- MACROS --> 139*912701f9SAndroid Build Coastguard Worker <variable id="$Spec1_">[$SP $BK $CR $LF $NL $ZW]</variable> 140*912701f9SAndroid Build Coastguard Worker <variable id="$Spec2_">[^ $SP $BK $CR $LF $NL $ZW]</variable> 141*912701f9SAndroid Build Coastguard Worker <variable id="$Spec3a_">[^ $SP $BA $HY $CM]</variable> 142*912701f9SAndroid Build Coastguard Worker <variable id="$Spec3b_">[^ $BA $HY $CM]</variable> 143*912701f9SAndroid Build Coastguard Worker <variable id="$Spec4_">[^ $NU $CM]</variable> 144*912701f9SAndroid Build Coastguard Worker <variable id="$AI">($AI $X)</variable> 145*912701f9SAndroid Build Coastguard Worker <variable id="$AK">($AK $X)</variable> 146*912701f9SAndroid Build Coastguard Worker <variable id="$AL">($AL $X)</variable> 147*912701f9SAndroid Build Coastguard Worker <variable id="$AP">($AP $X)</variable> 148*912701f9SAndroid Build Coastguard Worker <variable id="$AS">($AS $X)</variable> 149*912701f9SAndroid Build Coastguard Worker <variable id="$B2">($B2 $X)</variable> 150*912701f9SAndroid Build Coastguard Worker <variable id="$BA">($BA $X)</variable> 151*912701f9SAndroid Build Coastguard Worker <variable id="$BB">($BB $X)</variable> 152*912701f9SAndroid Build Coastguard Worker <variable id="$CB">($CB $X)</variable> 153*912701f9SAndroid Build Coastguard Worker <variable id="$CL">($CL $X)</variable> 154*912701f9SAndroid Build Coastguard Worker <variable id="$CP">($CP $X)</variable> 155*912701f9SAndroid Build Coastguard Worker <variable id="$CM">($CM $X)</variable> 156*912701f9SAndroid Build Coastguard Worker <variable id="$EX">($EX $X)</variable> 157*912701f9SAndroid Build Coastguard Worker <variable id="$GL">($GL $X)</variable> 158*912701f9SAndroid Build Coastguard Worker <variable id="$H2">($H2 $X)</variable> 159*912701f9SAndroid Build Coastguard Worker <variable id="$H3">($H3 $X)</variable> 160*912701f9SAndroid Build Coastguard Worker <variable id="$HL">($HL $X)</variable> 161*912701f9SAndroid Build Coastguard Worker <variable id="$HY">($HY $X)</variable> 162*912701f9SAndroid Build Coastguard Worker <variable id="$ID">($ID $X)</variable> 163*912701f9SAndroid Build Coastguard Worker <variable id="$IN">($IN $X)</variable> 164*912701f9SAndroid Build Coastguard Worker <variable id="$IS">($IS $X)</variable> 165*912701f9SAndroid Build Coastguard Worker <variable id="$JL">($JL $X)</variable> 166*912701f9SAndroid Build Coastguard Worker <variable id="$JT">($JT $X)</variable> 167*912701f9SAndroid Build Coastguard Worker <variable id="$JV">($JV $X)</variable> 168*912701f9SAndroid Build Coastguard Worker <variable id="$NS">($NS $X)</variable> 169*912701f9SAndroid Build Coastguard Worker <variable id="$NU">($NU $X)</variable> 170*912701f9SAndroid Build Coastguard Worker <variable id="$OP">($OP $X)</variable> 171*912701f9SAndroid Build Coastguard Worker <variable id="$PO">($PO $X)</variable> 172*912701f9SAndroid Build Coastguard Worker <variable id="$PR">($PR $X)</variable> 173*912701f9SAndroid Build Coastguard Worker <variable id="$QU">($QU $X)</variable> 174*912701f9SAndroid Build Coastguard Worker <variable id="$SA">($SA $X)</variable> 175*912701f9SAndroid Build Coastguard Worker <variable id="$SG">($SG $X)</variable> 176*912701f9SAndroid Build Coastguard Worker <variable id="$SY">($SY $X)</variable> 177*912701f9SAndroid Build Coastguard Worker <variable id="$VF">($VF $X)</variable> 178*912701f9SAndroid Build Coastguard Worker <variable id="$VI">($VI $X)</variable> 179*912701f9SAndroid Build Coastguard Worker <variable id="$WJ">($WJ $X)</variable> 180*912701f9SAndroid Build Coastguard Worker <variable id="$XX">($XX $X)</variable> 181*912701f9SAndroid Build Coastguard Worker <variable id="$RI">($RI $X)</variable> 182*912701f9SAndroid Build Coastguard Worker <variable id="$EB">($EB $X)</variable> 183*912701f9SAndroid Build Coastguard Worker <variable id="$EM">($EM $X)</variable> 184*912701f9SAndroid Build Coastguard Worker <variable id="$ZWJ">($ZWJ $X)</variable> 185*912701f9SAndroid Build Coastguard Worker <variable id="$QU_Pi">($QU_Pi $X)</variable> 186*912701f9SAndroid Build Coastguard Worker <variable id="$QU_Pf">($QU_Pf $X)</variable> 187*912701f9SAndroid Build Coastguard Worker <variable id="$DottedCircle">($DottedCircle $X)</variable> 188*912701f9SAndroid Build Coastguard Worker <variable id="$CP30">($CP30 $X)</variable> 189*912701f9SAndroid Build Coastguard Worker <variable id="$OP30">($OP30 $X)</variable> 190*912701f9SAndroid Build Coastguard Worker <!-- OUT OF ORDER ON PURPOSE --> 191*912701f9SAndroid Build Coastguard Worker <!-- LB 10 Treat any remaining combining mark as AL. --> 192*912701f9SAndroid Build Coastguard Worker <variable id="$AL">($AL | ^ $CM | (?<=$Spec1_) $CM)</variable> 193*912701f9SAndroid Build Coastguard Worker </variables> 194*912701f9SAndroid Build Coastguard Worker <segmentRules> 195*912701f9SAndroid Build Coastguard Worker <!-- RULES --> 196*912701f9SAndroid Build Coastguard Worker <!-- LB 4 Always break after hard line breaks (but never between CR and LF). --> 197*912701f9SAndroid Build Coastguard Worker <rule id="4"> $BK ÷ </rule> 198*912701f9SAndroid Build Coastguard Worker <!-- LB 5 Treat CR followed by LF, as well as CR, LF and NL as hard line breaks. --> 199*912701f9SAndroid Build Coastguard Worker <rule id="5.01"> $CR × $LF </rule> 200*912701f9SAndroid Build Coastguard Worker <rule id="5.02"> $CR ÷ </rule> 201*912701f9SAndroid Build Coastguard Worker <rule id="5.03"> $LF ÷ </rule> 202*912701f9SAndroid Build Coastguard Worker <rule id="5.04"> $NL ÷ </rule> 203*912701f9SAndroid Build Coastguard Worker <!-- LB 6 Do not break before hard line breaks. --> 204*912701f9SAndroid Build Coastguard Worker <rule id="6"> × ( $BK | $CR | $LF | $NL ) </rule> 205*912701f9SAndroid Build Coastguard Worker <!-- LB 7 Do not break before spaces or zero-width space. --> 206*912701f9SAndroid Build Coastguard Worker <rule id="7.01"> × $SP </rule> 207*912701f9SAndroid Build Coastguard Worker <rule id="7.02"> × $ZW </rule> 208*912701f9SAndroid Build Coastguard Worker <!-- LB 8 Break before any character following a zero-width space, even if one or more spaces intervene. --> 209*912701f9SAndroid Build Coastguard Worker <rule id="8"> $ZW $SP* ÷ </rule> 210*912701f9SAndroid Build Coastguard Worker <!-- LB 8a Don't break between ZWJ and IDs (for use in Emoji ZWJ sequences) --> 211*912701f9SAndroid Build Coastguard Worker <rule id="8.1"> $ZWJ_O × </rule> 212*912701f9SAndroid Build Coastguard Worker <!-- LB 9 Do not break a combining character sequence; treat it as if it has the LB class of the base character --> 213*912701f9SAndroid Build Coastguard Worker <!-- in all of the following rules. (Where X is any line break class except SP, BK, CR, LF, NL or ZW.) --> 214*912701f9SAndroid Build Coastguard Worker <rule id="9"> $Spec2_ × $CM </rule> 215*912701f9SAndroid Build Coastguard Worker <rule id="11.01"> × $WJ </rule> 216*912701f9SAndroid Build Coastguard Worker <rule id="11.02"> $WJ × </rule> 217*912701f9SAndroid Build Coastguard Worker <!-- LB 12 Do not break after NBSP and related characters. --> 218*912701f9SAndroid Build Coastguard Worker <rule id="12"> $GL × </rule> 219*912701f9SAndroid Build Coastguard Worker <rule id="12.1"> $Spec3a_ × $GL </rule> 220*912701f9SAndroid Build Coastguard Worker <rule id="12.2"> $Spec3b_ $CM+ × $GL </rule> 221*912701f9SAndroid Build Coastguard Worker <rule id="12.3"> ^ $CM+ × $GL </rule> 222*912701f9SAndroid Build Coastguard Worker <!-- LB 13 Do not break before \u2018]\u2019 or \u2018!\u2019 or \u2018;\u2019 or \u2018/\u2019, even after spaces. --> 223*912701f9SAndroid Build Coastguard Worker <!-- Using customization 7. --> 224*912701f9SAndroid Build Coastguard Worker <rule id="13.01"> × $EX </rule> 225*912701f9SAndroid Build Coastguard Worker <rule id="13.02"> $Spec4_ × ($CL | $CP | $IS | $SY) </rule> 226*912701f9SAndroid Build Coastguard Worker <rule id="13.03"> $Spec4_ $CM+ × ($CL | $CP | $IS | $SY) </rule> 227*912701f9SAndroid Build Coastguard Worker <rule id="13.04"> ^ $CM+ × ($CL | $CP | $IS | $SY) </rule> 228*912701f9SAndroid Build Coastguard Worker <!-- LB 14 Do not break after \u2018[\u2019, even after spaces. --> 229*912701f9SAndroid Build Coastguard Worker <rule id="14"> $OP $SP* × </rule> 230*912701f9SAndroid Build Coastguard Worker <!-- LB 15a Do not break after an unresolved initial punctuation that lies at the start of the line, --> 231*912701f9SAndroid Build Coastguard Worker <!-- after a space, after opening punctuation, or after an unresolved quotation mark, even after --> 232*912701f9SAndroid Build Coastguard Worker <!-- spaces. --> 233*912701f9SAndroid Build Coastguard Worker <rule id="15.11"> ( $sot | $BK | $CR | $LF | $NL | $OP | $QU | $GL | $SP | $ZW ) $QU_Pi $SP* × </rule> 234*912701f9SAndroid Build Coastguard Worker <!-- LB 15b Do not break before an unresolved final punctuation that lies at the end of the line, before --> 235*912701f9SAndroid Build Coastguard Worker <!-- a space, before a prohibited break, or before an unresolved quotation mark, even before spaces. --> 236*912701f9SAndroid Build Coastguard Worker <rule id="15.21"> × $QU_Pf ( $SP | $GL | $WJ | $CL | $QU | $CP | $EX | $IS | $SY | $BK | $CR | $LF | $NL | $ZW | $eot ) </rule> 237*912701f9SAndroid Build Coastguard Worker <!-- LB 16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces. --> 238*912701f9SAndroid Build Coastguard Worker <rule id="16"> ($CL | $CP) $SP* × $NS </rule> 239*912701f9SAndroid Build Coastguard Worker <!-- LB 17 Do not break within \u2018\u2014\u2014\u2019, even with intervening spaces. --> 240*912701f9SAndroid Build Coastguard Worker <rule id="17"> $B2 $SP* × $B2 </rule> 241*912701f9SAndroid Build Coastguard Worker <!-- LB 18 Break after spaces. --> 242*912701f9SAndroid Build Coastguard Worker <rule id="18"> $SP ÷ </rule> 243*912701f9SAndroid Build Coastguard Worker <!-- LB 19 Do not break before or after \u2018\"\u2019. --> 244*912701f9SAndroid Build Coastguard Worker <rule id="19.01"> × $QU </rule> 245*912701f9SAndroid Build Coastguard Worker <rule id="19.02"> $QU × </rule> 246*912701f9SAndroid Build Coastguard Worker <!-- LB 20 Break before and after unresolved CB. --> 247*912701f9SAndroid Build Coastguard Worker <rule id="20.01"> ÷ $CB </rule> 248*912701f9SAndroid Build Coastguard Worker <rule id="20.02"> $CB ÷ </rule> 249*912701f9SAndroid Build Coastguard Worker <!-- LB 21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana and other non-starters, or after acute accents. --> 250*912701f9SAndroid Build Coastguard Worker <rule id="21.01"> × $BA </rule> 251*912701f9SAndroid Build Coastguard Worker <rule id="21.02"> × $HY </rule> 252*912701f9SAndroid Build Coastguard Worker <rule id="21.03"> × $NS </rule> 253*912701f9SAndroid Build Coastguard Worker <rule id="21.04"> $BB × </rule> 254*912701f9SAndroid Build Coastguard Worker <!-- LB 21a Don't break after Hebrew + Hyphen. --> 255*912701f9SAndroid Build Coastguard Worker <rule id="21.1"> $HL ($HY | $BA) × </rule> 256*912701f9SAndroid Build Coastguard Worker <!-- LB 21b Don’t break between Solidus and Hebrew letters. --> 257*912701f9SAndroid Build Coastguard Worker <rule id="21.2"> $SY × $HL </rule> 258*912701f9SAndroid Build Coastguard Worker <!-- LB 22 Do not break before ellipses. --> 259*912701f9SAndroid Build Coastguard Worker <rule id="22"> × $IN </rule> 260*912701f9SAndroid Build Coastguard Worker <!-- LB 23 Do not break between digits and letters. --> 261*912701f9SAndroid Build Coastguard Worker <rule id="23.02"> ($AL | $HL) × $NU </rule> 262*912701f9SAndroid Build Coastguard Worker <rule id="23.03"> $NU × ($AL | $HL) </rule> 263*912701f9SAndroid Build Coastguard Worker <!-- LB 24 Do not break between prefix and letters or ideographs. --> 264*912701f9SAndroid Build Coastguard Worker <rule id="23.12"> $PR × ($ID | $EB | $EM) </rule> 265*912701f9SAndroid Build Coastguard Worker <rule id="23.13"> ($ID | $EB | $EM) × $PO </rule> 266*912701f9SAndroid Build Coastguard Worker <!-- LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix. --> 267*912701f9SAndroid Build Coastguard Worker <rule id="24.02"> ($PR | $PO) × ($AL | $HL) </rule> 268*912701f9SAndroid Build Coastguard Worker <rule id="24.03"> ($AL | $HL) × ($PR | $PO) </rule> 269*912701f9SAndroid Build Coastguard Worker <!-- Using customization 7 --> 270*912701f9SAndroid Build Coastguard Worker <!-- LB Alternative: ( PR | PO) ? ( OP | HY ) ? NU (NU | SY | IS) * (CL | CP) ? ( PR | PO) ? --> 271*912701f9SAndroid Build Coastguard Worker <!-- Insert × every place it could go. However, make sure that at least one thing is concrete, otherwise would cause $NU to not break before or after --> 272*912701f9SAndroid Build Coastguard Worker <rule id="25.01"> ($PR | $PO) × ( $OP | $HY )? $NU </rule> 273*912701f9SAndroid Build Coastguard Worker <rule id="25.02"> ( $OP | $HY ) × $NU </rule> 274*912701f9SAndroid Build Coastguard Worker <rule id="25.03"> $NU × ($NU | $SY | $IS) </rule> 275*912701f9SAndroid Build Coastguard Worker <rule id="25.04"> $NU ($NU | $SY | $IS)* × ($NU | $SY | $IS | $CL | $CP) </rule> 276*912701f9SAndroid Build Coastguard Worker <rule id="25.05"> $NU ($NU | $SY | $IS)* ($CL | $CP)? × ($PO | $PR) </rule> 277*912701f9SAndroid Build Coastguard Worker <!-- LB 26 Do not break a Korean syllable. --> 278*912701f9SAndroid Build Coastguard Worker <rule id="26.01"> $JL × $JL | $JV | $H2 | $H3 </rule> 279*912701f9SAndroid Build Coastguard Worker <rule id="26.02"> $JV | $H2 × $JV | $JT </rule> 280*912701f9SAndroid Build Coastguard Worker <rule id="26.03"> $JT | $H3 × $JT </rule> 281*912701f9SAndroid Build Coastguard Worker <!-- LB 27 Treat a Korean Syllable Block the same as ID. --> 282*912701f9SAndroid Build Coastguard Worker <rule id="27.01"> $JL | $JV | $JT | $H2 | $H3 × $PO </rule> 283*912701f9SAndroid Build Coastguard Worker <rule id="27.02"> $PR × $JL | $JV | $JT | $H2 | $H3 </rule> 284*912701f9SAndroid Build Coastguard Worker <!-- LB 28 Do not break between alphabetics (\"at\"). --> 285*912701f9SAndroid Build Coastguard Worker <rule id="28"> ($AL | $HL) × ($AL | $HL) </rule> 286*912701f9SAndroid Build Coastguard Worker <!-- LB28a Do not break inside the orthographic syllables of Brahmic scripts. --> 287*912701f9SAndroid Build Coastguard Worker <rule id="28.11"> $AP × ($AK | $DottedCircle | $AS) </rule> 288*912701f9SAndroid Build Coastguard Worker <rule id="28.12"> ($AK | $DottedCircle | $AS) × ($VF | $VI) </rule> 289*912701f9SAndroid Build Coastguard Worker <rule id="28.13"> ($AK | $DottedCircle | $AS) $VI × ($AK | $DottedCircle) </rule> 290*912701f9SAndroid Build Coastguard Worker <rule id="28.14"> ($AK | $DottedCircle | $AS) × ($AK | $DottedCircle | $AS) $VF </rule> 291*912701f9SAndroid Build Coastguard Worker <!-- LB 29 Do not break between numeric punctuation and alphabetics (\"e.g.\"). --> 292*912701f9SAndroid Build Coastguard Worker <rule id="29"> $IS × ($AL | $HL) </rule> 293*912701f9SAndroid Build Coastguard Worker <!-- LB 30 Do not break between letters, numbers or ordinary symbols and opening or closing punctuation. --> 294*912701f9SAndroid Build Coastguard Worker <rule id="30.01"> ($AL | $HL | $NU) × $OP30 </rule> 295*912701f9SAndroid Build Coastguard Worker <rule id="30.02"> $CP30 × ($AL | $HL | $NU) </rule> 296*912701f9SAndroid Build Coastguard Worker <!-- LB 30a Break between two Regional Indicators if and only if there is an even number of them before the point being considered. --> 297*912701f9SAndroid Build Coastguard Worker <rule id="30.11"> $sot ($RI $RI)* $RI × $RI </rule> 298*912701f9SAndroid Build Coastguard Worker <rule id="30.12"> [^$RI] ($RI $RI)* $RI × $RI </rule> 299*912701f9SAndroid Build Coastguard Worker <rule id="30.13"> $RI ÷ $RI </rule> 300*912701f9SAndroid Build Coastguard Worker <!-- LB 30b Do not break between an emoji base (or potential emoji) and an emoji modifier. --> 301*912701f9SAndroid Build Coastguard Worker <rule id="30.21"> $EB × $EM </rule> 302*912701f9SAndroid Build Coastguard Worker <rule id="30.22"> $ExtPictUnassigned × $EM </rule> 303*912701f9SAndroid Build Coastguard Worker </segmentRules> 304*912701f9SAndroid Build Coastguard Worker </segmentation> 305*912701f9SAndroid Build Coastguard Worker <segmentation type="SentenceBreak"> 306*912701f9SAndroid Build Coastguard Worker <variables> 307*912701f9SAndroid Build Coastguard Worker <!-- VARIABLES --> 308*912701f9SAndroid Build Coastguard Worker <variable id="$CR">\p{Sentence_Break=CR}</variable> 309*912701f9SAndroid Build Coastguard Worker <variable id="$LF">\p{Sentence_Break=LF}</variable> 310*912701f9SAndroid Build Coastguard Worker <variable id="$Extend">\p{Sentence_Break=Extend}</variable> 311*912701f9SAndroid Build Coastguard Worker <variable id="$Format">\p{Sentence_Break=Format}</variable> 312*912701f9SAndroid Build Coastguard Worker <variable id="$Sep">\p{Sentence_Break=Sep}</variable> 313*912701f9SAndroid Build Coastguard Worker <variable id="$Sp">\p{Sentence_Break=Sp}</variable> 314*912701f9SAndroid Build Coastguard Worker <variable id="$Lower">\p{Sentence_Break=Lower}</variable> 315*912701f9SAndroid Build Coastguard Worker <variable id="$Upper">\p{Sentence_Break=Upper}</variable> 316*912701f9SAndroid Build Coastguard Worker <variable id="$OLetter">\p{Sentence_Break=OLetter}</variable> 317*912701f9SAndroid Build Coastguard Worker <variable id="$Numeric">\p{Sentence_Break=Numeric}</variable> 318*912701f9SAndroid Build Coastguard Worker <variable id="$ATerm">\p{Sentence_Break=ATerm}</variable> 319*912701f9SAndroid Build Coastguard Worker <variable id="$STerm">\p{Sentence_Break=STerm}</variable> 320*912701f9SAndroid Build Coastguard Worker <variable id="$Close">\p{Sentence_Break=Close}</variable> 321*912701f9SAndroid Build Coastguard Worker <variable id="$SContinue">\p{Sentence_Break=SContinue}</variable> 322*912701f9SAndroid Build Coastguard Worker <variable id="$Any">.</variable> 323*912701f9SAndroid Build Coastguard Worker <!-- SPECIAL EXTENSIONS --> 324*912701f9SAndroid Build Coastguard Worker <!-- WARNING: For Rule 5, now add format and extend to everything but Sep, Format, and Extend --> 325*912701f9SAndroid Build Coastguard Worker <variable id="$FE">[$Format $Extend]</variable> 326*912701f9SAndroid Build Coastguard Worker <variable id="$NotPreLower_">[^ $OLetter $Upper $Lower $Sep $CR $LF $STerm $ATerm]</variable> 327*912701f9SAndroid Build Coastguard Worker <variable id="$Sp">($Sp $FE*)</variable> 328*912701f9SAndroid Build Coastguard Worker <variable id="$Lower">($Lower $FE*)</variable> 329*912701f9SAndroid Build Coastguard Worker <variable id="$Upper">($Upper $FE*)</variable> 330*912701f9SAndroid Build Coastguard Worker <variable id="$OLetter">($OLetter $FE*)</variable> 331*912701f9SAndroid Build Coastguard Worker <variable id="$Numeric">($Numeric $FE*)</variable> 332*912701f9SAndroid Build Coastguard Worker <variable id="$ATerm">($ATerm $FE*)</variable> 333*912701f9SAndroid Build Coastguard Worker <variable id="$STerm">($STerm $FE*)</variable> 334*912701f9SAndroid Build Coastguard Worker <variable id="$Close">($Close $FE*)</variable> 335*912701f9SAndroid Build Coastguard Worker <variable id="$SContinue">($SContinue $FE*)</variable> 336*912701f9SAndroid Build Coastguard Worker <!-- MACROS --> 337*912701f9SAndroid Build Coastguard Worker <variable id="$ParaSep">($Sep | $CR | $LF)</variable> 338*912701f9SAndroid Build Coastguard Worker <variable id="$SATerm">($STerm | $ATerm)</variable> 339*912701f9SAndroid Build Coastguard Worker </variables> 340*912701f9SAndroid Build Coastguard Worker <segmentRules> 341*912701f9SAndroid Build Coastguard Worker <!-- RULES --> 342*912701f9SAndroid Build Coastguard Worker <!-- Break at the start and end of text, unless the text is empty. --> 343*912701f9SAndroid Build Coastguard Worker <!-- Do not break within CRLF. --> 344*912701f9SAndroid Build Coastguard Worker <rule id="3"> $CR × $LF </rule> 345*912701f9SAndroid Build Coastguard Worker <!-- Break after paragraph separators. --> 346*912701f9SAndroid Build Coastguard Worker <rule id="4"> $ParaSep ÷ </rule> 347*912701f9SAndroid Build Coastguard Worker <!-- Ignore Format and Extend characters, except after sot, ParaSep, and within CRLF. (See Section 6.2, Replacing Ignore Rules.) This also has the effect of: Any × (Format | Extend) --> 348*912701f9SAndroid Build Coastguard Worker <!-- WARNING: Implemented as don't break before format (except after linebreaks), --> 349*912701f9SAndroid Build Coastguard Worker <!-- AND add format and extend in all variables definitions that appear after this point! --> 350*912701f9SAndroid Build Coastguard Worker <rule id="5"> × [$Format $Extend] </rule> 351*912701f9SAndroid Build Coastguard Worker <!-- Do not break after full stop in certain contexts. [See note below.] --> 352*912701f9SAndroid Build Coastguard Worker <!-- Do not break after ambiguous terminators like period, if immediately followed by a number or lowercase letter, --> 353*912701f9SAndroid Build Coastguard Worker <!-- is between uppercase letters, or if the first following letter (optionally after certain punctuation) is lowercase. --> 354*912701f9SAndroid Build Coastguard Worker <!-- For example, a period may be an abbreviation or numeric period, and not mark the end of a sentence. --> 355*912701f9SAndroid Build Coastguard Worker <rule id="6"> $ATerm × $Numeric </rule> 356*912701f9SAndroid Build Coastguard Worker <rule id="7"> ($Upper | $Lower) $ATerm × $Upper </rule> 357*912701f9SAndroid Build Coastguard Worker <rule id="8"> $ATerm $Close* $Sp* × $NotPreLower_* $Lower </rule> 358*912701f9SAndroid Build Coastguard Worker <rule id="8.1"> $SATerm $Close* $Sp* × ($SContinue | $SATerm) </rule> 359*912701f9SAndroid Build Coastguard Worker <!-- Break after sentence terminators, but include closing punctuation, trailing spaces, and any paragraph separator. [See note below.] Include closing punctuation, trailing spaces, and (optionally) a paragraph separator. --> 360*912701f9SAndroid Build Coastguard Worker <rule id="9"> $SATerm $Close* × ( $Close | $Sp | $ParaSep ) </rule> 361*912701f9SAndroid Build Coastguard Worker <!-- Note the fix to $Sp*, $Sep? --> 362*912701f9SAndroid Build Coastguard Worker <rule id="10"> $SATerm $Close* $Sp* × ( $Sp | $ParaSep ) </rule> 363*912701f9SAndroid Build Coastguard Worker <rule id="11"> $SATerm $Close* $Sp* $ParaSep? ÷ </rule> 364*912701f9SAndroid Build Coastguard Worker <!-- Otherwise, do not break --> 365*912701f9SAndroid Build Coastguard Worker <rule id="998"> × $Any </rule> 366*912701f9SAndroid Build Coastguard Worker </segmentRules> 367*912701f9SAndroid Build Coastguard Worker </segmentation> 368*912701f9SAndroid Build Coastguard Worker <segmentation type="WordBreak"> 369*912701f9SAndroid Build Coastguard Worker <variables> 370*912701f9SAndroid Build Coastguard Worker <!-- VARIABLES --> 371*912701f9SAndroid Build Coastguard Worker <variable id="$CR">\p{Word_Break=CR}</variable> 372*912701f9SAndroid Build Coastguard Worker <variable id="$LF">\p{Word_Break=LF}</variable> 373*912701f9SAndroid Build Coastguard Worker <variable id="$Newline">\p{Word_Break=Newline}</variable> 374*912701f9SAndroid Build Coastguard Worker <variable id="$Extend">\p{Word_Break=Extend}</variable> 375*912701f9SAndroid Build Coastguard Worker <!-- Now normal variables --> 376*912701f9SAndroid Build Coastguard Worker <variable id="$Format">[\p{Word_Break=Format}]</variable> 377*912701f9SAndroid Build Coastguard Worker <variable id="$Katakana">\p{Word_Break=Katakana}</variable> 378*912701f9SAndroid Build Coastguard Worker <variable id="$ALetter">\p{Word_Break=ALetter}</variable> 379*912701f9SAndroid Build Coastguard Worker <variable id="$MidLetter">[\p{Word_Break = MidLetter} - [\: \uFE55 \uFF1A]]</variable> 380*912701f9SAndroid Build Coastguard Worker <variable id="$MidNum">\p{Word_Break=MidNum}</variable> 381*912701f9SAndroid Build Coastguard Worker <variable id="$MidNumLet">\p{Word_Break=MidNumLet}</variable> 382*912701f9SAndroid Build Coastguard Worker <variable id="$Numeric">\p{Word_Break=Numeric}</variable> 383*912701f9SAndroid Build Coastguard Worker <variable id="$ExtendNumLet">\p{Word_Break=ExtendNumLet}</variable> 384*912701f9SAndroid Build Coastguard Worker <variable id="$RI">\p{Word_Break=Regional_Indicator}</variable> 385*912701f9SAndroid Build Coastguard Worker <variable id="$Hebrew_Letter">\p{Word_Break=Hebrew_Letter}</variable> 386*912701f9SAndroid Build Coastguard Worker <variable id="$Double_Quote">\p{Word_Break=Double_Quote}</variable> 387*912701f9SAndroid Build Coastguard Worker <variable id="$Single_Quote">\p{Word_Break=Single_Quote}</variable> 388*912701f9SAndroid Build Coastguard Worker <variable id="$ZWJ">\p{Word_Break=ZWJ}</variable> 389*912701f9SAndroid Build Coastguard Worker <!-- Note: The following may overlap with the above --> 390*912701f9SAndroid Build Coastguard Worker <variable id="$ExtPict">\p{Extended_Pictographic}</variable> 391*912701f9SAndroid Build Coastguard Worker <variable id="$WSegSpace">\p{Word_Break=WSegSpace}</variable> 392*912701f9SAndroid Build Coastguard Worker <!-- MACROS --> 393*912701f9SAndroid Build Coastguard Worker <variable id="$AHLetter">($ALetter | $Hebrew_Letter)</variable> 394*912701f9SAndroid Build Coastguard Worker <variable id="$MidNumLetQ">($MidNumLet | $Single_Quote)</variable> 395*912701f9SAndroid Build Coastguard Worker <!-- SPECIAL EXTENSIONS --> 396*912701f9SAndroid Build Coastguard Worker <!-- Add format and extend to everything --> 397*912701f9SAndroid Build Coastguard Worker <variable id="$FE">[$Format $Extend $ZWJ]</variable> 398*912701f9SAndroid Build Coastguard Worker <variable id="$NotBreak_">[^ $Newline $CR $LF ]</variable> 399*912701f9SAndroid Build Coastguard Worker <variable id="$Katakana">($Katakana $FE*)</variable> 400*912701f9SAndroid Build Coastguard Worker <variable id="$ALetter">($ALetter $FE*)</variable> 401*912701f9SAndroid Build Coastguard Worker <variable id="$MidLetter">($MidLetter $FE*)</variable> 402*912701f9SAndroid Build Coastguard Worker <variable id="$MidNum">($MidNum $FE*)</variable> 403*912701f9SAndroid Build Coastguard Worker <variable id="$MidNumLet">($MidNumLet $FE*)</variable> 404*912701f9SAndroid Build Coastguard Worker <variable id="$Numeric">($Numeric $FE*)</variable> 405*912701f9SAndroid Build Coastguard Worker <variable id="$ExtendNumLet">($ExtendNumLet $FE*)</variable> 406*912701f9SAndroid Build Coastguard Worker <variable id="$RI">($RI $FE*)</variable> 407*912701f9SAndroid Build Coastguard Worker <variable id="$Hebrew_Letter">($Hebrew_Letter $FE*)</variable> 408*912701f9SAndroid Build Coastguard Worker <variable id="$Double_Quote">($Double_Quote $FE*)</variable> 409*912701f9SAndroid Build Coastguard Worker <variable id="$Single_Quote">($Single_Quote $FE*)</variable> 410*912701f9SAndroid Build Coastguard Worker <variable id="$AHLetter">($AHLetter $FE*)</variable> 411*912701f9SAndroid Build Coastguard Worker <variable id="$MidNumLetQ">($MidNumLetQ $FE*)</variable> 412*912701f9SAndroid Build Coastguard Worker </variables> 413*912701f9SAndroid Build Coastguard Worker <segmentRules> 414*912701f9SAndroid Build Coastguard Worker <!-- RULES --> 415*912701f9SAndroid Build Coastguard Worker <!-- Break at the start and end of text, unless the text is empty. --> 416*912701f9SAndroid Build Coastguard Worker <!-- Do not break within CRLF. --> 417*912701f9SAndroid Build Coastguard Worker <rule id="3"> $CR × $LF </rule> 418*912701f9SAndroid Build Coastguard Worker <!-- Otherwise break before and after Newlines (including CR and LF) --> 419*912701f9SAndroid Build Coastguard Worker <rule id="3.1"> ($Newline | $CR | $LF) ÷ </rule> 420*912701f9SAndroid Build Coastguard Worker <rule id="3.2"> ÷ ($Newline | $CR | $LF) </rule> 421*912701f9SAndroid Build Coastguard Worker <!-- Do not break within emoji zwj sequences. --> 422*912701f9SAndroid Build Coastguard Worker <rule id="3.3"> $ZWJ × $ExtPict </rule> 423*912701f9SAndroid Build Coastguard Worker <rule id="3.4"> $WSegSpace × $WSegSpace </rule> 424*912701f9SAndroid Build Coastguard Worker <!-- Ignore Format and Extend characters, except after sot, CR, LF, and Newline. (See Section 6.2, Replacing Ignore Rules.) This also has the effect of: Any × (Format | Extend) --> 425*912701f9SAndroid Build Coastguard Worker <!-- WARNING: Implemented as don't break before format (except after linebreaks), --> 426*912701f9SAndroid Build Coastguard Worker <!-- AND add format and extend in all variables definitions that appear after this point! --> 427*912701f9SAndroid Build Coastguard Worker <rule id="4"> $NotBreak_ × [$Format $Extend $ZWJ] </rule> 428*912701f9SAndroid Build Coastguard Worker <!-- VANILLA RULES --> 429*912701f9SAndroid Build Coastguard Worker <!-- Do not break between most letters. --> 430*912701f9SAndroid Build Coastguard Worker <rule id="5"> $AHLetter × $AHLetter </rule> 431*912701f9SAndroid Build Coastguard Worker <!-- Do not break letters across certain punctuation. --> 432*912701f9SAndroid Build Coastguard Worker <rule id="6"> $AHLetter × ($MidLetter | $MidNumLetQ) $AHLetter </rule> 433*912701f9SAndroid Build Coastguard Worker <rule id="7"> $AHLetter ($MidLetter | $MidNumLetQ) × $AHLetter </rule> 434*912701f9SAndroid Build Coastguard Worker <rule id="7.1"> $Hebrew_Letter × $Single_Quote </rule> 435*912701f9SAndroid Build Coastguard Worker <rule id="7.2"> $Hebrew_Letter × $Double_Quote $Hebrew_Letter </rule> 436*912701f9SAndroid Build Coastguard Worker <rule id="7.3"> $Hebrew_Letter $Double_Quote × $Hebrew_Letter </rule> 437*912701f9SAndroid Build Coastguard Worker <!-- Do not break within sequences of digits, or digits adjacent to letters (“3a”, or “A3”). --> 438*912701f9SAndroid Build Coastguard Worker <rule id="8"> $Numeric × $Numeric </rule> 439*912701f9SAndroid Build Coastguard Worker <rule id="9"> $AHLetter × $Numeric </rule> 440*912701f9SAndroid Build Coastguard Worker <rule id="10"> $Numeric × $AHLetter </rule> 441*912701f9SAndroid Build Coastguard Worker <!-- Do not break within sequences, such as “3.2” or “3,456.789”. --> 442*912701f9SAndroid Build Coastguard Worker <rule id="11"> $Numeric ($MidNum | $MidNumLetQ) × $Numeric </rule> 443*912701f9SAndroid Build Coastguard Worker <rule id="12"> $Numeric × ($MidNum | $MidNumLetQ) $Numeric </rule> 444*912701f9SAndroid Build Coastguard Worker <!-- Do not break between Katakana. --> 445*912701f9SAndroid Build Coastguard Worker <rule id="13"> $Katakana × $Katakana </rule> 446*912701f9SAndroid Build Coastguard Worker <!-- Do not break from extenders. --> 447*912701f9SAndroid Build Coastguard Worker <rule id="13.1"> ($AHLetter | $Numeric | $Katakana | $ExtendNumLet) × $ExtendNumLet </rule> 448*912701f9SAndroid Build Coastguard Worker <rule id="13.2"> $ExtendNumLet × ($AHLetter | $Numeric | $Katakana) </rule> 449*912701f9SAndroid Build Coastguard Worker <!-- Do not break within emoji flag sequences. That is, do not break between regional indicator (RI) symbols if there is an odd number of RI characters before the break point. --> 450*912701f9SAndroid Build Coastguard Worker <rule id="15"> ^ ($RI $RI)* $RI × $RI </rule> 451*912701f9SAndroid Build Coastguard Worker <rule id="16"> [^$RI] ($RI $RI)* $RI × $RI </rule> 452*912701f9SAndroid Build Coastguard Worker <!-- Otherwise, break everywhere (including around ideographs). --> 453*912701f9SAndroid Build Coastguard Worker </segmentRules> 454*912701f9SAndroid Build Coastguard Worker </segmentation> 455*912701f9SAndroid Build Coastguard Worker </segmentations> 456*912701f9SAndroid Build Coastguard Worker</ldml> 457