<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1777970058">
  <project timestamp="1777970058">
    <file name="/src/src/Constants.php">
      <class name="UtfNormal\Constants" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="104" ncloc="59" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/src/src/Utils.php">
      <class name="UtfNormal\Utils" namespace="global">
        <metrics complexity="12" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="0" elements="34" coveredelements="0"/>
      </class>
      <line num="44" type="method" name="codepointToUtf8" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="77" type="method" name="hexSequenceToUtf8" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="95" type="method" name="utf8ToHexSequence" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="113" type="method" name="utf8ToCodepoint" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="123" type="method" name="escapeSingleString" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <metrics loc="133" ncloc="62" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="0" elements="34" coveredelements="0"/>
    </file>
    <file name="/src/src/Validator.php">
      <class name="UtfNormal\Validator" namespace="global">
        <metrics complexity="127" methods="18" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="349" coveredstatements="280" elements="367" coveredelements="285"/>
      </class>
      <line num="35" type="stmt" count="0"/>
      <line num="96" type="method" name="cleanUp" visibility="public" complexity="6" crap="6.35" count="24"/>
      <line num="97" type="stmt" count="24"/>
      <line num="98" type="stmt" count="24"/>
      <line num="99" type="stmt" count="5"/>
      <line num="101" type="stmt" count="23"/>
      <line num="102" type="stmt" count="23"/>
      <line num="103" type="stmt" count="23"/>
      <line num="106" type="stmt" count="17"/>
      <line num="110" type="stmt" count="16"/>
      <line num="113" type="stmt" count="5"/>
      <line num="116" type="stmt" count="19"/>
      <line num="117" type="stmt" count="19"/>
      <line num="118" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="126" type="method" name="prependIsolatedCombining" visibility="public" complexity="1" crap="1" count="19"/>
      <line num="127" type="stmt" count="19"/>
      <line num="128" type="stmt" count="19"/>
      <line num="139" type="method" name="toNFC" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="140" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="143" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="156" type="method" name="toNFD" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="174" type="method" name="toNFKC" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="176" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <line num="180" type="stmt" count="0"/>
      <line num="192" type="method" name="toNFKD" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="205" type="method" name="loadData" visibility="public" complexity="2" crap="2" count="19"/>
      <line num="207" type="stmt" count="19"/>
      <line num="208" type="stmt" count="1"/>
      <line num="218" type="method" name="quickIsNFC" visibility="public" complexity="9" crap="90" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <line num="225" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="229" type="stmt" count="0"/>
      <line num="230" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="233" type="stmt" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="239" type="stmt" count="0"/>
      <line num="240" type="stmt" count="0"/>
      <line num="241" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="247" type="stmt" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="262" type="method" name="quickIsNFCVerify" visibility="public" complexity="40" crap="40" count="89"/>
      <line num="264" type="stmt" count="89"/>
      <line num="269" type="stmt" count="89"/>
      <line num="270" type="stmt" count="0"/>
      <line num="273" type="stmt" count="89"/>
      <line num="274" type="stmt" count="89"/>
      <line num="276" type="stmt" count="1"/>
      <line num="278" type="stmt" count="1"/>
      <line num="281" type="stmt" count="1"/>
      <line num="282" type="stmt" count="1"/>
      <line num="283" type="stmt" count="1"/>
      <line num="284" type="stmt" count="1"/>
      <line num="288" type="stmt" count="1"/>
      <line num="289" type="stmt" count="1"/>
      <line num="290" type="stmt" count="1"/>
      <line num="291" type="stmt" count="1"/>
      <line num="292" type="stmt" count="1"/>
      <line num="293" type="stmt" count="1"/>
      <line num="294" type="stmt" count="1"/>
      <line num="295" type="stmt" count="1"/>
      <line num="296" type="stmt" count="1"/>
      <line num="297" type="stmt" count="1"/>
      <line num="298" type="stmt" count="1"/>
      <line num="299" type="stmt" count="1"/>
      <line num="300" type="stmt" count="1"/>
      <line num="301" type="stmt" count="1"/>
      <line num="303" type="stmt" count="1"/>
      <line num="305" type="stmt" count="1"/>
      <line num="313" type="stmt" count="89"/>
      <line num="314" type="stmt" count="89"/>
      <line num="315" type="stmt" count="89"/>
      <line num="316" type="stmt" count="89"/>
      <line num="318" type="stmt" count="89"/>
      <line num="319" type="stmt" count="89"/>
      <line num="320" type="stmt" count="89"/>
      <line num="321" type="stmt" count="89"/>
      <line num="322" type="stmt" count="89"/>
      <line num="324" type="stmt" count="89"/>
      <line num="327" type="stmt" count="85"/>
      <line num="328" type="stmt" count="85"/>
      <line num="338" type="stmt" count="89"/>
      <line num="340" type="stmt" count="89"/>
      <line num="342" type="stmt" count="89"/>
      <line num="343" type="stmt" count="89"/>
      <line num="344" type="stmt" count="89"/>
      <line num="346" type="stmt" count="74"/>
      <line num="349" type="stmt" count="74"/>
      <line num="351" type="stmt" count="68"/>
      <line num="352" type="stmt" count="26"/>
      <line num="356" type="stmt" count="14"/>
      <line num="357" type="stmt" count="14"/>
      <line num="358" type="stmt" count="14"/>
      <line num="359" type="stmt" count="14"/>
      <line num="362" type="stmt" count="21"/>
      <line num="363" type="stmt" count="21"/>
      <line num="364" type="stmt" count="21"/>
      <line num="367" type="stmt" count="21"/>
      <line num="368" type="stmt" count="21"/>
      <line num="369" type="stmt" count="21"/>
      <line num="371" type="stmt" count="68"/>
      <line num="373" type="stmt" count="60"/>
      <line num="376" type="stmt" count="55"/>
      <line num="381" type="stmt" count="17"/>
      <line num="385" type="stmt" count="16"/>
      <line num="386" type="stmt" count="16"/>
      <line num="387" type="stmt" count="16"/>
      <line num="388" type="stmt" count="16"/>
      <line num="389" type="stmt" count="16"/>
      <line num="393" type="stmt" count="38"/>
      <line num="401" type="stmt" count="38"/>
      <line num="402" type="stmt" count="38"/>
      <line num="403" type="stmt" count="38"/>
      <line num="406" type="stmt" count="38"/>
      <line num="407" type="stmt" count="38"/>
      <line num="408" type="stmt" count="38"/>
      <line num="412" type="stmt" count="38"/>
      <line num="414" type="stmt" count="33"/>
      <line num="415" type="stmt" count="33"/>
      <line num="416" type="stmt" count="33"/>
      <line num="417" type="stmt" count="33"/>
      <line num="418" type="stmt" count="33"/>
      <line num="423" type="stmt" count="16"/>
      <line num="427" type="stmt" count="5"/>
      <line num="431" type="stmt" count="16"/>
      <line num="432" type="stmt" count="89"/>
      <line num="434" type="stmt" count="75"/>
      <line num="435" type="stmt" count="32"/>
      <line num="437" type="stmt" count="29"/>
      <line num="439" type="stmt" count="29"/>
      <line num="444" type="stmt" count="0"/>
      <line num="448" type="stmt" count="15"/>
      <line num="449" type="stmt" count="15"/>
      <line num="452" type="stmt" count="89"/>
      <line num="454" type="stmt" count="89"/>
      <line num="456" type="stmt" count="81"/>
      <line num="457" type="stmt" count="81"/>
      <line num="458" type="stmt" count="81"/>
      <line num="459" type="stmt" count="81"/>
      <line num="460" type="stmt" count="81"/>
      <line num="461" type="stmt" count="76"/>
      <line num="463" type="stmt" count="81"/>
      <line num="464" type="stmt" count="81"/>
      <line num="466" type="stmt" count="81"/>
      <line num="467" type="stmt" count="75"/>
      <line num="469" type="stmt" count="81"/>
      <line num="472" type="stmt" count="89"/>
      <line num="483" type="method" name="NFC" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="484" type="stmt" count="8"/>
      <line num="491" type="method" name="NFD" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="492" type="stmt" count="8"/>
      <line num="494" type="stmt" count="8"/>
      <line num="495" type="stmt" count="8"/>
      <line num="496" type="stmt" count="8"/>
      <line num="503" type="method" name="NFKC" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="504" type="stmt" count="0"/>
      <line num="511" type="method" name="NFKD" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="513" type="stmt" count="0"/>
      <line num="514" type="stmt" count="0"/>
      <line num="517" type="stmt" count="0"/>
      <line num="518" type="stmt" count="0"/>
      <line num="529" type="method" name="fastDecompose" visibility="public" complexity="11" crap="11.05" count="8"/>
      <line num="530" type="stmt" count="8"/>
      <line num="532" type="stmt" count="8"/>
      <line num="533" type="stmt" count="8"/>
      <line num="534" type="stmt" count="8"/>
      <line num="535" type="stmt" count="8"/>
      <line num="536" type="stmt" count="8"/>
      <line num="537" type="stmt" count="8"/>
      <line num="540" type="stmt" count="6"/>
      <line num="541" type="stmt" count="6"/>
      <line num="542" type="stmt" count="8"/>
      <line num="543" type="stmt" count="0"/>
      <line num="544" type="stmt" count="0"/>
      <line num="545" type="stmt" count="8"/>
      <line num="546" type="stmt" count="4"/>
      <line num="547" type="stmt" count="4"/>
      <line num="548" type="stmt" count="8"/>
      <line num="549" type="stmt" count="8"/>
      <line num="550" type="stmt" count="8"/>
      <line num="552" type="stmt" count="8"/>
      <line num="553" type="stmt" count="8"/>
      <line num="554" type="stmt" count="8"/>
      <line num="556" type="stmt" count="8"/>
      <line num="561" type="stmt" count="4"/>
      <line num="562" type="stmt" count="4"/>
      <line num="563" type="stmt" count="4"/>
      <line num="564" type="stmt" count="4"/>
      <line num="565" type="stmt" count="4"/>
      <line num="566" type="stmt" count="4"/>
      <line num="567" type="stmt" count="4"/>
      <line num="568" type="stmt" count="4"/>
      <line num="569" type="stmt" count="4"/>
      <line num="570" type="stmt" count="4"/>
      <line num="571" type="stmt" count="4"/>
      <line num="572" type="stmt" count="4"/>
      <line num="573" type="stmt" count="0"/>
      <line num="574" type="stmt" count="4"/>
      <line num="575" type="stmt" count="4"/>
      <line num="577" type="stmt" count="4"/>
      <line num="580" type="stmt" count="8"/>
      <line num="583" type="stmt" count="8"/>
      <line num="592" type="method" name="fastCombiningSort" visibility="public" complexity="10" crap="10.02" count="8"/>
      <line num="593" type="stmt" count="8"/>
      <line num="595" type="stmt" count="8"/>
      <line num="596" type="stmt" count="8"/>
      <line num="597" type="stmt" count="8"/>
      <line num="598" type="stmt" count="8"/>
      <line num="599" type="stmt" count="8"/>
      <line num="600" type="stmt" count="8"/>
      <line num="601" type="stmt" count="8"/>
      <line num="602" type="stmt" count="8"/>
      <line num="603" type="stmt" count="8"/>
      <line num="604" type="stmt" count="0"/>
      <line num="605" type="stmt" count="0"/>
      <line num="606" type="stmt" count="8"/>
      <line num="607" type="stmt" count="4"/>
      <line num="608" type="stmt" count="4"/>
      <line num="609" type="stmt" count="8"/>
      <line num="610" type="stmt" count="8"/>
      <line num="611" type="stmt" count="8"/>
      <line num="613" type="stmt" count="8"/>
      <line num="614" type="stmt" count="8"/>
      <line num="615" type="stmt" count="8"/>
      <line num="616" type="stmt" count="8"/>
      <line num="618" type="stmt" count="8"/>
      <line num="620" type="stmt" count="8"/>
      <line num="623" type="stmt" count="8"/>
      <line num="624" type="stmt" count="8"/>
      <line num="625" type="stmt" count="8"/>
      <line num="626" type="stmt" count="8"/>
      <line num="628" type="stmt" count="8"/>
      <line num="629" type="stmt" count="8"/>
      <line num="631" type="stmt" count="8"/>
      <line num="632" type="stmt" count="6"/>
      <line num="633" type="stmt" count="6"/>
      <line num="636" type="stmt" count="8"/>
      <line num="647" type="method" name="fastCompose" visibility="public" complexity="28" crap="28.25" count="8"/>
      <line num="648" type="stmt" count="8"/>
      <line num="650" type="stmt" count="8"/>
      <line num="651" type="stmt" count="8"/>
      <line num="652" type="stmt" count="8"/>
      <line num="653" type="stmt" count="8"/>
      <line num="654" type="stmt" count="8"/>
      <line num="655" type="stmt" count="8"/>
      <line num="657" type="stmt" count="8"/>
      <line num="658" type="stmt" count="8"/>
      <line num="659" type="stmt" count="8"/>
      <line num="660" type="stmt" count="8"/>
      <line num="661" type="stmt" count="8"/>
      <line num="662" type="stmt" count="8"/>
      <line num="664" type="stmt" count="8"/>
      <line num="665" type="stmt" count="8"/>
      <line num="666" type="stmt" count="8"/>
      <line num="667" type="stmt" count="8"/>
      <line num="668" type="stmt" count="8"/>
      <line num="669" type="stmt" count="8"/>
      <line num="670" type="stmt" count="8"/>
      <line num="671" type="stmt" count="0"/>
      <line num="672" type="stmt" count="0"/>
      <line num="673" type="stmt" count="8"/>
      <line num="674" type="stmt" count="4"/>
      <line num="675" type="stmt" count="4"/>
      <line num="676" type="stmt" count="8"/>
      <line num="677" type="stmt" count="8"/>
      <line num="678" type="stmt" count="8"/>
      <line num="680" type="stmt" count="8"/>
      <line num="681" type="stmt" count="8"/>
      <line num="683" type="stmt" count="8"/>
      <line num="684" type="stmt" count="8"/>
      <line num="685" type="stmt" count="8"/>
      <line num="686" type="stmt" count="8"/>
      <line num="687" type="stmt" count="8"/>
      <line num="689" type="stmt" count="8"/>
      <line num="690" type="stmt" count="8"/>
      <line num="692" type="stmt" count="8"/>
      <line num="694" type="stmt" count="8"/>
      <line num="695" type="stmt" count="8"/>
      <line num="696" type="stmt" count="8"/>
      <line num="699" type="stmt" count="8"/>
      <line num="700" type="stmt" count="6"/>
      <line num="701" type="stmt" count="0"/>
      <line num="702" type="stmt" count="0"/>
      <line num="703" type="stmt" count="0"/>
      <line num="705" type="stmt" count="6"/>
      <line num="711" type="stmt" count="4"/>
      <line num="712" type="stmt" count="4"/>
      <line num="713" type="stmt" count="4"/>
      <line num="714" type="stmt" count="4"/>
      <line num="718" type="stmt" count="4"/>
      <line num="719" type="stmt" count="4"/>
      <line num="721" type="stmt" count="4"/>
      <line num="722" type="stmt" count="4"/>
      <line num="723" type="stmt" count="4"/>
      <line num="726" type="stmt" count="4"/>
      <line num="727" type="stmt" count="4"/>
      <line num="728" type="stmt" count="4"/>
      <line num="729" type="stmt" count="4"/>
      <line num="730" type="stmt" count="4"/>
      <line num="731" type="stmt" count="4"/>
      <line num="732" type="stmt" count="4"/>
      <line num="733" type="stmt" count="4"/>
      <line num="734" type="stmt" count="4"/>
      <line num="735" type="stmt" count="4"/>
      <line num="738" type="stmt" count="4"/>
      <line num="739" type="stmt" count="4"/>
      <line num="740" type="stmt" count="0"/>
      <line num="745" type="stmt" count="4"/>
      <line num="746" type="stmt" count="4"/>
      <line num="747" type="stmt" count="4"/>
      <line num="748" type="stmt" count="4"/>
      <line num="749" type="stmt" count="4"/>
      <line num="750" type="stmt" count="4"/>
      <line num="751" type="stmt" count="4"/>
      <line num="753" type="stmt" count="4"/>
      <line num="755" type="stmt" count="4"/>
      <line num="758" type="stmt" count="4"/>
      <line num="759" type="stmt" count="4"/>
      <line num="763" type="stmt" count="8"/>
      <line num="764" type="stmt" count="8"/>
      <line num="765" type="stmt" count="8"/>
      <line num="766" type="stmt" count="8"/>
      <line num="767" type="stmt" count="8"/>
      <line num="768" type="stmt" count="8"/>
      <line num="770" type="stmt" count="8"/>
      <line num="772" type="stmt" count="8"/>
      <line num="781" type="method" name="placebo" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="782" type="stmt" count="0"/>
      <line num="783" type="stmt" count="0"/>
      <line num="784" type="stmt" count="0"/>
      <line num="785" type="stmt" count="0"/>
      <line num="788" type="stmt" count="0"/>
      <line num="798" type="method" name="replaceForNativeNormalize" visibility="private" complexity="1" crap="1" count="23"/>
      <line num="799" type="stmt" count="23"/>
      <line num="800" type="stmt" count="23"/>
      <line num="801" type="stmt" count="23"/>
      <line num="802" type="stmt" count="23"/>
      <line num="803" type="stmt" count="23"/>
      <line num="804" type="stmt" count="23"/>
      <metrics loc="807" ncloc="546" classes="1" methods="18" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="350" coveredstatements="280" elements="368" coveredelements="285"/>
    </file>
    <metrics files="3" loc="1044" ncloc="667" classes="2" methods="23" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="379" coveredstatements="280" elements="402" coveredelements="285"/>
  </project>
</coverage>
