<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1791877998">
  <project timestamp="1791877998">
    <file name="/workspace/src/extensions/ReadingLists/maintenance/fixListSize.php">
      <class name="MediaWiki\Extension\ReadingLists\Maintenance\FixListSize" namespace="global">
        <metrics complexity="12" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="0" elements="46" coveredelements="0"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="30" type="method" name="setupServices" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="40" type="method" name="execute" visibility="public" complexity="6" crap="42" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" 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="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="81" type="method" name="fixRow" visibility="private" complexity="4" crap="20" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <metrics loc="104" ncloc="86" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="0" elements="46" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/maintenance/normalizeEntryTitles.php">
      <class name="MediaWiki\Extension\ReadingLists\Maintenance\NormalizeEntryTitles" namespace="global">
        <metrics complexity="7" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="23" coveredstatements="0" elements="25" coveredelements="0"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="35" type="method" name="execute" visibility="public" complexity="6" crap="42" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <metrics loc="62" ncloc="51" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="23" coveredstatements="0" elements="25" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/maintenance/populateProjectsFromSiteMatrix.php">
      <class name="MediaWiki\Extension\ReadingLists\Maintenance\PopulateProjectsFromSiteMatrix" namespace="global">
        <metrics complexity="34" methods="9" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="104" coveredstatements="95" elements="113" coveredelements="100"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="31" type="stmt" count="10"/>
      <line num="32" type="stmt" count="10"/>
      <line num="33" type="stmt" count="10"/>
      <line num="34" type="stmt" count="10"/>
      <line num="35" type="stmt" count="10"/>
      <line num="36" type="stmt" count="10"/>
      <line num="37" type="stmt" count="10"/>
      <line num="38" type="stmt" count="10"/>
      <line num="39" type="stmt" count="10"/>
      <line num="40" type="stmt" count="10"/>
      <line num="41" type="stmt" count="10"/>
      <line num="42" type="stmt" count="10"/>
      <line num="43" type="stmt" count="10"/>
      <line num="44" type="stmt" count="10"/>
      <line num="45" type="stmt" count="10"/>
      <line num="46" type="stmt" count="10"/>
      <line num="47" type="stmt" count="10"/>
      <line num="48" type="stmt" count="10"/>
      <line num="49" type="stmt" count="10"/>
      <line num="50" type="stmt" count="10"/>
      <line num="56" type="method" name="execute" visibility="public" complexity="9" crap="9.32" count="10"/>
      <line num="57" type="stmt" count="10"/>
      <line num="59" type="stmt" count="10"/>
      <line num="60" type="stmt" count="10"/>
      <line num="61" type="stmt" count="10"/>
      <line num="62" type="stmt" count="10"/>
      <line num="63" type="stmt" count="10"/>
      <line num="65" type="stmt" count="10"/>
      <line num="66" type="stmt" count="10"/>
      <line num="68" type="stmt" count="10"/>
      <line num="69" type="stmt" count="4"/>
      <line num="70" type="stmt" count="4"/>
      <line num="71" type="stmt" count="3"/>
      <line num="73" type="stmt" count="4"/>
      <line num="76" type="stmt" count="7"/>
      <line num="78" type="stmt" count="7"/>
      <line num="79" type="stmt" count="7"/>
      <line num="80" type="stmt" count="7"/>
      <line num="81" type="stmt" count="7"/>
      <line num="83" type="stmt" count="7"/>
      <line num="84" type="stmt" count="7"/>
      <line num="85" type="stmt" count="7"/>
      <line num="86" type="stmt" count="7"/>
      <line num="87" type="stmt" count="7"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="92" type="stmt" count="7"/>
      <line num="93" type="stmt" count="7"/>
      <line num="94" type="stmt" count="7"/>
      <line num="95" type="stmt" count="7"/>
      <line num="99" type="stmt" count="7"/>
      <line num="100" type="stmt" count="7"/>
      <line num="101" type="stmt" count="7"/>
      <line num="102" type="stmt" count="7"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="108" type="stmt" count="7"/>
      <line num="111" type="method" name="getSiteMatrix" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="115" type="method" name="verboseOutput" visibility="private" complexity="2" crap="2" count="10"/>
      <line num="116" type="stmt" count="10"/>
      <line num="117" type="stmt" count="1"/>
      <line num="125" type="method" name="getProjectsToAdd" visibility="private" complexity="3" crap="3.00" count="10"/>
      <line num="126" type="stmt" count="10"/>
      <line num="127" type="stmt" count="10"/>
      <line num="128" type="stmt" count="10"/>
      <line num="130" type="stmt" count="10"/>
      <line num="132" type="stmt" count="10"/>
      <line num="133" type="stmt" count="0"/>
      <line num="136" type="stmt" count="10"/>
      <line num="137" type="stmt" count="10"/>
      <line num="138" type="stmt" count="10"/>
      <line num="139" type="stmt" count="10"/>
      <line num="140" type="stmt" count="10"/>
      <line num="142" type="stmt" count="10"/>
      <line num="143" type="stmt" count="10"/>
      <line num="144" type="stmt" count="10"/>
      <line num="145" type="stmt" count="10"/>
      <line num="147" type="stmt" count="10"/>
      <line num="150" type="method" name="normalizeProject" visibility="private" complexity="1" crap="1" count="10"/>
      <line num="151" type="stmt" count="10"/>
      <line num="154" type="method" name="getFamilyOption" visibility="private" complexity="3" crap="3" count="10"/>
      <line num="155" type="stmt" count="10"/>
      <line num="156" type="stmt" count="8"/>
      <line num="159" type="stmt" count="2"/>
      <line num="160" type="stmt" count="2"/>
      <line num="167" type="method" name="generateSites" visibility="private" complexity="9" crap="9.04" count="10"/>
      <line num="168" type="stmt" count="10"/>
      <line num="169" type="stmt" count="10"/>
      <line num="170" type="stmt" count="10"/>
      <line num="171" type="stmt" count="2"/>
      <line num="173" type="stmt" count="10"/>
      <line num="174" type="stmt" count="10"/>
      <line num="175" type="stmt" count="0"/>
      <line num="177" type="stmt" count="10"/>
      <line num="180" type="stmt" count="10"/>
      <line num="181" type="stmt" count="10"/>
      <line num="182" type="stmt" count="10"/>
      <line num="183" type="stmt" count="1"/>
      <line num="185" type="stmt" count="9"/>
      <line num="193" type="method" name="generateAllowedDomains" visibility="private" complexity="5" crap="5" count="10"/>
      <line num="194" type="stmt" count="10"/>
      <line num="195" type="stmt" count="10"/>
      <line num="196" type="stmt" count="10"/>
      <line num="197" type="stmt" count="10"/>
      <line num="199" type="stmt" count="10"/>
      <line num="200" type="stmt" count="1"/>
      <line num="202" type="stmt" count="10"/>
      <line num="203" type="stmt" count="8"/>
      <line num="206" type="stmt" count="10"/>
      <metrics loc="216" ncloc="189" classes="1" methods="9" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="104" coveredstatements="95" elements="113" coveredelements="100"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/maintenance/populateWithTestData.php">
      <class name="MediaWiki\Extension\ReadingLists\Maintenance\PopulateWithTestData" namespace="global">
        <metrics complexity="25" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="106" coveredstatements="0" elements="112" coveredelements="0"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="43" type="method" name="setupServices" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="53" type="method" name="execute" visibility="public" complexity="7" crap="56" 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="58" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" 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="99" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="123" type="method" name="cleanupTestData" visibility="private" complexity="2" crap="6" 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"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" 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="144" type="stmt" count="0"/>
      <line num="157" type="method" name="getRandomValueFromDistribution" visibility="private" complexity="5" crap="30" 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="161" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="168" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="176" type="stmt" count="0"/>
      <line num="179" type="method" name="assertOptions" visibility="private" complexity="8" crap="72" count="0"/>
      <line num="180" type="stmt" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="186" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="191" type="stmt" count="0"/>
      <line num="192" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <metrics loc="203" ncloc="174" classes="1" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="108" coveredstatements="0" elements="114" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/maintenance/purge.php">
      <class name="MediaWiki\Extension\ReadingLists\Maintenance\Purge" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="0" elements="16" coveredelements="0"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="33" type="method" name="execute" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <metrics loc="55" ncloc="41" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="0" elements="16" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/maintenance/renameProjects.php">
      <class name="MediaWiki\Extension\ReadingLists\Maintenance\RenameProjects" namespace="global">
        <metrics complexity="26" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="131" coveredstatements="119" elements="138" coveredelements="121"/>
      </class>
      <line num="42" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="43" type="stmt" count="3"/>
      <line num="45" type="stmt" count="3"/>
      <line num="47" type="stmt" count="3"/>
      <line num="48" type="stmt" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="52" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="58" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="62" type="stmt" count="3"/>
      <line num="65" type="method" name="execute" visibility="public" complexity="5" crap="5.00" count="3"/>
      <line num="66" type="stmt" count="3"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="3"/>
      <line num="70" type="stmt" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="73" type="stmt" count="3"/>
      <line num="74" type="stmt" count="0"/>
      <line num="78" type="stmt" count="3"/>
      <line num="79" type="stmt" count="3"/>
      <line num="82" type="stmt" count="3"/>
      <line num="83" type="stmt" count="1"/>
      <line num="86" type="stmt" count="3"/>
      <line num="88" type="stmt" count="3"/>
      <line num="89" type="stmt" count="1"/>
      <line num="90" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="94" type="stmt" count="2"/>
      <line num="95" type="stmt" count="2"/>
      <line num="99" type="method" name="updateProjects" visibility="private" complexity="4" crap="4.01" count="3"/>
      <line num="105" type="stmt" count="3"/>
      <line num="106" type="stmt" count="3"/>
      <line num="107" type="stmt" count="3"/>
      <line num="109" type="stmt" count="3"/>
      <line num="110" type="stmt" count="3"/>
      <line num="111" type="stmt" count="3"/>
      <line num="112" type="stmt" count="3"/>
      <line num="113" type="stmt" count="3"/>
      <line num="114" type="stmt" count="3"/>
      <line num="115" type="stmt" count="3"/>
      <line num="116" type="stmt" count="3"/>
      <line num="119" type="stmt" count="3"/>
      <line num="120" type="stmt" count="3"/>
      <line num="121" type="stmt" count="3"/>
      <line num="123" type="stmt" count="3"/>
      <line num="124" type="stmt" count="3"/>
      <line num="125" type="stmt" count="3"/>
      <line num="126" type="stmt" count="3"/>
      <line num="127" type="stmt" count="3"/>
      <line num="128" type="stmt" count="3"/>
      <line num="129" type="stmt" count="3"/>
      <line num="130" type="stmt" count="3"/>
      <line num="132" type="stmt" count="3"/>
      <line num="133" type="stmt" count="3"/>
      <line num="134" type="stmt" count="3"/>
      <line num="135" type="stmt" count="3"/>
      <line num="137" type="stmt" count="3"/>
      <line num="139" type="stmt" count="3"/>
      <line num="140" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="148" type="stmt" count="3"/>
      <line num="149" type="stmt" count="3"/>
      <line num="150" type="stmt" count="3"/>
      <line num="151" type="stmt" count="3"/>
      <line num="152" type="stmt" count="3"/>
      <line num="155" type="method" name="processBatch" visibility="private" complexity="5" crap="5.01" count="3"/>
      <line num="163" type="stmt" count="3"/>
      <line num="164" type="stmt" count="3"/>
      <line num="165" type="stmt" count="3"/>
      <line num="166" type="stmt" count="3"/>
      <line num="167" type="stmt" count="3"/>
      <line num="168" type="stmt" count="3"/>
      <line num="169" type="stmt" count="3"/>
      <line num="170" type="stmt" count="3"/>
      <line num="171" type="stmt" count="3"/>
      <line num="172" type="stmt" count="3"/>
      <line num="173" type="stmt" count="3"/>
      <line num="175" type="stmt" count="3"/>
      <line num="176" type="stmt" count="3"/>
      <line num="177" type="stmt" count="3"/>
      <line num="178" type="stmt" count="3"/>
      <line num="180" type="stmt" count="3"/>
      <line num="181" type="stmt" count="3"/>
      <line num="182" type="stmt" count="3"/>
      <line num="183" type="stmt" count="3"/>
      <line num="184" type="stmt" count="3"/>
      <line num="185" type="stmt" count="3"/>
      <line num="188" type="stmt" count="3"/>
      <line num="190" type="stmt" count="3"/>
      <line num="191" type="stmt" count="3"/>
      <line num="192" type="stmt" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="197" type="stmt" count="3"/>
      <line num="198" type="stmt" count="3"/>
      <line num="199" type="stmt" count="3"/>
      <line num="200" type="stmt" count="3"/>
      <line num="201" type="stmt" count="3"/>
      <line num="202" type="stmt" count="3"/>
      <line num="205" type="method" name="processProject" visibility="private" complexity="5" crap="5.46" count="3"/>
      <line num="212" type="stmt" count="3"/>
      <line num="213" type="stmt" count="3"/>
      <line num="215" type="stmt" count="3"/>
      <line num="216" type="stmt" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="219" type="stmt" count="3"/>
      <line num="221" type="stmt" count="3"/>
      <line num="223" type="stmt" count="3"/>
      <line num="224" type="stmt" count="1"/>
      <line num="228" type="stmt" count="2"/>
      <line num="229" type="stmt" count="2"/>
      <line num="230" type="stmt" count="2"/>
      <line num="231" type="stmt" count="2"/>
      <line num="232" type="stmt" count="2"/>
      <line num="233" type="stmt" count="2"/>
      <line num="234" type="stmt" count="2"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="241" type="method" name="isMatch" visibility="private" complexity="4" crap="4.07" count="3"/>
      <line num="242" type="stmt" count="3"/>
      <line num="243" type="stmt" count="1"/>
      <line num="246" type="stmt" count="2"/>
      <line num="247" type="stmt" count="2"/>
      <line num="248" type="stmt" count="0"/>
      <line num="251" type="stmt" count="2"/>
      <line num="254" type="method" name="generateNewUrl" visibility="private" complexity="2" crap="2" count="3"/>
      <line num="255" type="stmt" count="3"/>
      <line num="256" type="stmt" count="1"/>
      <line num="259" type="stmt" count="2"/>
      <line num="264" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <metrics loc="266" ncloc="250" classes="1" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="133" coveredstatements="119" elements="140" coveredelements="121"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/maintenance/restoreUserReadingLists.php">
      <class name="MediaWiki\Extension\ReadingLists\Maintenance\RestoreUserReadingLists" namespace="global">
        <metrics complexity="64" methods="15" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="213" coveredstatements="199" elements="228" coveredelements="208"/>
      </class>
      <line num="62" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="63" type="stmt" count="12"/>
      <line num="64" type="stmt" count="12"/>
      <line num="65" type="stmt" count="12"/>
      <line num="66" type="stmt" count="12"/>
      <line num="67" type="stmt" count="12"/>
      <line num="68" type="stmt" count="12"/>
      <line num="69" type="stmt" count="12"/>
      <line num="70" type="stmt" count="12"/>
      <line num="71" type="stmt" count="12"/>
      <line num="72" type="stmt" count="12"/>
      <line num="73" type="stmt" count="12"/>
      <line num="74" type="stmt" count="12"/>
      <line num="75" type="stmt" count="12"/>
      <line num="76" type="stmt" count="12"/>
      <line num="77" type="stmt" count="12"/>
      <line num="78" type="stmt" count="12"/>
      <line num="79" type="stmt" count="12"/>
      <line num="80" type="stmt" count="12"/>
      <line num="81" type="stmt" count="12"/>
      <line num="82" type="stmt" count="12"/>
      <line num="83" type="stmt" count="12"/>
      <line num="89" type="method" name="execute" visibility="public" complexity="10" crap="10.32" count="12"/>
      <line num="90" type="stmt" count="12"/>
      <line num="91" type="stmt" count="11"/>
      <line num="92" type="stmt" count="11"/>
      <line num="93" type="stmt" count="11"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="99" type="stmt" count="10"/>
      <line num="100" type="stmt" count="10"/>
      <line num="101" type="stmt" count="10"/>
      <line num="103" type="stmt" count="10"/>
      <line num="104" type="stmt" count="1"/>
      <line num="105" type="stmt" count="1"/>
      <line num="108" type="stmt" count="9"/>
      <line num="109" type="stmt" count="2"/>
      <line num="110" type="stmt" count="2"/>
      <line num="115" type="stmt" count="7"/>
      <line num="117" type="stmt" count="7"/>
      <line num="118" type="stmt" count="7"/>
      <line num="119" type="stmt" count="7"/>
      <line num="120" type="stmt" count="6"/>
      <line num="121" type="stmt" count="7"/>
      <line num="123" type="stmt" 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="128" type="stmt" count="0"/>
      <line num="130" type="stmt" count="7"/>
      <line num="133" type="stmt" count="9"/>
      <line num="134" type="stmt" count="9"/>
      <line num="135" type="stmt" count="2"/>
      <line num="136" type="stmt" count="7"/>
      <line num="137" type="stmt" count="6"/>
      <line num="139" type="stmt" count="1"/>
      <line num="143" type="method" name="getValidatedCentralId" visibility="private" complexity="3" crap="3" count="12"/>
      <line num="144" type="stmt" count="12"/>
      <line num="145" type="stmt" count="12"/>
      <line num="146" type="stmt" count="1"/>
      <line num="148" type="stmt" count="11"/>
      <line num="154" type="method" name="getValidatedListIds" visibility="private" complexity="4" crap="4.07" count="11"/>
      <line num="155" type="stmt" count="11"/>
      <line num="156" type="stmt" count="11"/>
      <line num="157" type="stmt" count="11"/>
      <line num="158" type="stmt" count="9"/>
      <line num="159" type="stmt" count="0"/>
      <line num="162" type="stmt" count="11"/>
      <line num="169" type="method" name="ensureDefaultList" visibility="private" complexity="2" crap="2" count="6"/>
      <line num="170" type="stmt" count="6"/>
      <line num="171" type="stmt" count="6"/>
      <line num="172" type="stmt" count="6"/>
      <line num="173" type="stmt" count="6"/>
      <line num="174" type="stmt" count="6"/>
      <line num="175" type="stmt" count="4"/>
      <line num="177" type="stmt" count="2"/>
      <line num="178" type="stmt" count="2"/>
      <line num="181" type="method" name="showCandidates" visibility="private" complexity="6" crap="6.14" count="1"/>
      <line num="182" type="stmt" count="1"/>
      <line num="183" type="stmt" count="1"/>
      <line num="184" type="stmt" count="1"/>
      <line num="185" type="stmt" count="1"/>
      <line num="186" type="stmt" count="1"/>
      <line num="187" type="stmt" count="0"/>
      <line num="189" type="stmt" count="1"/>
      <line num="190" type="stmt" count="1"/>
      <line num="191" type="stmt" count="0"/>
      <line num="193" type="stmt" count="1"/>
      <line num="195" type="stmt" count="1"/>
      <line num="196" type="stmt" count="1"/>
      <line num="197" type="stmt" count="1"/>
      <line num="198" type="stmt" count="1"/>
      <line num="199" type="stmt" count="1"/>
      <line num="201" type="stmt" count="1"/>
      <line num="202" type="stmt" count="0"/>
      <line num="204" type="stmt" count="1"/>
      <line num="205" type="stmt" count="1"/>
      <line num="212" type="method" name="getListRows" visibility="private" complexity="3" crap="3" count="10"/>
      <line num="213" type="stmt" count="10"/>
      <line num="214" type="stmt" count="10"/>
      <line num="215" type="stmt" count="10"/>
      <line num="216" type="stmt" count="10"/>
      <line num="217" type="stmt" count="10"/>
      <line num="218" type="stmt" count="10"/>
      <line num="219" type="stmt" count="10"/>
      <line num="220" type="stmt" count="10"/>
      <line num="221" type="stmt" count="10"/>
      <line num="222" type="stmt" count="10"/>
      <line num="223" type="stmt" count="10"/>
      <line num="224" type="stmt" count="10"/>
      <line num="225" type="stmt" count="10"/>
      <line num="226" type="stmt" count="10"/>
      <line num="227" type="stmt" count="7"/>
      <line num="229" type="stmt" count="10"/>
      <line num="230" type="stmt" count="10"/>
      <line num="232" type="stmt" count="10"/>
      <line num="234" type="stmt" count="10"/>
      <line num="240" type="method" name="hasActiveDefaultList" visibility="private" complexity="4" crap="4" count="7"/>
      <line num="241" type="stmt" count="7"/>
      <line num="242" type="stmt" count="5"/>
      <line num="243" type="stmt" count="4"/>
      <line num="246" type="stmt" count="3"/>
      <line num="254" type="method" name="buildRestorePlan" visibility="private" complexity="3" crap="3" count="9"/>
      <line num="255" type="stmt" count="9"/>
      <line num="256" type="stmt" count="9"/>
      <line num="257" type="stmt" count="9"/>
      <line num="258" type="stmt" count="9"/>
      <line num="259" type="stmt" count="9"/>
      <line num="260" type="stmt" count="4"/>
      <line num="263" type="stmt" count="9"/>
      <line num="265" type="stmt" count="9"/>
      <line num="275" type="method" name="selectListsToRestore" visibility="private" complexity="5" crap="5.07" count="9"/>
      <line num="276" type="stmt" count="9"/>
      <line num="277" type="stmt" count="9"/>
      <line num="278" type="stmt" count="9"/>
      <line num="279" type="stmt" count="9"/>
      <line num="280" type="stmt" count="3"/>
      <line num="281" type="stmt" count="3"/>
      <line num="282" type="stmt" count="3"/>
      <line num="283" type="stmt" count="3"/>
      <line num="285" type="stmt" count="7"/>
      <line num="286" type="stmt" count="1"/>
      <line num="287" type="stmt" count="1"/>
      <line num="290" type="stmt" count="7"/>
      <line num="291" type="stmt" count="7"/>
      <line num="292" type="stmt" count="0"/>
      <line num="293" type="stmt" count="0"/>
      <line num="294" type="stmt" count="0"/>
      <line num="296" type="stmt" count="7"/>
      <line num="297" type="stmt" count="7"/>
      <line num="298" type="stmt" count="7"/>
      <line num="299" type="stmt" count="7"/>
      <line num="302" type="stmt" count="9"/>
      <line num="313" type="method" name="ensureUniqueNames" visibility="private" complexity="5" crap="5" count="9"/>
      <line num="314" type="stmt" count="9"/>
      <line num="315" type="stmt" count="9"/>
      <line num="316" type="stmt" count="4"/>
      <line num="318" type="stmt" count="9"/>
      <line num="320" type="stmt" count="3"/>
      <line num="322" type="stmt" count="9"/>
      <line num="323" type="stmt" count="9"/>
      <line num="324" type="stmt" count="7"/>
      <line num="325" type="stmt" count="7"/>
      <line num="326" type="stmt" count="7"/>
      <line num="327" type="stmt" count="7"/>
      <line num="328" type="stmt" count="7"/>
      <line num="329" type="stmt" count="7"/>
      <line num="332" type="stmt" count="9"/>
      <line num="342" type="method" name="makeUniqueName" visibility="private" complexity="6" crap="6.01" count="7"/>
      <line num="348" type="stmt" count="7"/>
      <line num="349" type="stmt" count="5"/>
      <line num="350" type="stmt" count="5"/>
      <line num="353" type="stmt" count="5"/>
      <line num="354" type="stmt" count="5"/>
      <line num="355" type="stmt" count="5"/>
      <line num="356" type="stmt" count="1"/>
      <line num="358" type="stmt" count="5"/>
      <line num="359" type="stmt" count="0"/>
      <line num="361" type="stmt" count="5"/>
      <line num="362" type="stmt" count="5"/>
      <line num="363" type="stmt" count="5"/>
      <line num="364" type="stmt" count="5"/>
      <line num="365" type="stmt" count="5"/>
      <line num="375" type="method" name="decodeDeletedListName" visibility="private" complexity="3" crap="3" count="8"/>
      <line num="376" type="stmt" count="8"/>
      <line num="377" type="stmt" count="8"/>
      <line num="378" type="stmt" count="8"/>
      <line num="379" type="stmt" count="8"/>
      <line num="381" type="stmt" count="8"/>
      <line num="382" type="stmt" count="8"/>
      <line num="383" type="stmt" count="8"/>
      <line num="386" type="method" name="applyRestore" visibility="private" complexity="3" crap="3" count="6"/>
      <line num="387" type="stmt" count="6"/>
      <line num="388" type="stmt" count="6"/>
      <line num="389" type="stmt" count="6"/>
      <line num="390" type="stmt" count="6"/>
      <line num="391" type="stmt" count="6"/>
      <line num="392" type="stmt" count="6"/>
      <line num="393" type="stmt" count="6"/>
      <line num="394" type="stmt" count="6"/>
      <line num="395" type="stmt" count="6"/>
      <line num="396" type="stmt" count="6"/>
      <line num="397" type="stmt" count="6"/>
      <line num="398" type="stmt" count="6"/>
      <line num="399" type="stmt" count="6"/>
      <line num="400" type="stmt" count="6"/>
      <line num="401" type="stmt" count="6"/>
      <line num="402" type="stmt" count="6"/>
      <line num="403" type="stmt" count="6"/>
      <line num="404" type="stmt" count="0"/>
      <line num="410" type="stmt" count="6"/>
      <line num="411" type="stmt" count="6"/>
      <line num="412" type="stmt" count="6"/>
      <line num="413" type="stmt" count="6"/>
      <line num="414" type="stmt" count="6"/>
      <line num="415" type="stmt" count="6"/>
      <line num="416" type="stmt" count="6"/>
      <line num="417" type="stmt" count="6"/>
      <line num="418" type="stmt" count="6"/>
      <line num="425" type="method" name="showPlan" visibility="private" complexity="6" crap="6" count="9"/>
      <line num="426" type="stmt" count="9"/>
      <line num="427" type="stmt" count="9"/>
      <line num="428" type="stmt" count="1"/>
      <line num="430" type="stmt" count="9"/>
      <line num="431" type="stmt" count="9"/>
      <line num="432" type="stmt" count="7"/>
      <line num="433" type="stmt" count="7"/>
      <metrics loc="442" ncloc="343" classes="1" methods="15" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="213" coveredstatements="199" elements="228" coveredelements="208"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiQueryReadingListEntries.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiQueryReadingListEntries" namespace="global">
        <metrics complexity="33" methods="9" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="141" coveredstatements="88" elements="150" coveredelements="89"/>
      </class>
      <line num="29" type="method" name="execute" visibility="public" complexity="2" crap="3.19" count="5"/>
      <line num="31" type="stmt" count="5"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="40" type="method" name="executeGenerator" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="53" type="method" name="run" visibility="private" complexity="17" crap="18.09" count="5"/>
      <line num="54" type="stmt" count="5"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="59" type="stmt" count="5"/>
      <line num="61" type="stmt" count="5"/>
      <line num="62" type="stmt" count="5"/>
      <line num="63" type="stmt" count="5"/>
      <line num="64" type="stmt" count="5"/>
      <line num="65" type="stmt" count="5"/>
      <line num="66" type="stmt" count="5"/>
      <line num="67" type="stmt" count="5"/>
      <line num="69" type="stmt" count="5"/>
      <line num="71" type="stmt" count="5"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" type="stmt" count="5"/>
      <line num="74" type="stmt" count="2"/>
      <line num="76" type="stmt" count="3"/>
      <line num="79" type="stmt" count="5"/>
      <line num="80" type="stmt" count="1"/>
      <line num="83" type="stmt" count="5"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="89" type="stmt" count="5"/>
      <line num="90" type="stmt" count="5"/>
      <line num="91" type="stmt" count="5"/>
      <line num="93" type="stmt" count="5"/>
      <line num="94" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="103" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <line num="105" type="stmt" count="5"/>
      <line num="107" type="stmt" count="5"/>
      <line num="109" type="stmt" count="5"/>
      <line num="110" type="stmt" count="1"/>
      <line num="111" type="stmt" count="1"/>
      <line num="112" type="stmt" count="1"/>
      <line num="113" type="stmt" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="116" type="stmt" count="1"/>
      <line num="117" type="stmt" count="5"/>
      <line num="118" type="stmt" count="2"/>
      <line num="119" type="stmt" count="2"/>
      <line num="120" type="stmt" count="2"/>
      <line num="121" type="stmt" count="2"/>
      <line num="122" type="stmt" count="2"/>
      <line num="123" type="stmt" count="2"/>
      <line num="124" type="stmt" count="2"/>
      <line num="125" type="stmt" count="2"/>
      <line num="127" type="stmt" count="3"/>
      <line num="128" type="stmt" count="3"/>
      <line num="129" type="stmt" count="3"/>
      <line num="130" type="stmt" count="3"/>
      <line num="131" type="stmt" count="3"/>
      <line num="132" type="stmt" count="3"/>
      <line num="133" type="stmt" count="3"/>
      <line num="134" type="stmt" count="3"/>
      <line num="137" type="stmt" count="5"/>
      <line num="138" type="stmt" count="5"/>
      <line num="140" type="stmt" count="5"/>
      <line num="142" type="stmt" count="5"/>
      <line num="144" type="stmt" count="5"/>
      <line num="146" type="stmt" count="3"/>
      <line num="147" type="stmt" count="3"/>
      <line num="148" type="stmt" count="3"/>
      <line num="151" type="stmt" count="5"/>
      <line num="152" type="stmt" count="0"/>
      <line num="154" type="stmt" count="5"/>
      <line num="157" type="stmt" count="5"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="164" type="stmt" count="5"/>
      <line num="165" type="stmt" count="0"/>
      <line num="172" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="5"/>
      <line num="173" type="stmt" count="5"/>
      <line num="174" type="stmt" count="5"/>
      <line num="175" type="stmt" count="5"/>
      <line num="176" type="stmt" count="5"/>
      <line num="177" type="stmt" count="5"/>
      <line num="178" type="stmt" count="5"/>
      <line num="179" type="stmt" count="5"/>
      <line num="180" type="stmt" count="5"/>
      <line num="181" type="stmt" count="5"/>
      <line num="182" type="stmt" count="5"/>
      <line num="183" type="stmt" count="5"/>
      <line num="184" type="stmt" count="5"/>
      <line num="185" type="stmt" count="5"/>
      <line num="186" type="stmt" count="5"/>
      <line num="187" type="stmt" count="5"/>
      <line num="188" type="stmt" count="5"/>
      <line num="189" type="stmt" count="5"/>
      <line num="190" type="stmt" count="5"/>
      <line num="191" type="stmt" count="5"/>
      <line num="192" type="stmt" count="5"/>
      <line num="198" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="199" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="207" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="211" type="stmt" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="213" type="stmt" count="0"/>
      <line num="214" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="216" type="stmt" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="219" type="stmt" count="0"/>
      <line num="220" type="stmt" count="0"/>
      <line num="226" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="237" type="method" name="getResultItem" visibility="private" complexity="3" crap="6.80" count="5"/>
      <line num="238" type="stmt" count="5"/>
      <line num="239" type="stmt" count="0"/>
      <line num="240" type="stmt" count="0"/>
      <line num="241" type="stmt" count="0"/>
      <line num="242" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="244" type="stmt" count="0"/>
      <line num="246" type="stmt" count="5"/>
      <line num="254" type="method" name="getResultTitle" visibility="private" complexity="5" crap="30" count="0"/>
      <line num="255" type="stmt" count="0"/>
      <line num="256" type="stmt" count="0"/>
      <line num="257" type="stmt" count="0"/>
      <line num="258" type="stmt" count="0"/>
      <line num="259" type="stmt" count="0"/>
      <line num="261" type="stmt" count="0"/>
      <line num="267" type="stmt" count="0"/>
      <line num="269" type="stmt" count="0"/>
      <line num="270" type="stmt" count="0"/>
      <line num="271" type="stmt" count="0"/>
      <line num="272" type="stmt" count="0"/>
      <line num="273" type="stmt" count="0"/>
      <line num="278" type="stmt" count="0"/>
      <metrics loc="282" ncloc="234" classes="1" methods="9" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="141" coveredstatements="88" elements="150" coveredelements="89"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiQueryReadingLists.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiQueryReadingLists" namespace="global">
        <metrics complexity="28" methods="6" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="114" coveredstatements="82" elements="120" coveredelements="83"/>
      </class>
      <line num="30" type="method" name="execute" visibility="public" complexity="21" crap="23.39" count="6"/>
      <line num="32" type="stmt" count="6"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="36" type="stmt" count="6"/>
      <line num="38" type="stmt" count="6"/>
      <line num="39" type="stmt" count="6"/>
      <line num="40" type="stmt" count="6"/>
      <line num="41" type="stmt" count="6"/>
      <line num="42" type="stmt" count="6"/>
      <line num="43" type="stmt" count="6"/>
      <line num="44" type="stmt" count="6"/>
      <line num="45" type="stmt" count="6"/>
      <line num="47" type="stmt" count="6"/>
      <line num="48" type="stmt" count="6"/>
      <line num="49" type="stmt" count="6"/>
      <line num="50" type="stmt" count="6"/>
      <line num="52" type="stmt" count="6"/>
      <line num="53" type="stmt" count="6"/>
      <line num="54" type="stmt" count="6"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="5"/>
      <line num="57" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="5"/>
      <line num="60" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="66" type="stmt" count="1"/>
      <line num="67" type="stmt" count="4"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="76" type="stmt" count="3"/>
      <line num="79" type="stmt" count="6"/>
      <line num="80" type="stmt" count="3"/>
      <line num="82" type="stmt" count="6"/>
      <line num="83" type="stmt" count="6"/>
      <line num="84" type="stmt" count="6"/>
      <line num="86" type="stmt" count="6"/>
      <line num="88" type="stmt" count="6"/>
      <line num="89" type="stmt" count="1"/>
      <line num="90" type="stmt" count="5"/>
      <line num="91" type="stmt" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="97" type="stmt" count="1"/>
      <line num="98" type="stmt" count="4"/>
      <line num="99" type="stmt" count="1"/>
      <line num="101" type="stmt" count="3"/>
      <line num="103" type="stmt" count="6"/>
      <line num="104" type="stmt" count="6"/>
      <line num="105" type="stmt" count="6"/>
      <line num="107" type="stmt" count="2"/>
      <line num="108" type="stmt" count="2"/>
      <line num="109" type="stmt" count="2"/>
      <line num="111" type="stmt" count="6"/>
      <line num="112" type="stmt" count="6"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="122" type="stmt" count="6"/>
      <line num="128" type="stmt" count="5"/>
      <line num="129" type="stmt" count="5"/>
      <line num="130" type="stmt" count="0"/>
      <line num="132" type="stmt" count="5"/>
      <line num="133" type="stmt" count="6"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="143" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="6"/>
      <line num="144" type="stmt" count="6"/>
      <line num="145" type="stmt" count="6"/>
      <line num="146" type="stmt" count="6"/>
      <line num="147" type="stmt" count="6"/>
      <line num="148" type="stmt" count="6"/>
      <line num="149" type="stmt" count="6"/>
      <line num="150" type="stmt" count="6"/>
      <line num="151" type="stmt" count="6"/>
      <line num="152" type="stmt" count="6"/>
      <line num="153" type="stmt" count="6"/>
      <line num="154" type="stmt" count="6"/>
      <line num="155" type="stmt" count="6"/>
      <line num="156" type="stmt" count="6"/>
      <line num="157" type="stmt" count="6"/>
      <line num="158" type="stmt" count="6"/>
      <line num="159" type="stmt" count="6"/>
      <line num="160" type="stmt" count="6"/>
      <line num="161" type="stmt" count="6"/>
      <line num="162" type="stmt" count="6"/>
      <line num="168" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="177" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <line num="179" type="stmt" count="0"/>
      <line num="180" type="stmt" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="185" type="stmt" count="0"/>
      <line num="186" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="193" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="204" type="method" name="getResultItem" visibility="private" complexity="3" crap="6.28" count="6"/>
      <line num="205" type="stmt" count="6"/>
      <line num="206" type="stmt" count="0"/>
      <line num="207" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="212" type="stmt" count="6"/>
      <metrics loc="216" ncloc="178" classes="1" methods="6" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="114" coveredstatements="82" elements="120" coveredelements="83"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiQueryTrait.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiQueryTrait" namespace="global">
        <metrics complexity="11" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="47" elements="50" coveredelements="50"/>
      </class>
      <line num="75" type="method" name="encodeContinuationParameter" visibility="private" complexity="5" crap="5" count="9"/>
      <line num="76" type="stmt" count="9"/>
      <line num="77" type="stmt" count="1"/>
      <line num="78" type="stmt" count="8"/>
      <line num="79" type="stmt" count="7"/>
      <line num="80" type="stmt" count="3"/>
      <line num="81" type="stmt" count="4"/>
      <line num="82" type="stmt" count="3"/>
      <line num="84" type="stmt" count="1"/>
      <line num="86" type="stmt" count="7"/>
      <line num="88" type="stmt" count="1"/>
      <line num="105" type="method" name="decodeContinuationParameter" visibility="private" complexity="4" crap="4" count="15"/>
      <line num="106" type="stmt" count="15"/>
      <line num="107" type="stmt" count="10"/>
      <line num="110" type="stmt" count="8"/>
      <line num="111" type="stmt" count="1"/>
      <line num="112" type="stmt" count="1"/>
      <line num="115" type="stmt" count="7"/>
      <line num="116" type="stmt" count="7"/>
      <line num="117" type="stmt" count="7"/>
      <line num="118" type="stmt" count="7"/>
      <line num="119" type="stmt" count="7"/>
      <line num="120" type="stmt" count="7"/>
      <line num="121" type="stmt" count="7"/>
      <line num="122" type="stmt" count="7"/>
      <line num="123" type="stmt" count="7"/>
      <line num="124" type="stmt" count="1"/>
      <line num="126" type="stmt" count="7"/>
      <line num="135" type="method" name="getAllowedSortParams" visibility="private" complexity="2" crap="2" count="12"/>
      <line num="136" type="stmt" count="12"/>
      <line num="137" type="stmt" count="12"/>
      <line num="138" type="stmt" count="12"/>
      <line num="139" type="stmt" count="12"/>
      <line num="140" type="stmt" count="12"/>
      <line num="141" type="stmt" count="12"/>
      <line num="142" type="stmt" count="12"/>
      <line num="143" type="stmt" count="12"/>
      <line num="144" type="stmt" count="12"/>
      <line num="145" type="stmt" count="12"/>
      <line num="146" type="stmt" count="12"/>
      <line num="147" type="stmt" count="12"/>
      <line num="148" type="stmt" count="12"/>
      <line num="150" type="stmt" count="12"/>
      <line num="151" type="stmt" count="12"/>
      <line num="152" type="stmt" count="12"/>
      <line num="153" type="stmt" count="12"/>
      <line num="154" type="stmt" count="12"/>
      <line num="155" type="stmt" count="12"/>
      <line num="156" type="stmt" count="12"/>
      <line num="157" type="stmt" count="12"/>
      <metrics loc="161" ncloc="94" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="47" elements="50" coveredelements="50"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiReadingLists.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiReadingLists" namespace="global">
        <metrics complexity="10" methods="7" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="38" elements="51" coveredelements="42"/>
      </class>
      <line num="36" type="method" name="execute" visibility="public" complexity="3" crap="3.04" count="27"/>
      <line num="37" type="stmt" count="27"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="41" type="stmt" count="27"/>
      <line num="43" type="stmt" count="27"/>
      <line num="44" type="stmt" count="27"/>
      <line num="45" type="stmt" count="27"/>
      <line num="47" type="stmt" count="27"/>
      <line num="48" type="stmt" count="27"/>
      <line num="49" type="stmt" count="9"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="58" type="method" name="getModuleManager" visibility="public" complexity="2" crap="2" count="27"/>
      <line num="59" type="stmt" count="27"/>
      <line num="60" type="stmt" count="27"/>
      <line num="61" type="stmt" count="27"/>
      <line num="62" type="stmt" count="27"/>
      <line num="63" type="stmt" count="27"/>
      <line num="64" type="stmt" count="27"/>
      <line num="65" type="stmt" count="27"/>
      <line num="66" type="stmt" count="27"/>
      <line num="67" type="stmt" count="27"/>
      <line num="68" type="stmt" count="27"/>
      <line num="69" type="stmt" count="27"/>
      <line num="70" type="stmt" count="27"/>
      <line num="71" type="stmt" count="27"/>
      <line num="72" type="stmt" count="27"/>
      <line num="73" type="stmt" count="27"/>
      <line num="74" type="stmt" count="27"/>
      <line num="75" type="stmt" count="27"/>
      <line num="76" type="stmt" count="27"/>
      <line num="77" type="stmt" count="27"/>
      <line num="79" type="stmt" count="27"/>
      <line num="85" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="27"/>
      <line num="86" type="stmt" count="27"/>
      <line num="87" type="stmt" count="27"/>
      <line num="88" type="stmt" count="27"/>
      <line num="89" type="stmt" count="27"/>
      <line num="90" type="stmt" count="27"/>
      <line num="91" type="stmt" count="27"/>
      <line num="97" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="106" type="method" name="isWriteMode" visibility="public" complexity="1" crap="1" count="27"/>
      <line num="107" type="stmt" count="27"/>
      <line num="113" type="method" name="needsToken" visibility="public" complexity="1" crap="1" count="27"/>
      <line num="114" type="stmt" count="27"/>
      <line num="120" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <metrics loc="126" ncloc="96" classes="1" methods="7" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="38" elements="51" coveredelements="42"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiReadingListsCreate.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiReadingListsCreate" namespace="global">
        <metrics complexity="10" methods="8" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="52" coveredstatements="34" elements="60" coveredelements="36"/>
      </class>
      <line num="24" type="method" name="execute" visibility="public" complexity="3" crap="3" count="6"/>
      <line num="25" type="stmt" count="6"/>
      <line num="26" type="stmt" count="6"/>
      <line num="27" type="stmt" count="4"/>
      <line num="29" type="stmt" count="3"/>
      <line num="30" type="stmt" count="3"/>
      <line num="31" type="stmt" count="2"/>
      <line num="32" type="stmt" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="34" type="stmt" count="2"/>
      <line num="35" type="stmt" count="2"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="55" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="6"/>
      <line num="56" type="stmt" count="6"/>
      <line num="57" type="stmt" count="6"/>
      <line num="58" type="stmt" count="6"/>
      <line num="59" type="stmt" count="6"/>
      <line num="60" type="stmt" count="6"/>
      <line num="61" type="stmt" count="6"/>
      <line num="62" type="stmt" count="6"/>
      <line num="63" type="stmt" count="6"/>
      <line num="64" type="stmt" count="6"/>
      <line num="65" type="stmt" count="6"/>
      <line num="66" type="stmt" count="6"/>
      <line num="67" type="stmt" count="6"/>
      <line num="68" type="stmt" count="6"/>
      <line num="74" type="method" name="getExtendedDescription" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="82" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="91" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" 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="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="109" type="method" name="isWriteMode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="116" type="method" name="mustBePosted" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="123" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <metrics loc="129" ncloc="97" classes="1" methods="8" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="52" coveredstatements="34" elements="60" coveredelements="36"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiReadingListsCreateEntry.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiReadingListsCreateEntry" namespace="global">
        <metrics complexity="13" methods="8" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="46" elements="75" coveredelements="47"/>
      </class>
      <line num="25" type="method" name="execute" visibility="public" complexity="6" crap="6.01" count="7"/>
      <line num="26" type="stmt" count="7"/>
      <line num="27" type="stmt" count="7"/>
      <line num="28" type="stmt" count="7"/>
      <line num="30" type="stmt" count="7"/>
      <line num="31" type="stmt" count="7"/>
      <line num="33" type="stmt" count="7"/>
      <line num="34" type="stmt" count="7"/>
      <line num="39" type="stmt" count="4"/>
      <line num="40" type="stmt" count="2"/>
      <line num="41" type="stmt" count="2"/>
      <line num="50" type="stmt" count="4"/>
      <line num="51" type="stmt" count="0"/>
      <line num="54" type="stmt" count="4"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="60" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="65" type="stmt" count="0"/>
      <line num="67" type="stmt" count="2"/>
      <line num="68" type="stmt" count="2"/>
      <line num="69" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="73" type="stmt" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <line num="76" type="stmt" count="5"/>
      <line num="82" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="7"/>
      <line num="83" type="stmt" count="7"/>
      <line num="84" type="stmt" count="7"/>
      <line num="85" type="stmt" count="7"/>
      <line num="86" type="stmt" count="7"/>
      <line num="87" type="stmt" count="7"/>
      <line num="88" type="stmt" count="7"/>
      <line num="89" type="stmt" count="7"/>
      <line num="90" type="stmt" count="7"/>
      <line num="91" type="stmt" count="7"/>
      <line num="92" type="stmt" count="7"/>
      <line num="93" type="stmt" count="7"/>
      <line num="94" type="stmt" count="7"/>
      <line num="95" type="stmt" count="7"/>
      <line num="96" type="stmt" count="7"/>
      <line num="97" type="stmt" count="7"/>
      <line num="98" type="stmt" count="7"/>
      <line num="99" type="stmt" count="7"/>
      <line num="105" type="method" name="getExtendedDescription" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="113" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="122" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="123" type="stmt" 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"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <line num="141" type="method" name="isWriteMode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="148" type="method" name="mustBePosted" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <line num="155" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <metrics loc="161" ncloc="118" classes="1" methods="8" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="46" elements="75" coveredelements="47"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiReadingListsDelete.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiReadingListsDelete" namespace="global">
        <metrics complexity="9" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="34" coveredstatements="18" elements="41" coveredelements="20"/>
      </class>
      <line num="23" type="method" name="execute" visibility="public" complexity="3" crap="3" count="3"/>
      <line num="24" type="stmt" count="3"/>
      <line num="25" type="stmt" count="3"/>
      <line num="27" type="stmt" count="3"/>
      <line num="28" type="stmt" count="3"/>
      <line num="29" type="stmt" count="3"/>
      <line num="30" type="stmt" count="2"/>
      <line num="32" type="stmt" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="37" type="stmt" count="2"/>
      <line num="43" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="3"/>
      <line num="44" type="stmt" count="3"/>
      <line num="45" type="stmt" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <line num="47" type="stmt" count="3"/>
      <line num="48" type="stmt" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="57" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="66" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="84" type="method" name="isWriteMode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="91" type="method" name="mustBePosted" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="98" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <metrics loc="104" ncloc="75" classes="1" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="34" coveredstatements="18" elements="41" coveredelements="20"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiReadingListsDeleteEntry.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiReadingListsDeleteEntry" namespace="global">
        <metrics complexity="15" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="34" elements="61" coveredelements="36"/>
      </class>
      <line num="25" type="method" name="execute" visibility="public" complexity="9" crap="9" count="6"/>
      <line num="26" type="stmt" count="6"/>
      <line num="27" type="stmt" count="6"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="5"/>
      <line num="30" type="stmt" count="1"/>
      <line num="32" type="stmt" count="4"/>
      <line num="34" type="stmt" count="4"/>
      <line num="35" type="stmt" count="4"/>
      <line num="36" type="stmt" count="4"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="3"/>
      <line num="39" type="stmt" count="2"/>
      <line num="40" type="stmt" count="1"/>
      <line num="42" type="stmt" count="2"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="49" type="stmt" count="4"/>
      <line num="55" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="6"/>
      <line num="56" type="stmt" count="6"/>
      <line num="57" type="stmt" count="6"/>
      <line num="58" type="stmt" count="6"/>
      <line num="59" type="stmt" count="6"/>
      <line num="60" type="stmt" count="6"/>
      <line num="61" type="stmt" count="6"/>
      <line num="62" type="stmt" count="6"/>
      <line num="63" type="stmt" count="6"/>
      <line num="64" type="stmt" count="6"/>
      <line num="65" type="stmt" count="6"/>
      <line num="66" type="stmt" count="6"/>
      <line num="67" type="stmt" count="6"/>
      <line num="68" type="stmt" count="6"/>
      <line num="69" type="stmt" count="6"/>
      <line num="70" type="stmt" count="6"/>
      <line num="71" type="stmt" count="6"/>
      <line num="77" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" 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="86" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" 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="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="108" type="method" name="isWriteMode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="115" type="method" name="mustBePosted" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="122" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <metrics loc="128" ncloc="99" classes="1" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="34" elements="61" coveredelements="36"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiReadingListsSetup.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiReadingListsSetup" namespace="global">
        <metrics complexity="7" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="5" elements="22" coveredelements="7"/>
      </class>
      <line num="22" type="method" name="execute" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="23" type="stmt" count="2"/>
      <line num="24" type="stmt" count="2"/>
      <line num="25" type="stmt" count="2"/>
      <line num="26" type="stmt" count="2"/>
      <line num="32" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="39" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="48" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="60" type="method" name="isWriteMode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="67" type="method" name="mustBePosted" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="74" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <metrics loc="80" ncloc="51" classes="1" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="5" elements="22" coveredelements="7"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiReadingListsTeardown.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiReadingListsTeardown" namespace="global">
        <metrics complexity="7" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="2" elements="19" coveredelements="4"/>
      </class>
      <line num="22" type="method" name="execute" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="23" type="stmt" count="2"/>
      <line num="29" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="2"/>
      <line num="30" type="stmt" count="2"/>
      <line num="36" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="45" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="57" type="method" name="isWriteMode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="64" type="method" name="mustBePosted" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="71" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <metrics loc="77" ncloc="48" classes="1" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="2" elements="19" coveredelements="4"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiReadingListsUpdate.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiReadingListsUpdate" namespace="global">
        <metrics complexity="9" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="56" coveredstatements="40" elements="63" coveredelements="42"/>
      </class>
      <line num="24" type="method" name="execute" visibility="public" complexity="3" crap="3" count="3"/>
      <line num="25" type="stmt" count="3"/>
      <line num="26" type="stmt" count="3"/>
      <line num="27" type="stmt" count="3"/>
      <line num="28" type="stmt" count="3"/>
      <line num="30" type="stmt" count="3"/>
      <line num="31" type="stmt" count="3"/>
      <line num="32" type="stmt" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="58" type="method" name="getAllowedParams" visibility="protected" complexity="1" crap="1" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="62" type="stmt" count="3"/>
      <line num="63" type="stmt" count="3"/>
      <line num="64" type="stmt" count="3"/>
      <line num="65" type="stmt" count="3"/>
      <line num="66" type="stmt" count="3"/>
      <line num="67" type="stmt" count="3"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="3"/>
      <line num="70" type="stmt" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="72" type="stmt" count="3"/>
      <line num="73" type="stmt" count="3"/>
      <line num="74" type="stmt" count="3"/>
      <line num="80" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="89" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" 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="99" type="stmt" count="0"/>
      <line num="107" type="method" name="isWriteMode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="114" type="method" name="mustBePosted" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="121" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <metrics loc="127" ncloc="98" classes="1" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="56" coveredstatements="40" elements="63" coveredelements="42"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Api/ApiTrait.php">
      <class name="MediaWiki\Extension\ReadingLists\Api\ApiTrait" namespace="global">
        <metrics complexity="29" methods="11" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="89" elements="104" coveredelements="96"/>
      </class>
      <line num="70" type="method" name="factory" visibility="public" complexity="2" crap="2" count="38"/>
      <line num="79" type="stmt" count="38"/>
      <line num="82" type="stmt" count="12"/>
      <line num="86" type="stmt" count="27"/>
      <line num="88" type="stmt" count="38"/>
      <line num="89" type="stmt" count="38"/>
      <line num="90" type="stmt" count="38"/>
      <line num="91" type="stmt" count="38"/>
      <line num="92" type="stmt" count="38"/>
      <line num="93" type="stmt" count="38"/>
      <line num="94" type="stmt" count="38"/>
      <line num="96" type="stmt" count="38"/>
      <line num="103" type="method" name="getParent" visibility="public" complexity="1" crap="1" count="18"/>
      <line num="104" type="stmt" count="18"/>
      <line num="110" type="method" name="getReverseInterwikiLookup" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="119" type="method" name="getReadingListRepository" visibility="protected" complexity="1" crap="1" count="38"/>
      <line num="120" type="stmt" count="38"/>
      <line num="121" type="stmt" count="38"/>
      <line num="122" type="stmt" count="38"/>
      <line num="123" type="stmt" count="38"/>
      <line num="124" type="stmt" count="38"/>
      <line num="125" type="stmt" count="38"/>
      <line num="126" type="stmt" count="38"/>
      <line num="127" type="stmt" count="38"/>
      <line num="128" type="stmt" count="38"/>
      <line num="129" type="stmt" count="38"/>
      <line num="135" type="method" name="invalidateBookmarkBloomFilter" visibility="protected" complexity="1" crap="1" count="11"/>
      <line num="136" type="stmt" count="11"/>
      <line num="146" type="method" name="getBatchOps" visibility="protected" complexity="11" crap="11" count="16"/>
      <line num="147" type="stmt" count="16"/>
      <line num="150" type="stmt" count="16"/>
      <line num="151" type="stmt" count="4"/>
      <line num="152" type="stmt" count="1"/>
      <line num="153" type="stmt" count="1"/>
      <line num="154" type="stmt" count="1"/>
      <line num="156" type="stmt" count="3"/>
      <line num="159" type="stmt" count="12"/>
      <line num="160" type="stmt" count="12"/>
      <line num="161" type="stmt" count="12"/>
      <line num="162" type="stmt" count="12"/>
      <line num="163" type="stmt" count="1"/>
      <line num="164" type="stmt" count="1"/>
      <line num="168" type="stmt" count="12"/>
      <line num="169" type="stmt" count="12"/>
      <line num="170" type="stmt" count="12"/>
      <line num="172" type="stmt" count="3"/>
      <line num="175" type="stmt" count="9"/>
      <line num="176" type="stmt" count="9"/>
      <line num="177" type="stmt" count="7"/>
      <line num="179" type="stmt" count="9"/>
      <line num="181" type="stmt" count="8"/>
      <line num="191" type="method" name="requireAtLeastOneBatchParameter" visibility="protected" complexity="3" crap="3" count="11"/>
      <line num="192" type="stmt" count="11"/>
      <line num="193" type="stmt" count="11"/>
      <line num="194" type="stmt" count="11"/>
      <line num="195" type="stmt" count="11"/>
      <line num="196" type="stmt" count="11"/>
      <line num="197" type="stmt" count="11"/>
      <line num="199" type="stmt" count="11"/>
      <line num="201" type="stmt" count="2"/>
      <line num="202" type="stmt" count="2"/>
      <line num="203" type="stmt" count="2"/>
      <line num="204" type="stmt" count="2"/>
      <line num="206" type="stmt" count="2"/>
      <line num="207" type="stmt" count="2"/>
      <line num="208" type="stmt" count="2"/>
      <line num="209" type="stmt" count="2"/>
      <line num="210" type="stmt" count="2"/>
      <line num="211" type="stmt" count="2"/>
      <line num="221" type="method" name="getListFromRow" visibility="protected" complexity="3" crap="3.00" count="33"/>
      <line num="222" type="stmt" count="33"/>
      <line num="223" type="stmt" count="33"/>
      <line num="224" type="stmt" count="33"/>
      <line num="225" type="stmt" count="33"/>
      <line num="226" type="stmt" count="33"/>
      <line num="227" type="stmt" count="33"/>
      <line num="228" type="stmt" count="33"/>
      <line num="229" type="stmt" count="33"/>
      <line num="230" type="stmt" count="33"/>
      <line num="232" type="stmt" count="33"/>
      <line num="233" type="stmt" count="3"/>
      <line num="235" type="stmt" count="33"/>
      <line num="236" type="stmt" count="0"/>
      <line num="238" type="stmt" count="33"/>
      <line num="247" type="method" name="getListEntryFromRow" visibility="protected" complexity="3" crap="3.00" count="10"/>
      <line num="248" type="stmt" count="10"/>
      <line num="249" type="stmt" count="10"/>
      <line num="250" type="stmt" count="10"/>
      <line num="251" type="stmt" count="10"/>
      <line num="252" type="stmt" count="10"/>
      <line num="253" type="stmt" count="10"/>
      <line num="254" type="stmt" count="10"/>
      <line num="255" type="stmt" count="10"/>
      <line num="257" type="stmt" count="10"/>
      <line num="258" type="stmt" count="5"/>
      <line num="260" type="stmt" count="10"/>
      <line num="261" type="stmt" count="0"/>
      <line num="263" type="stmt" count="10"/>
      <line num="266" type="method" name="validateTitle" visibility="protected" complexity="2" crap="2.50" count="1"/>
      <line num="267" type="stmt" count="1"/>
      <line num="269" type="stmt" count="0"/>
      <line num="273" type="method" name="isLocalProject" visibility="protected" complexity="1" crap="1" count="2"/>
      <line num="274" type="stmt" count="2"/>
      <metrics loc="278" ncloc="198" classes="1" methods="11" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="89" elements="104" coveredelements="96"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/BetaFeatureHookHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\BetaFeatureHookHandler" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="16" elements="18" coveredelements="18"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="21" type="stmt" count="3"/>
      <line num="29" type="method" name="onGetBetaFeaturePreferences" visibility="public" complexity="4" crap="4" count="3"/>
      <line num="31" type="stmt" count="3"/>
      <line num="33" type="stmt" count="1"/>
      <line num="36" type="stmt" count="2"/>
      <line num="37" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <metrics loc="54" ncloc="41" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="16" elements="18" coveredelements="18"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Constants.php">
      <class name="MediaWiki\Extension\ReadingLists\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="7" ncloc="7" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Doc/ReadingListEntryRow.php">
      <class name="MediaWiki\Extension\ReadingLists\Doc\ReadingListEntryRow" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="60" ncloc="26" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Doc/ReadingListEntryRowWithMergeFlag.php">
      <class name="MediaWiki\Extension\ReadingLists\Doc\ReadingListEntryRowWithMergeFlag" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="26" ncloc="12" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Doc/ReadingListRow.php">
      <class name="MediaWiki\Extension\ReadingLists\Doc\ReadingListRow" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="61" ncloc="26" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Doc/ReadingListRowWithMergeFlag.php">
      <class name="MediaWiki\Extension\ReadingLists\Doc\ReadingListRowWithMergeFlag" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="27" ncloc="12" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/ExtensionRegistration.php">
      <class name="MediaWiki\Extension\ReadingLists\ExtensionRegistration" namespace="global">
        <metrics complexity="4" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="8" elements="14" coveredelements="8"/>
      </class>
      <line num="11" type="method" name="onRegistration" visibility="public" complexity="4" crap="4.91" count="3"/>
      <line num="12" type="stmt" count="3"/>
      <line num="15" type="stmt" count="3"/>
      <line num="16" type="stmt" count="3"/>
      <line num="18" type="stmt" count="1"/>
      <line num="19" type="stmt" count="1"/>
      <line num="20" type="stmt" count="1"/>
      <line num="23" type="stmt" count="2"/>
      <line num="24" type="stmt" count="2"/>
      <line num="25" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <metrics loc="33" ncloc="33" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="8" elements="14" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/HookHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\HookHandler" namespace="global">
        <metrics complexity="40" methods="10" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="132" coveredstatements="92" elements="142" coveredelements="96"/>
      </class>
      <line num="37" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="44" type="stmt" count="12"/>
      <line num="54" type="method" name="onSkinTemplateNavigation__Universal" visibility="public" complexity="21" crap="21.49" count="11"/>
      <line num="55" type="stmt" count="11"/>
      <line num="56" type="stmt" count="1"/>
      <line num="59" type="stmt" count="10"/>
      <line num="60" type="stmt" count="10"/>
      <line num="61" type="stmt" count="10"/>
      <line num="62" type="stmt" count="10"/>
      <line num="63" type="stmt" count="10"/>
      <line num="67" type="stmt" count="10"/>
      <line num="68" type="stmt" count="7"/>
      <line num="69" type="stmt" count="3"/>
      <line num="71" type="stmt" count="2"/>
      <line num="74" type="stmt" count="8"/>
      <line num="75" type="stmt" count="8"/>
      <line num="76" type="stmt" count="8"/>
      <line num="78" type="stmt" count="8"/>
      <line num="79" type="stmt" count="1"/>
      <line num="84" type="stmt" count="7"/>
      <line num="85" type="stmt" count="7"/>
      <line num="86" type="stmt" count="2"/>
      <line num="89" type="stmt" count="5"/>
      <line num="90" type="stmt" count="5"/>
      <line num="92" type="stmt" count="5"/>
      <line num="93" type="stmt" count="4"/>
      <line num="94" type="stmt" count="4"/>
      <line num="96" type="stmt" count="4"/>
      <line num="97" type="stmt" count="4"/>
      <line num="98" type="stmt" count="4"/>
      <line num="99" type="stmt" count="4"/>
      <line num="100" type="stmt" count="4"/>
      <line num="102" type="stmt" count="4"/>
      <line num="104" type="stmt" count="4"/>
      <line num="105" type="stmt" count="4"/>
      <line num="106" type="stmt" count="4"/>
      <line num="111" type="stmt" count="5"/>
      <line num="112" type="stmt" count="5"/>
      <line num="113" type="stmt" count="5"/>
      <line num="114" type="stmt" count="5"/>
      <line num="115" type="stmt" count="5"/>
      <line num="116" type="stmt" count="5"/>
      <line num="117" type="stmt" count="5"/>
      <line num="118" type="stmt" count="5"/>
      <line num="119" type="stmt" count="5"/>
      <line num="120" type="stmt" count="5"/>
      <line num="121" type="stmt" count="5"/>
      <line num="122" type="stmt" count="5"/>
      <line num="124" type="stmt" count="5"/>
      <line num="125" type="stmt" count="4"/>
      <line num="128" type="stmt" count="4"/>
      <line num="129" type="stmt" count="4"/>
      <line num="130" type="stmt" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="134" type="stmt" count="4"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="141" type="stmt" count="5"/>
      <line num="142" type="stmt" count="1"/>
      <line num="146" type="method" name="addSpecialPageLinkToUserMenu" visibility="private" complexity="3" crap="3.00" count="7"/>
      <line num="151" type="stmt" count="7"/>
      <line num="155" type="stmt" count="7"/>
      <line num="156" type="stmt" count="7"/>
      <line num="157" type="stmt" count="7"/>
      <line num="160" type="stmt" count="7"/>
      <line num="161" type="stmt" count="7"/>
      <line num="163" type="stmt" count="7"/>
      <line num="164" type="stmt" count="7"/>
      <line num="165" type="stmt" count="7"/>
      <line num="166" type="stmt" count="7"/>
      <line num="167" type="stmt" count="7"/>
      <line num="168" type="stmt" count="7"/>
      <line num="169" type="stmt" count="7"/>
      <line num="170" type="stmt" count="7"/>
      <line num="171" type="stmt" count="7"/>
      <line num="173" type="stmt" count="0"/>
      <line num="177" type="method" name="isReadingListsEnabledForUser" visibility="private" complexity="5" crap="5" count="10"/>
      <line num="178" type="stmt" count="10"/>
      <line num="179" type="stmt" count="1"/>
      <line num="182" type="stmt" count="9"/>
      <line num="183" type="stmt" count="3"/>
      <line num="186" type="stmt" count="6"/>
      <line num="187" type="stmt" count="6"/>
      <line num="189" type="stmt" count="6"/>
      <line num="190" type="stmt" count="4"/>
      <line num="193" type="stmt" count="2"/>
      <line num="202" type="method" name="isSkinSupported" visibility="public" complexity="2" crap="2" count="19"/>
      <line num="203" type="stmt" count="19"/>
      <line num="212" type="method" name="onAPIQuerySiteInfoGeneralInfo" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="213" type="stmt" count="0"/>
      <line num="214" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="216" type="stmt" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="225" type="method" name="isBetaSurveyEnabled" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="226" type="stmt" count="0"/>
      <line num="230" type="method" name="onResourceLoaderGetConfigVars" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="235" type="method" name="onCentralAuthPostLoginRedirect" visibility="public" complexity="4" crap="4" count="1"/>
      <line num="242" type="stmt" count="1"/>
      <line num="243" type="stmt" count="1"/>
      <line num="244" type="stmt" count="1"/>
      <line num="245" type="stmt" count="1"/>
      <line num="246" type="stmt" count="1"/>
      <line num="247" type="stmt" count="1"/>
      <line num="250" type="stmt" count="1"/>
      <line num="253" type="stmt" count="1"/>
      <line num="256" type="stmt" count="1"/>
      <line num="257" type="stmt" count="1"/>
      <line num="258" type="stmt" count="1"/>
      <line num="259" type="stmt" count="1"/>
      <line num="263" type="stmt" count="1"/>
      <line num="264" type="stmt" count="1"/>
      <line num="272" type="method" name="onQuickSurveysEnabled" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="273" type="stmt" count="0"/>
      <line num="275" type="stmt" count="0"/>
      <line num="276" type="stmt" count="0"/>
      <line num="277" type="stmt" count="0"/>
      <line num="278" type="stmt" count="0"/>
      <line num="279" type="stmt" count="0"/>
      <line num="280" type="stmt" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="282" type="stmt" count="0"/>
      <line num="283" type="stmt" count="0"/>
      <line num="284" type="stmt" count="0"/>
      <line num="285" type="stmt" count="0"/>
      <line num="286" type="stmt" count="0"/>
      <line num="287" type="stmt" count="0"/>
      <line num="288" type="stmt" count="0"/>
      <line num="289" type="stmt" count="0"/>
      <line num="290" type="stmt" count="0"/>
      <line num="291" type="stmt" count="0"/>
      <line num="293" type="stmt" count="0"/>
      <line num="294" type="stmt" count="0"/>
      <line num="295" type="stmt" count="0"/>
      <line num="296" type="stmt" count="0"/>
      <line num="297" type="stmt" count="0"/>
      <line num="298" type="stmt" count="0"/>
      <line num="299" type="stmt" count="0"/>
      <line num="300" type="stmt" count="0"/>
      <metrics loc="303" ncloc="253" classes="1" methods="10" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="132" coveredstatements="92" elements="142" coveredelements="96"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Job/BuildBloomFilterJob.php">
      <class name="MediaWiki\Extension\ReadingLists\Job\BuildBloomFilterJob" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="6" elements="10" coveredelements="8"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="22" type="stmt" count="2"/>
      <line num="23" type="stmt" count="2"/>
      <line num="26" type="method" name="run" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="34" type="method" name="getDeduplicationInfo" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <metrics loc="44" ncloc="29" classes="1" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="6" elements="10" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/LocalProjectHelper.php">
      <class name="MediaWiki\Extension\ReadingLists\LocalProjectHelper" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="7" elements="10" coveredelements="8"/>
      </class>
      <line num="23" type="method" name="getLocalProject" visibility="public" complexity="2" crap="2.01" count="2"/>
      <line num="24" type="stmt" count="2"/>
      <line num="25" type="stmt" count="2"/>
      <line num="26" type="stmt" count="2"/>
      <line num="27" type="stmt" count="0"/>
      <line num="30" type="stmt" count="2"/>
      <line num="34" type="stmt" count="2"/>
      <line num="35" type="stmt" count="2"/>
      <line num="45" type="method" name="isLocalProject" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <metrics loc="49" ncloc="26" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="7" elements="10" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/ReadingListEntryTitleMigrationService.php">
      <class name="MediaWiki\Extension\ReadingLists\ReadingListEntryTitleMigrationService" namespace="global">
        <metrics complexity="25" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="141" coveredstatements="136" elements="144" coveredelements="137"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="20" type="stmt" count="5"/>
      <line num="32" type="method" name="migrateNormalizeEntryTitles" visibility="public" complexity="11" crap="11" count="5"/>
      <line num="38" type="stmt" count="5"/>
      <line num="39" type="stmt" count="5"/>
      <line num="40" type="stmt" count="5"/>
      <line num="41" type="stmt" count="5"/>
      <line num="42" type="stmt" count="5"/>
      <line num="43" type="stmt" count="5"/>
      <line num="45" type="stmt" count="5"/>
      <line num="46" type="stmt" count="5"/>
      <line num="48" type="stmt" count="5"/>
      <line num="49" type="stmt" count="5"/>
      <line num="50" type="stmt" count="5"/>
      <line num="51" type="stmt" count="5"/>
      <line num="52" type="stmt" count="5"/>
      <line num="54" type="stmt" count="5"/>
      <line num="55" type="stmt" count="5"/>
      <line num="56" type="stmt" count="5"/>
      <line num="57" type="stmt" count="5"/>
      <line num="58" type="stmt" count="5"/>
      <line num="59" type="stmt" count="5"/>
      <line num="60" type="stmt" count="5"/>
      <line num="61" type="stmt" count="5"/>
      <line num="62" type="stmt" count="5"/>
      <line num="63" type="stmt" count="5"/>
      <line num="64" type="stmt" count="5"/>
      <line num="65" type="stmt" count="5"/>
      <line num="66" type="stmt" count="0"/>
      <line num="69" type="stmt" count="5"/>
      <line num="70" type="stmt" count="5"/>
      <line num="71" type="stmt" count="5"/>
      <line num="72" type="stmt" count="5"/>
      <line num="73" type="stmt" count="5"/>
      <line num="74" type="stmt" count="5"/>
      <line num="75" type="stmt" count="5"/>
      <line num="76" type="stmt" count="5"/>
      <line num="78" type="stmt" count="5"/>
      <line num="79" type="stmt" count="4"/>
      <line num="82" type="stmt" count="5"/>
      <line num="83" type="stmt" count="5"/>
      <line num="84" type="stmt" count="1"/>
      <line num="86" type="stmt" count="5"/>
      <line num="87" type="stmt" count="5"/>
      <line num="88" type="stmt" count="4"/>
      <line num="91" type="stmt" count="5"/>
      <line num="92" type="stmt" count="5"/>
      <line num="93" type="stmt" count="5"/>
      <line num="94" type="stmt" count="5"/>
      <line num="95" type="stmt" count="5"/>
      <line num="96" type="stmt" count="5"/>
      <line num="97" type="stmt" count="5"/>
      <line num="98" type="stmt" count="5"/>
      <line num="99" type="stmt" count="5"/>
      <line num="102" type="stmt" count="5"/>
      <line num="103" type="stmt" count="4"/>
      <line num="106" type="stmt" count="5"/>
      <line num="109" type="stmt" count="4"/>
      <line num="110" type="stmt" count="3"/>
      <line num="114" type="stmt" count="5"/>
      <line num="125" type="method" name="migrateNormalizeOneEntryTitle" visibility="private" complexity="13" crap="13" count="5"/>
      <line num="132" type="stmt" count="5"/>
      <line num="133" type="stmt" count="5"/>
      <line num="134" type="stmt" count="5"/>
      <line num="135" type="stmt" count="5"/>
      <line num="136" type="stmt" count="5"/>
      <line num="137" type="stmt" count="5"/>
      <line num="139" type="stmt" count="5"/>
      <line num="140" type="stmt" count="5"/>
      <line num="141" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="145" type="stmt" count="5"/>
      <line num="149" type="stmt" count="5"/>
      <line num="150" type="stmt" count="5"/>
      <line num="151" type="stmt" count="5"/>
      <line num="152" type="stmt" count="5"/>
      <line num="153" type="stmt" count="5"/>
      <line num="154" type="stmt" count="4"/>
      <line num="156" type="stmt" count="5"/>
      <line num="158" type="stmt" count="5"/>
      <line num="159" type="stmt" count="5"/>
      <line num="160" type="stmt" count="5"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="168" type="stmt" count="5"/>
      <line num="169" type="stmt" count="5"/>
      <line num="170" type="stmt" count="5"/>
      <line num="171" type="stmt" count="5"/>
      <line num="172" type="stmt" count="5"/>
      <line num="173" type="stmt" count="5"/>
      <line num="174" type="stmt" count="5"/>
      <line num="175" type="stmt" count="5"/>
      <line num="176" type="stmt" count="5"/>
      <line num="177" type="stmt" count="5"/>
      <line num="178" type="stmt" count="5"/>
      <line num="180" type="stmt" count="5"/>
      <line num="181" type="stmt" count="1"/>
      <line num="182" type="stmt" count="1"/>
      <line num="183" type="stmt" count="1"/>
      <line num="184" type="stmt" count="1"/>
      <line num="185" type="stmt" count="1"/>
      <line num="186" type="stmt" count="1"/>
      <line num="187" type="stmt" count="1"/>
      <line num="188" type="stmt" count="1"/>
      <line num="189" type="stmt" count="1"/>
      <line num="191" type="stmt" count="1"/>
      <line num="192" type="stmt" count="1"/>
      <line num="193" type="stmt" count="1"/>
      <line num="194" type="stmt" count="1"/>
      <line num="195" type="stmt" count="1"/>
      <line num="196" type="stmt" count="1"/>
      <line num="197" type="stmt" count="1"/>
      <line num="198" type="stmt" count="1"/>
      <line num="199" type="stmt" count="1"/>
      <line num="203" type="stmt" count="1"/>
      <line num="204" type="stmt" count="1"/>
      <line num="209" type="stmt" count="4"/>
      <line num="210" type="stmt" count="4"/>
      <line num="211" type="stmt" count="4"/>
      <line num="212" type="stmt" count="4"/>
      <line num="213" type="stmt" count="4"/>
      <line num="214" type="stmt" count="4"/>
      <line num="215" type="stmt" count="4"/>
      <line num="216" type="stmt" count="4"/>
      <line num="217" type="stmt" count="4"/>
      <line num="218" type="stmt" count="4"/>
      <line num="219" type="stmt" count="4"/>
      <line num="221" type="stmt" count="4"/>
      <line num="222" type="stmt" count="1"/>
      <line num="223" type="stmt" count="1"/>
      <line num="224" type="stmt" count="1"/>
      <line num="227" type="stmt" count="3"/>
      <line num="228" type="stmt" count="2"/>
      <line num="229" type="stmt" count="2"/>
      <line num="230" type="stmt" count="2"/>
      <line num="231" type="stmt" count="2"/>
      <line num="232" type="stmt" count="2"/>
      <line num="235" type="stmt" count="3"/>
      <line num="236" type="stmt" count="3"/>
      <line num="237" type="stmt" count="3"/>
      <line num="238" type="stmt" count="3"/>
      <line num="239" type="stmt" count="3"/>
      <line num="240" type="stmt" count="3"/>
      <line num="241" type="stmt" count="3"/>
      <metrics loc="244" ncloc="215" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="141" coveredstatements="136" elements="144" coveredelements="137"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/ReadingListEntryTitleNormalizer.php">
      <class name="MediaWiki\Extension\ReadingLists\ReadingListEntryTitleNormalizer" namespace="global">
        <metrics complexity="3" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="6" coveredelements="6"/>
      </class>
      <line num="26" type="method" name="normalizeForStorage" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="31" type="stmt" count="2"/>
      <line num="32" type="stmt" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <metrics loc="41" ncloc="24" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="6" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/ReadingListRepository.php">
      <class name="MediaWiki\Extension\ReadingLists\ReadingListRepository" namespace="global">
        <metrics complexity="153" methods="44" coveredmethods="21" conditionals="0" coveredconditionals="0" statements="865" coveredstatements="781" elements="909" coveredelements="802"/>
      </class>
      <line num="89" type="method" name="__construct" visibility="public" complexity="2" crap="2" count="82"/>
      <line num="94" type="stmt" count="82"/>
      <line num="95" type="stmt" count="82"/>
      <line num="96" type="stmt" count="82"/>
      <line num="97" type="stmt" count="82"/>
      <line num="98" type="stmt" count="82"/>
      <line num="99" type="stmt" count="82"/>
      <line num="106" type="method" name="setLimits" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="107" type="stmt" count="2"/>
      <line num="108" type="stmt" count="2"/>
      <line num="111" type="method" name="setLogger" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="124" type="method" name="setupForUser" visibility="public" complexity="4" crap="4" count="49"/>
      <line num="125" type="stmt" count="49"/>
      <line num="126" type="stmt" count="1"/>
      <line num="129" type="stmt" count="48"/>
      <line num="130" type="stmt" count="47"/>
      <line num="133" type="stmt" count="47"/>
      <line num="135" type="stmt" count="1"/>
      <line num="136" type="stmt" count="0"/>
      <line num="139" type="stmt" count="1"/>
      <line num="142" type="stmt" count="47"/>
      <line num="143" type="stmt" count="47"/>
      <line num="144" type="stmt" count="47"/>
      <line num="145" type="stmt" count="47"/>
      <line num="146" type="stmt" count="47"/>
      <line num="147" type="stmt" count="47"/>
      <line num="148" type="stmt" count="47"/>
      <line num="149" type="stmt" count="47"/>
      <line num="150" type="stmt" count="47"/>
      <line num="151" type="stmt" count="47"/>
      <line num="152" type="stmt" count="47"/>
      <line num="153" type="stmt" count="47"/>
      <line num="154" type="stmt" count="47"/>
      <line num="155" type="stmt" count="47"/>
      <line num="156" type="stmt" count="47"/>
      <line num="157" type="stmt" count="47"/>
      <line num="166" type="method" name="teardownForUser" visibility="public" complexity="3" crap="3.04" count="3"/>
      <line num="167" type="stmt" count="3"/>
      <line num="168" type="stmt" count="2"/>
      <line num="169" type="stmt" count="1"/>
      <line num="175" type="stmt" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <line num="177" type="stmt" count="1"/>
      <line num="182" type="stmt" count="1"/>
      <line num="183" type="stmt" count="1"/>
      <line num="184" type="stmt" count="1"/>
      <line num="185" type="stmt" count="1"/>
      <line num="186" type="stmt" count="1"/>
      <line num="187" type="stmt" count="1"/>
      <line num="188" type="stmt" count="1"/>
      <line num="189" type="stmt" count="1"/>
      <line num="190" type="stmt" count="1"/>
      <line num="191" type="stmt" count="1"/>
      <line num="192" type="stmt" count="1"/>
      <line num="193" type="stmt" count="1"/>
      <line num="194" type="stmt" count="1"/>
      <line num="195" type="stmt" count="1"/>
      <line num="196" type="stmt" count="0"/>
      <line num="197" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="199" type="stmt" count="0"/>
      <line num="202" type="stmt" count="1"/>
      <line num="217" type="method" name="getDefaultListIdForUser" visibility="public" complexity="2" crap="2" count="53"/>
      <line num="218" type="stmt" count="53"/>
      <line num="219" type="stmt" count="52"/>
      <line num="220" type="stmt" count="50"/>
      <line num="222" type="stmt" count="3"/>
      <line num="224" type="stmt" count="52"/>
      <line num="225" type="stmt" count="52"/>
      <line num="226" type="stmt" count="52"/>
      <line num="227" type="stmt" count="52"/>
      <line num="228" type="stmt" count="52"/>
      <line num="229" type="stmt" count="52"/>
      <line num="233" type="stmt" count="52"/>
      <line num="234" type="stmt" count="52"/>
      <line num="235" type="stmt" count="52"/>
      <line num="236" type="stmt" count="52"/>
      <line num="237" type="stmt" count="52"/>
      <line num="238" type="stmt" count="52"/>
      <line num="239" type="stmt" count="52"/>
      <line num="253" type="method" name="selectValidList" visibility="public" complexity="5" crap="5.01" count="47"/>
      <line num="254" type="stmt" count="47"/>
      <line num="255" type="stmt" count="47"/>
      <line num="256" type="stmt" count="47"/>
      <line num="258" type="stmt" count="0"/>
      <line num="261" type="stmt" count="47"/>
      <line num="262" type="stmt" count="47"/>
      <line num="263" type="stmt" count="47"/>
      <line num="264" type="stmt" count="47"/>
      <line num="265" type="stmt" count="47"/>
      <line num="266" type="stmt" count="47"/>
      <line num="267" type="stmt" count="47"/>
      <line num="268" type="stmt" count="3"/>
      <line num="269" type="stmt" count="47"/>
      <line num="270" type="stmt" count="3"/>
      <line num="271" type="stmt" count="47"/>
      <line num="272" type="stmt" count="3"/>
      <line num="274" type="stmt" count="47"/>
      <line num="285" type="method" name="addList" visibility="public" complexity="7" crap="7.05" count="5"/>
      <line num="286" type="stmt" count="5"/>
      <line num="287" type="stmt" count="4"/>
      <line num="288" type="stmt" count="4"/>
      <line num="289" type="stmt" count="4"/>
      <line num="290" type="stmt" count="1"/>
      <line num="292" type="stmt" count="3"/>
      <line num="296" type="stmt" count="1"/>
      <line num="297" type="stmt" count="1"/>
      <line num="304" type="stmt" count="3"/>
      <line num="305" type="stmt" count="3"/>
      <line num="306" type="stmt" count="3"/>
      <line num="307" type="stmt" count="3"/>
      <line num="308" type="stmt" count="3"/>
      <line num="309" type="stmt" count="3"/>
      <line num="310" type="stmt" count="3"/>
      <line num="312" type="stmt" count="3"/>
      <line num="313" type="stmt" count="3"/>
      <line num="314" type="stmt" count="3"/>
      <line num="315" type="stmt" count="3"/>
      <line num="316" type="stmt" count="3"/>
      <line num="317" type="stmt" count="3"/>
      <line num="318" type="stmt" count="3"/>
      <line num="319" type="stmt" count="3"/>
      <line num="320" type="stmt" count="3"/>
      <line num="321" type="stmt" count="3"/>
      <line num="322" type="stmt" count="3"/>
      <line num="323" type="stmt" count="3"/>
      <line num="324" type="stmt" count="3"/>
      <line num="325" type="stmt" count="3"/>
      <line num="326" type="stmt" count="3"/>
      <line num="327" type="stmt" count="3"/>
      <line num="328" type="stmt" count="2"/>
      <line num="329" type="stmt" count="0"/>
      <line num="330" type="stmt" count="0"/>
      <line num="331" type="stmt" count="0"/>
      <line num="332" type="stmt" count="0"/>
      <line num="333" type="stmt" count="0"/>
      <line num="334" type="stmt" count="0"/>
      <line num="335" type="stmt" count="2"/>
      <line num="337" type="stmt" count="2"/>
      <line num="338" type="stmt" count="2"/>
      <line num="340" type="stmt" count="1"/>
      <line num="341" type="stmt" count="1"/>
      <line num="342" type="stmt" count="1"/>
      <line num="343" type="stmt" count="1"/>
      <line num="344" type="stmt" count="1"/>
      <line num="345" type="stmt" count="1"/>
      <line num="346" type="stmt" count="1"/>
      <line num="347" type="stmt" count="1"/>
      <line num="348" type="stmt" count="1"/>
      <line num="349" type="stmt" count="1"/>
      <line num="351" type="stmt" count="3"/>
      <line num="352" type="stmt" count="3"/>
      <line num="353" type="stmt" count="3"/>
      <line num="354" type="stmt" count="3"/>
      <line num="355" type="stmt" count="3"/>
      <line num="360" type="stmt" count="3"/>
      <line num="362" type="stmt" count="3"/>
      <line num="363" type="stmt" count="3"/>
      <line num="377" type="method" name="getAllLists" visibility="public" complexity="4" crap="4" count="10"/>
      <line num="378" type="stmt" count="10"/>
      <line num="379" type="stmt" count="9"/>
      <line num="382" type="stmt" count="9"/>
      <line num="383" type="stmt" count="3"/>
      <line num="385" type="stmt" count="6"/>
      <line num="388" type="stmt" count="9"/>
      <line num="389" type="stmt" count="9"/>
      <line num="390" type="stmt" count="9"/>
      <line num="391" type="stmt" count="9"/>
      <line num="392" type="stmt" count="9"/>
      <line num="393" type="stmt" count="9"/>
      <line num="394" type="stmt" count="9"/>
      <line num="396" type="stmt" count="9"/>
      <line num="397" type="stmt" count="9"/>
      <line num="399" type="stmt" count="1"/>
      <line num="401" type="stmt" count="8"/>
      <line num="413" type="method" name="updateList" visibility="public" complexity="9" crap="11.28" count="2"/>
      <line num="414" type="stmt" count="2"/>
      <line num="415" type="stmt" count="1"/>
      <line num="416" type="stmt" count="1"/>
      <line num="417" type="stmt" count="1"/>
      <line num="418" type="stmt" count="1"/>
      <line num="419" type="stmt" count="1"/>
      <line num="422" type="stmt" count="1"/>
      <line num="424" type="stmt" count="1"/>
      <line num="425" type="stmt" count="1"/>
      <line num="426" type="stmt" count="1"/>
      <line num="427" type="stmt" count="1"/>
      <line num="428" type="stmt" count="1"/>
      <line num="429" type="stmt" count="1"/>
      <line num="430" type="stmt" count="1"/>
      <line num="432" type="stmt" count="1"/>
      <line num="433" type="stmt" count="1"/>
      <line num="434" type="stmt" count="0"/>
      <line num="435" type="stmt" count="0"/>
      <line num="436" type="stmt" count="0"/>
      <line num="437" type="stmt" count="0"/>
      <line num="438" type="stmt" count="0"/>
      <line num="439" type="stmt" count="0"/>
      <line num="440" type="stmt" count="0"/>
      <line num="442" type="stmt" count="1"/>
      <line num="447" type="stmt" count="1"/>
      <line num="448" type="stmt" count="1"/>
      <line num="449" type="stmt" count="1"/>
      <line num="450" type="stmt" count="1"/>
      <line num="451" type="stmt" count="1"/>
      <line num="452" type="stmt" count="1"/>
      <line num="453" type="stmt" count="1"/>
      <line num="454" type="stmt" count="1"/>
      <line num="456" type="stmt" count="0"/>
      <line num="459" type="stmt" count="1"/>
      <line num="460" type="stmt" count="1"/>
      <line num="461" type="stmt" count="1"/>
      <line num="462" type="stmt" count="1"/>
      <line num="463" type="stmt" count="1"/>
      <line num="465" type="stmt" count="1"/>
      <line num="466" type="stmt" count="0"/>
      <line num="467" type="stmt" count="0"/>
      <line num="468" type="stmt" count="0"/>
      <line num="469" type="stmt" count="0"/>
      <line num="470" type="stmt" count="0"/>
      <line num="471" type="stmt" count="0"/>
      <line num="476" type="stmt" count="1"/>
      <line num="485" type="method" name="deleteList" visibility="public" complexity="3" crap="3.06" count="4"/>
      <line num="486" type="stmt" count="4"/>
      <line num="487" type="stmt" count="3"/>
      <line num="488" type="stmt" count="3"/>
      <line num="489" type="stmt" count="1"/>
      <line num="492" type="stmt" count="3"/>
      <line num="493" type="stmt" count="3"/>
      <line num="494" type="stmt" count="3"/>
      <line num="497" type="stmt" count="3"/>
      <line num="498" type="stmt" count="3"/>
      <line num="499" type="stmt" count="3"/>
      <line num="500" type="stmt" count="3"/>
      <line num="501" type="stmt" count="3"/>
      <line num="502" type="stmt" count="3"/>
      <line num="503" type="stmt" count="3"/>
      <line num="504" type="stmt" count="3"/>
      <line num="505" type="stmt" count="3"/>
      <line num="506" type="stmt" count="3"/>
      <line num="507" type="stmt" count="3"/>
      <line num="508" type="stmt" count="0"/>
      <line num="509" type="stmt" count="0"/>
      <line num="510" type="stmt" count="0"/>
      <line num="511" type="stmt" count="0"/>
      <line num="512" type="stmt" count="0"/>
      <line num="515" type="stmt" count="3"/>
      <line num="516" type="stmt" count="3"/>
      <line num="517" type="stmt" count="3"/>
      <line num="518" type="stmt" count="3"/>
      <line num="534" type="method" name="addListEntry" visibility="public" complexity="9" crap="9.01" count="11"/>
      <line num="535" type="stmt" count="11"/>
      <line num="536" type="stmt" count="10"/>
      <line num="537" type="stmt" count="10"/>
      <line num="539" type="stmt" count="10"/>
      <line num="540" type="stmt" count="10"/>
      <line num="545" type="stmt" count="1"/>
      <line num="546" type="stmt" count="1"/>
      <line num="549" type="stmt" count="10"/>
      <line num="550" type="stmt" count="10"/>
      <line num="551" type="stmt" count="1"/>
      <line num="552" type="stmt" count="1"/>
      <line num="554" type="stmt" count="10"/>
      <line num="555" type="stmt" count="10"/>
      <line num="556" type="stmt" count="10"/>
      <line num="557" type="stmt" count="10"/>
      <line num="558" type="stmt" count="10"/>
      <line num="559" type="stmt" count="10"/>
      <line num="564" type="stmt" count="10"/>
      <line num="565" type="stmt" count="10"/>
      <line num="566" type="stmt" count="10"/>
      <line num="567" type="stmt" count="10"/>
      <line num="568" type="stmt" count="10"/>
      <line num="569" type="stmt" count="10"/>
      <line num="570" type="stmt" count="10"/>
      <line num="571" type="stmt" count="10"/>
      <line num="572" type="stmt" count="10"/>
      <line num="573" type="stmt" count="10"/>
      <line num="574" type="stmt" count="10"/>
      <line num="575" type="stmt" count="10"/>
      <line num="576" type="stmt" count="10"/>
      <line num="577" type="stmt" count="10"/>
      <line num="578" type="stmt" count="10"/>
      <line num="579" type="stmt" count="10"/>
      <line num="580" type="stmt" count="10"/>
      <line num="581" type="stmt" count="10"/>
      <line num="582" type="stmt" count="10"/>
      <line num="583" type="stmt" count="10"/>
      <line num="584" type="stmt" count="10"/>
      <line num="585" type="stmt" count="10"/>
      <line num="586" type="stmt" count="10"/>
      <line num="587" type="stmt" count="10"/>
      <line num="588" type="stmt" count="10"/>
      <line num="589" type="stmt" count="10"/>
      <line num="590" type="stmt" count="10"/>
      <line num="591" type="stmt" count="10"/>
      <line num="592" type="stmt" count="10"/>
      <line num="593" type="stmt" count="4"/>
      <line num="594" type="stmt" count="2"/>
      <line num="595" type="stmt" count="2"/>
      <line num="596" type="stmt" count="2"/>
      <line num="597" type="stmt" count="2"/>
      <line num="598" type="stmt" count="2"/>
      <line num="599" type="stmt" count="2"/>
      <line num="600" type="stmt" count="2"/>
      <line num="601" type="stmt" count="2"/>
      <line num="602" type="stmt" count="2"/>
      <line num="604" type="stmt" count="2"/>
      <line num="605" type="stmt" count="2"/>
      <line num="608" type="stmt" count="4"/>
      <line num="609" type="stmt" count="4"/>
      <line num="611" type="stmt" count="10"/>
      <line num="612" type="stmt" count="10"/>
      <line num="613" type="stmt" count="10"/>
      <line num="614" type="stmt" count="10"/>
      <line num="615" type="stmt" count="10"/>
      <line num="616" type="stmt" count="10"/>
      <line num="619" type="stmt" count="10"/>
      <line num="620" type="stmt" count="10"/>
      <line num="621" type="stmt" count="10"/>
      <line num="622" type="stmt" count="10"/>
      <line num="623" type="stmt" count="10"/>
      <line num="626" type="stmt" count="10"/>
      <line num="627" type="stmt" count="4"/>
      <line num="628" type="stmt" count="4"/>
      <line num="630" type="stmt" count="10"/>
      <line num="631" type="stmt" count="10"/>
      <line num="632" type="stmt" count="10"/>
      <line num="633" type="stmt" count="10"/>
      <line num="634" type="stmt" count="10"/>
      <line num="635" type="stmt" count="10"/>
      <line num="637" type="stmt" count="10"/>
      <line num="638" type="stmt" count="0"/>
      <line num="639" type="stmt" count="0"/>
      <line num="640" type="stmt" count="0"/>
      <line num="641" type="stmt" count="0"/>
      <line num="642" type="stmt" count="0"/>
      <line num="644" type="stmt" count="10"/>
      <line num="645" type="stmt" count="10"/>
      <line num="663" type="method" name="getListEntries" visibility="public" complexity="7" crap="7" count="15"/>
      <line num="671" type="stmt" count="15"/>
      <line num="672" type="stmt" count="14"/>
      <line num="673" type="stmt" count="1"/>
      <line num="675" type="stmt" count="14"/>
      <line num="678" type="stmt" count="14"/>
      <line num="679" type="stmt" count="14"/>
      <line num="680" type="stmt" count="14"/>
      <line num="681" type="stmt" count="14"/>
      <line num="682" type="stmt" count="14"/>
      <line num="683" type="stmt" count="14"/>
      <line num="684" type="stmt" count="14"/>
      <line num="686" type="stmt" count="14"/>
      <line num="687" type="stmt" count="1"/>
      <line num="688" type="stmt" count="1"/>
      <line num="689" type="stmt" count="14"/>
      <line num="690" type="stmt" count="1"/>
      <line num="691" type="stmt" count="1"/>
      <line num="693" type="stmt" count="14"/>
      <line num="695" type="stmt" count="14"/>
      <line num="696" type="stmt" count="14"/>
      <line num="697" type="stmt" count="1"/>
      <line num="698" type="stmt" count="1"/>
      <line num="700" type="stmt" count="14"/>
      <line num="702" type="stmt" count="13"/>
      <line num="703" type="stmt" count="13"/>
      <line num="704" type="stmt" count="13"/>
      <line num="705" type="stmt" count="13"/>
      <line num="706" type="stmt" count="13"/>
      <line num="707" type="stmt" count="13"/>
      <line num="708" type="stmt" count="13"/>
      <line num="709" type="stmt" count="13"/>
      <line num="710" type="stmt" count="13"/>
      <line num="711" type="stmt" count="13"/>
      <line num="713" type="stmt" count="13"/>
      <line num="714" type="stmt" count="3"/>
      <line num="717" type="stmt" count="13"/>
      <line num="718" type="stmt" count="13"/>
      <line num="720" type="stmt" count="13"/>
      <line num="741" type="method" name="getAllListEntries" visibility="public" complexity="4" crap="4" count="10"/>
      <line num="749" type="stmt" count="10"/>
      <line num="750" type="stmt" count="10"/>
      <line num="752" type="stmt" count="10"/>
      <line num="753" type="stmt" count="0"/>
      <line num="756" type="stmt" count="10"/>
      <line num="757" type="stmt" count="4"/>
      <line num="760" type="stmt" count="10"/>
      <line num="762" type="stmt" count="10"/>
      <line num="763" type="stmt" count="10"/>
      <line num="764" type="stmt" count="10"/>
      <line num="765" type="stmt" count="10"/>
      <line num="766" type="stmt" count="10"/>
      <line num="767" type="stmt" count="10"/>
      <line num="768" type="stmt" count="10"/>
      <line num="769" type="stmt" count="10"/>
      <line num="771" type="stmt" count="10"/>
      <line num="772" type="stmt" count="10"/>
      <line num="773" type="stmt" count="10"/>
      <line num="774" type="stmt" count="10"/>
      <line num="775" type="stmt" count="10"/>
      <line num="776" type="stmt" count="10"/>
      <line num="777" type="stmt" count="10"/>
      <line num="778" type="stmt" count="10"/>
      <line num="779" type="stmt" count="10"/>
      <line num="780" type="stmt" count="10"/>
      <line num="781" type="stmt" count="10"/>
      <line num="782" type="stmt" count="10"/>
      <line num="783" type="stmt" count="10"/>
      <line num="784" type="stmt" count="10"/>
      <line num="785" type="stmt" count="10"/>
      <line num="786" type="stmt" count="10"/>
      <line num="788" type="stmt" count="10"/>
      <line num="789" type="stmt" count="1"/>
      <line num="792" type="stmt" count="10"/>
      <line num="793" type="stmt" count="10"/>
      <line num="794" type="stmt" count="10"/>
      <line num="807" type="method" name="getSavedPageTitlesForProject" visibility="public" complexity="2" crap="2.00" count="1"/>
      <line num="812" type="stmt" count="1"/>
      <line num="813" type="stmt" count="1"/>
      <line num="815" type="stmt" count="1"/>
      <line num="816" type="stmt" count="1"/>
      <line num="817" type="stmt" count="0"/>
      <line num="818" type="stmt" count="0"/>
      <line num="821" type="stmt" count="1"/>
      <line num="822" type="stmt" count="1"/>
      <line num="823" type="stmt" count="1"/>
      <line num="824" type="stmt" count="1"/>
      <line num="825" type="stmt" count="1"/>
      <line num="826" type="stmt" count="1"/>
      <line num="827" type="stmt" count="1"/>
      <line num="828" type="stmt" count="1"/>
      <line num="829" type="stmt" count="1"/>
      <line num="830" type="stmt" count="1"/>
      <line num="831" type="stmt" count="1"/>
      <line num="832" type="stmt" count="1"/>
      <line num="833" type="stmt" count="1"/>
      <line num="834" type="stmt" count="1"/>
      <line num="843" type="method" name="deleteListEntry" visibility="public" complexity="6" crap="6.05" count="4"/>
      <line num="844" type="stmt" count="4"/>
      <line num="847" type="stmt" count="3"/>
      <line num="848" type="stmt" count="3"/>
      <line num="849" type="stmt" count="3"/>
      <line num="850" type="stmt" count="3"/>
      <line num="851" type="stmt" count="3"/>
      <line num="852" type="stmt" count="3"/>
      <line num="853" type="stmt" count="3"/>
      <line num="854" type="stmt" count="3"/>
      <line num="855" type="stmt" count="3"/>
      <line num="856" type="stmt" count="1"/>
      <line num="857" type="stmt" count="3"/>
      <line num="858" type="stmt" count="1"/>
      <line num="859" type="stmt" count="3"/>
      <line num="860" type="stmt" count="1"/>
      <line num="861" type="stmt" count="1"/>
      <line num="862" type="stmt" count="3"/>
      <line num="863" type="stmt" count="1"/>
      <line num="866" type="stmt" count="3"/>
      <line num="867" type="stmt" count="3"/>
      <line num="868" type="stmt" count="3"/>
      <line num="869" type="stmt" count="3"/>
      <line num="870" type="stmt" count="3"/>
      <line num="871" type="stmt" count="3"/>
      <line num="872" type="stmt" count="3"/>
      <line num="873" type="stmt" count="3"/>
      <line num="875" type="stmt" count="3"/>
      <line num="876" type="stmt" count="0"/>
      <line num="877" type="stmt" count="0"/>
      <line num="878" type="stmt" count="0"/>
      <line num="879" type="stmt" count="0"/>
      <line num="880" type="stmt" count="0"/>
      <line num="882" type="stmt" count="3"/>
      <line num="883" type="stmt" count="3"/>
      <line num="884" type="stmt" count="3"/>
      <line num="885" type="stmt" count="3"/>
      <line num="886" type="stmt" count="3"/>
      <line num="887" type="stmt" count="3"/>
      <line num="888" type="stmt" count="3"/>
      <line num="889" type="stmt" count="3"/>
      <line num="891" type="stmt" count="3"/>
      <line num="892" type="stmt" count="3"/>
      <line num="893" type="stmt" count="3"/>
      <line num="894" type="stmt" count="3"/>
      <line num="904" type="method" name="deleteListEntriesByPageTitleAndProject" visibility="public" complexity="4" crap="4" count="3"/>
      <line num="905" type="stmt" count="3"/>
      <line num="906" type="stmt" count="3"/>
      <line num="907" type="stmt" count="3"/>
      <line num="908" type="stmt" count="0"/>
      <line num="911" type="stmt" count="3"/>
      <line num="915" type="stmt" count="3"/>
      <line num="919" type="stmt" count="3"/>
      <line num="921" type="stmt" count="3"/>
      <line num="922" type="stmt" count="3"/>
      <line num="923" type="stmt" count="3"/>
      <line num="924" type="stmt" count="3"/>
      <line num="925" type="stmt" count="3"/>
      <line num="926" type="stmt" count="3"/>
      <line num="927" type="stmt" count="3"/>
      <line num="928" type="stmt" count="3"/>
      <line num="929" type="stmt" count="3"/>
      <line num="930" type="stmt" count="3"/>
      <line num="932" type="stmt" count="3"/>
      <line num="933" type="stmt" count="3"/>
      <line num="934" type="stmt" count="3"/>
      <line num="935" type="stmt" count="3"/>
      <line num="936" type="stmt" count="3"/>
      <line num="937" type="stmt" count="3"/>
      <line num="938" type="stmt" count="3"/>
      <line num="940" type="stmt" count="3"/>
      <line num="941" type="stmt" count="3"/>
      <line num="942" type="stmt" count="3"/>
      <line num="943" type="stmt" count="3"/>
      <line num="947" type="stmt" count="3"/>
      <line num="951" type="method" name="getReadConnection" visibility="private" complexity="2" crap="2.15" count="1"/>
      <line num="952" type="stmt" count="1"/>
      <line num="953" type="stmt" count="0"/>
      <line num="956" type="stmt" count="1"/>
      <line num="975" type="method" name="getListsByDateUpdated" visibility="public" complexity="4" crap="4" count="6"/>
      <line num="982" type="stmt" count="6"/>
      <line num="983" type="stmt" count="5"/>
      <line num="986" type="stmt" count="5"/>
      <line num="987" type="stmt" count="1"/>
      <line num="989" type="stmt" count="4"/>
      <line num="992" type="stmt" count="5"/>
      <line num="993" type="stmt" count="5"/>
      <line num="994" type="stmt" count="5"/>
      <line num="995" type="stmt" count="5"/>
      <line num="996" type="stmt" count="5"/>
      <line num="997" type="stmt" count="5"/>
      <line num="998" type="stmt" count="5"/>
      <line num="999" type="stmt" count="5"/>
      <line num="1000" type="stmt" count="5"/>
      <line num="1001" type="stmt" count="5"/>
      <line num="1003" type="stmt" count="5"/>
      <line num="1004" type="stmt" count="5"/>
      <line num="1006" type="stmt" count="1"/>
      <line num="1008" type="stmt" count="4"/>
      <line num="1025" type="method" name="getListEntriesByDateUpdated" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="1032" type="stmt" count="6"/>
      <line num="1033" type="stmt" count="6"/>
      <line num="1035" type="stmt" count="6"/>
      <line num="1036" type="stmt" count="6"/>
      <line num="1037" type="stmt" count="6"/>
      <line num="1038" type="stmt" count="6"/>
      <line num="1039" type="stmt" count="6"/>
      <line num="1040" type="stmt" count="6"/>
      <line num="1041" type="stmt" count="6"/>
      <line num="1042" type="stmt" count="6"/>
      <line num="1043" type="stmt" count="6"/>
      <line num="1044" type="stmt" count="6"/>
      <line num="1045" type="stmt" count="6"/>
      <line num="1046" type="stmt" count="6"/>
      <line num="1047" type="stmt" count="6"/>
      <line num="1049" type="stmt" count="6"/>
      <line num="1050" type="stmt" count="1"/>
      <line num="1053" type="stmt" count="6"/>
      <line num="1054" type="stmt" count="6"/>
      <line num="1055" type="stmt" count="6"/>
      <line num="1064" type="method" name="purgeOldDeleted" visibility="public" complexity="7" crap="7" count="1"/>
      <line num="1066" type="stmt" count="1"/>
      <line num="1067" type="stmt" count="1"/>
      <line num="1068" type="stmt" count="1"/>
      <line num="1069" type="stmt" count="1"/>
      <line num="1070" type="stmt" count="1"/>
      <line num="1071" type="stmt" count="1"/>
      <line num="1072" type="stmt" count="1"/>
      <line num="1073" type="stmt" count="1"/>
      <line num="1074" type="stmt" count="1"/>
      <line num="1075" type="stmt" count="1"/>
      <line num="1076" type="stmt" count="1"/>
      <line num="1077" type="stmt" count="1"/>
      <line num="1079" type="stmt" count="1"/>
      <line num="1080" type="stmt" count="1"/>
      <line num="1081" type="stmt" count="1"/>
      <line num="1082" type="stmt" count="1"/>
      <line num="1083" type="stmt" count="1"/>
      <line num="1084" type="stmt" count="1"/>
      <line num="1088" type="stmt" count="1"/>
      <line num="1089" type="stmt" count="1"/>
      <line num="1090" type="stmt" count="1"/>
      <line num="1091" type="stmt" count="1"/>
      <line num="1092" type="stmt" count="1"/>
      <line num="1093" type="stmt" count="1"/>
      <line num="1094" type="stmt" count="1"/>
      <line num="1095" type="stmt" count="1"/>
      <line num="1096" type="stmt" count="1"/>
      <line num="1097" type="stmt" count="1"/>
      <line num="1098" type="stmt" count="1"/>
      <line num="1099" type="stmt" count="1"/>
      <line num="1100" type="stmt" count="1"/>
      <line num="1102" type="stmt" count="1"/>
      <line num="1103" type="stmt" count="1"/>
      <line num="1104" type="stmt" count="1"/>
      <line num="1105" type="stmt" count="1"/>
      <line num="1106" type="stmt" count="1"/>
      <line num="1107" type="stmt" count="1"/>
      <line num="1111" type="stmt" count="1"/>
      <line num="1112" type="stmt" count="1"/>
      <line num="1113" type="stmt" count="1"/>
      <line num="1114" type="stmt" count="1"/>
      <line num="1115" type="stmt" count="1"/>
      <line num="1116" type="stmt" count="1"/>
      <line num="1117" type="stmt" count="1"/>
      <line num="1118" type="stmt" count="1"/>
      <line num="1119" type="stmt" count="1"/>
      <line num="1120" type="stmt" count="1"/>
      <line num="1121" type="stmt" count="1"/>
      <line num="1122" type="stmt" count="1"/>
      <line num="1124" type="stmt" count="1"/>
      <line num="1125" type="stmt" count="1"/>
      <line num="1126" type="stmt" count="1"/>
      <line num="1127" type="stmt" count="1"/>
      <line num="1128" type="stmt" count="1"/>
      <line num="1129" type="stmt" count="1"/>
      <line num="1146" type="method" name="getListsByPage" visibility="public" complexity="7" crap="7" count="10"/>
      <line num="1153" type="stmt" count="10"/>
      <line num="1154" type="stmt" count="9"/>
      <line num="1155" type="stmt" count="9"/>
      <line num="1156" type="stmt" count="0"/>
      <line num="1159" type="stmt" count="9"/>
      <line num="1160" type="stmt" count="9"/>
      <line num="1161" type="stmt" count="9"/>
      <line num="1162" type="stmt" count="9"/>
      <line num="1163" type="stmt" count="9"/>
      <line num="1164" type="stmt" count="9"/>
      <line num="1165" type="stmt" count="9"/>
      <line num="1166" type="stmt" count="9"/>
      <line num="1167" type="stmt" count="9"/>
      <line num="1168" type="stmt" count="9"/>
      <line num="1169" type="stmt" count="9"/>
      <line num="1171" type="stmt" count="9"/>
      <line num="1172" type="stmt" count="9"/>
      <line num="1173" type="stmt" count="9"/>
      <line num="1174" type="stmt" count="9"/>
      <line num="1175" type="stmt" count="9"/>
      <line num="1176" type="stmt" count="9"/>
      <line num="1177" type="stmt" count="9"/>
      <line num="1178" type="stmt" count="9"/>
      <line num="1179" type="stmt" count="9"/>
      <line num="1180" type="stmt" count="9"/>
      <line num="1181" type="stmt" count="9"/>
      <line num="1183" type="stmt" count="9"/>
      <line num="1184" type="stmt" count="2"/>
      <line num="1185" type="stmt" count="2"/>
      <line num="1186" type="stmt" count="2"/>
      <line num="1190" type="stmt" count="9"/>
      <line num="1191" type="stmt" count="2"/>
      <line num="1193" type="stmt" count="7"/>
      <line num="1196" type="stmt" count="9"/>
      <line num="1198" type="stmt" count="9"/>
      <line num="1199" type="stmt" count="9"/>
      <line num="1200" type="stmt" count="9"/>
      <line num="1202" type="stmt" count="1"/>
      <line num="1204" type="stmt" count="8"/>
      <line num="1213" type="method" name="fixListSize" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="1214" type="stmt" count="0"/>
      <line num="1215" type="stmt" count="0"/>
      <line num="1216" type="stmt" count="0"/>
      <line num="1217" type="stmt" count="0"/>
      <line num="1218" type="stmt" count="0"/>
      <line num="1219" type="stmt" count="0"/>
      <line num="1220" type="stmt" count="0"/>
      <line num="1221" type="stmt" count="0"/>
      <line num="1222" type="stmt" count="0"/>
      <line num="1223" type="stmt" count="0"/>
      <line num="1226" type="stmt" count="0"/>
      <line num="1227" type="stmt" count="0"/>
      <line num="1228" type="stmt" count="0"/>
      <line num="1229" type="stmt" count="0"/>
      <line num="1230" type="stmt" count="0"/>
      <line num="1231" type="stmt" count="0"/>
      <line num="1232" type="stmt" count="0"/>
      <line num="1233" type="stmt" count="0"/>
      <line num="1234" type="stmt" count="0"/>
      <line num="1235" type="stmt" count="0"/>
      <line num="1236" type="stmt" count="0"/>
      <line num="1237" type="stmt" count="0"/>
      <line num="1238" type="stmt" count="0"/>
      <line num="1239" type="stmt" count="0"/>
      <line num="1242" type="stmt" count="0"/>
      <line num="1243" type="stmt" count="0"/>
      <line num="1256" type="method" name="migrateNormalizeEntryTitles" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="1262" type="stmt" count="0"/>
      <line num="1263" type="stmt" count="0"/>
      <line num="1272" type="method" name="getListFields" visibility="private" complexity="1" crap="1" count="53"/>
      <line num="1273" type="stmt" count="53"/>
      <line num="1274" type="stmt" count="53"/>
      <line num="1276" type="stmt" count="53"/>
      <line num="1277" type="stmt" count="53"/>
      <line num="1278" type="stmt" count="53"/>
      <line num="1279" type="stmt" count="53"/>
      <line num="1280" type="stmt" count="53"/>
      <line num="1281" type="stmt" count="53"/>
      <line num="1282" type="stmt" count="53"/>
      <line num="1283" type="stmt" count="53"/>
      <line num="1292" type="method" name="getAliasedListFields" visibility="private" complexity="1" crap="1" count="9"/>
      <line num="1293" type="stmt" count="9"/>
      <line num="1294" type="stmt" count="9"/>
      <line num="1295" type="stmt" count="9"/>
      <line num="1296" type="stmt" count="9"/>
      <line num="1297" type="stmt" count="9"/>
      <line num="1298" type="stmt" count="9"/>
      <line num="1299" type="stmt" count="9"/>
      <line num="1300" type="stmt" count="9"/>
      <line num="1301" type="stmt" count="9"/>
      <line num="1302" type="stmt" count="9"/>
      <line num="1310" type="method" name="getListEntryFields" visibility="private" complexity="1" crap="1" count="29"/>
      <line num="1311" type="stmt" count="29"/>
      <line num="1312" type="stmt" count="29"/>
      <line num="1313" type="stmt" count="29"/>
      <line num="1316" type="stmt" count="29"/>
      <line num="1317" type="stmt" count="29"/>
      <line num="1318" type="stmt" count="29"/>
      <line num="1319" type="stmt" count="29"/>
      <line num="1320" type="stmt" count="29"/>
      <line num="1321" type="stmt" count="29"/>
      <line num="1335" type="method" name="getAliasedListEntryFields" visibility="private" complexity="1" crap="1" count="10"/>
      <line num="1336" type="stmt" count="10"/>
      <line num="1337" type="stmt" count="10"/>
      <line num="1338" type="stmt" count="10"/>
      <line num="1339" type="stmt" count="10"/>
      <line num="1340" type="stmt" count="10"/>
      <line num="1341" type="stmt" count="10"/>
      <line num="1342" type="stmt" count="10"/>
      <line num="1343" type="stmt" count="10"/>
      <line num="1344" type="stmt" count="10"/>
      <line num="1351" type="method" name="assertUser" visibility="private" complexity="2" crap="2" count="79"/>
      <line num="1352" type="stmt" count="79"/>
      <line num="1353" type="stmt" count="12"/>
      <line num="1365" type="method" name="assertFieldLength" visibility="public" complexity="3" crap="3.07" count="20"/>
      <line num="1366" type="stmt" count="20"/>
      <line num="1367" type="stmt" count="0"/>
      <line num="1369" type="stmt" count="20"/>
      <line num="1370" type="stmt" count="1"/>
      <line num="1371" type="stmt" count="1"/>
      <line num="1379" type="method" name="getUserListIds" visibility="private" complexity="1" crap="1" count="10"/>
      <line num="1380" type="stmt" count="10"/>
      <line num="1381" type="stmt" count="10"/>
      <line num="1382" type="stmt" count="10"/>
      <line num="1383" type="stmt" count="10"/>
      <line num="1384" type="stmt" count="10"/>
      <line num="1385" type="stmt" count="10"/>
      <line num="1394" type="method" name="parsePaginationCursor" visibility="private" complexity="6" crap="6.07" count="11"/>
      <line num="1395" type="stmt" count="11"/>
      <line num="1396" type="stmt" count="0"/>
      <line num="1398" type="stmt" count="11"/>
      <line num="1399" type="stmt" count="11"/>
      <line num="1400" type="stmt" count="5"/>
      <line num="1401" type="stmt" count="6"/>
      <line num="1402" type="stmt" count="11"/>
      <line num="1403" type="stmt" count="11"/>
      <line num="1427" type="method" name="getDeduplicatedEntryJoinConditions" visibility="private" complexity="3" crap="3" count="10"/>
      <line num="1432" type="stmt" count="10"/>
      <line num="1433" type="stmt" count="10"/>
      <line num="1434" type="stmt" count="6"/>
      <line num="1436" type="stmt" count="4"/>
      <line num="1437" type="stmt" count="4"/>
      <line num="1438" type="stmt" count="4"/>
      <line num="1439" type="stmt" count="4"/>
      <line num="1440" type="stmt" count="4"/>
      <line num="1441" type="stmt" count="4"/>
      <line num="1442" type="stmt" count="4"/>
      <line num="1445" type="stmt" count="10"/>
      <line num="1446" type="stmt" count="10"/>
      <line num="1447" type="stmt" count="10"/>
      <line num="1448" type="stmt" count="10"/>
      <line num="1449" type="stmt" count="10"/>
      <line num="1450" type="stmt" count="10"/>
      <line num="1451" type="stmt" count="10"/>
      <line num="1452" type="stmt" count="10"/>
      <line num="1466" type="method" name="processSort" visibility="private" complexity="12" crap="12.04" count="40"/>
      <line num="1474" type="stmt" count="40"/>
      <line num="1475" type="stmt" count="0"/>
      <line num="1477" type="stmt" count="40"/>
      <line num="1478" type="stmt" count="0"/>
      <line num="1481" type="stmt" count="40"/>
      <line num="1482" type="stmt" count="40"/>
      <line num="1483" type="stmt" count="14"/>
      <line num="1484" type="stmt" count="14"/>
      <line num="1486" type="stmt" count="26"/>
      <line num="1487" type="stmt" count="26"/>
      <line num="1489" type="stmt" count="40"/>
      <line num="1490" type="stmt" count="40"/>
      <line num="1491" type="stmt" count="40"/>
      <line num="1492" type="stmt" count="40"/>
      <line num="1493" type="stmt" count="40"/>
      <line num="1494" type="stmt" count="40"/>
      <line num="1496" type="stmt" count="40"/>
      <line num="1497" type="stmt" count="34"/>
      <line num="1500" type="stmt" count="40"/>
      <line num="1501" type="stmt" count="11"/>
      <line num="1502" type="stmt" count="11"/>
      <line num="1503" type="stmt" count="11"/>
      <line num="1504" type="stmt" count="11"/>
      <line num="1505" type="stmt" count="11"/>
      <line num="1507" type="stmt" count="11"/>
      <line num="1508" type="stmt" count="1"/>
      <line num="1510" type="stmt" count="10"/>
      <line num="1511" type="stmt" count="10"/>
      <line num="1512" type="stmt" count="10"/>
      <line num="1513" type="stmt" count="10"/>
      <line num="1515" type="stmt" count="11"/>
      <line num="1519" type="stmt" count="40"/>
      <line num="1528" type="method" name="getListCount" visibility="private" complexity="2" crap="2.00" count="1"/>
      <line num="1529" type="stmt" count="1"/>
      <line num="1530" type="stmt" count="1"/>
      <line num="1531" type="stmt" count="1"/>
      <line num="1533" type="stmt" count="0"/>
      <line num="1535" type="stmt" count="1"/>
      <line num="1536" type="stmt" count="1"/>
      <line num="1537" type="stmt" count="1"/>
      <line num="1538" type="stmt" count="1"/>
      <line num="1539" type="stmt" count="1"/>
      <line num="1540" type="stmt" count="1"/>
      <line num="1548" type="method" name="getProjectId" visibility="private" complexity="4" crap="4.02" count="25"/>
      <line num="1549" type="stmt" count="25"/>
      <line num="1553" type="stmt" count="5"/>
      <line num="1556" type="stmt" count="25"/>
      <line num="1557" type="stmt" count="25"/>
      <line num="1558" type="stmt" count="24"/>
      <line num="1561" type="stmt" count="3"/>
      <line num="1562" type="stmt" count="3"/>
      <line num="1563" type="stmt" count="3"/>
      <line num="1566" type="stmt" count="0"/>
      <line num="1575" type="method" name="getProjectIdByProject" visibility="private" complexity="3" crap="3" count="25"/>
      <line num="1576" type="stmt" count="25"/>
      <line num="1577" type="stmt" count="10"/>
      <line num="1579" type="stmt" count="25"/>
      <line num="1580" type="stmt" count="25"/>
      <line num="1581" type="stmt" count="25"/>
      <line num="1582" type="stmt" count="25"/>
      <line num="1583" type="stmt" count="25"/>
      <line num="1584" type="stmt" count="25"/>
      <line num="1587" type="stmt" count="3"/>
      <line num="1589" type="stmt" count="24"/>
      <line num="1590" type="stmt" count="24"/>
      <line num="1591" type="stmt" count="24"/>
      <line num="1599" type="method" name="getProjectIds" visibility="private" complexity="3" crap="3" count="26"/>
      <line num="1600" type="stmt" count="26"/>
      <line num="1601" type="stmt" count="26"/>
      <line num="1602" type="stmt" count="6"/>
      <line num="1603" type="stmt" count="6"/>
      <line num="1604" type="stmt" count="6"/>
      <line num="1605" type="stmt" count="6"/>
      <line num="1606" type="stmt" count="2"/>
      <line num="1607" type="stmt" count="2"/>
      <line num="1609" type="stmt" count="5"/>
      <line num="1611" type="stmt" count="25"/>
      <line num="1625" type="method" name="getPageTitlesForLookup" visibility="private" complexity="3" crap="3" count="12"/>
      <line num="1626" type="stmt" count="12"/>
      <line num="1627" type="stmt" count="12"/>
      <line num="1628" type="stmt" count="12"/>
      <line num="1629" type="stmt" count="12"/>
      <line num="1630" type="stmt" count="12"/>
      <line num="1631" type="stmt" count="12"/>
      <line num="1632" type="stmt" count="12"/>
      <line num="1633" type="stmt" count="7"/>
      <line num="1637" type="stmt" count="5"/>
      <line num="1638" type="stmt" count="5"/>
      <line num="1639" type="stmt" count="1"/>
      <line num="1642" type="stmt" count="4"/>
      <line num="1653" type="method" name="getMatchingEntryIdsByListId" visibility="private" complexity="2" crap="2" count="3"/>
      <line num="1654" type="stmt" count="3"/>
      <line num="1655" type="stmt" count="3"/>
      <line num="1656" type="stmt" count="3"/>
      <line num="1657" type="stmt" count="3"/>
      <line num="1658" type="stmt" count="3"/>
      <line num="1659" type="stmt" count="3"/>
      <line num="1660" type="stmt" count="3"/>
      <line num="1661" type="stmt" count="3"/>
      <line num="1662" type="stmt" count="3"/>
      <line num="1663" type="stmt" count="3"/>
      <line num="1664" type="stmt" count="3"/>
      <line num="1665" type="stmt" count="3"/>
      <line num="1667" type="stmt" count="3"/>
      <line num="1668" type="stmt" count="3"/>
      <line num="1669" type="stmt" count="3"/>
      <line num="1672" type="stmt" count="3"/>
      <line num="1683" type="method" name="getEntryCount" visibility="private" complexity="2" crap="2.00" count="1"/>
      <line num="1684" type="stmt" count="1"/>
      <line num="1685" type="stmt" count="1"/>
      <line num="1686" type="stmt" count="1"/>
      <line num="1688" type="stmt" count="0"/>
      <line num="1690" type="stmt" count="1"/>
      <line num="1691" type="stmt" count="1"/>
      <line num="1692" type="stmt" count="1"/>
      <line num="1693" type="stmt" count="1"/>
      <line num="1694" type="stmt" count="1"/>
      <line num="1695" type="stmt" count="1"/>
      <line num="1705" type="method" name="initializeProjectIfNeeded" visibility="public" complexity="3" crap="3.01" count="1"/>
      <line num="1706" type="stmt" count="1"/>
      <line num="1707" type="stmt" count="1"/>
      <line num="1710" type="stmt" count="1"/>
      <line num="1711" type="stmt" count="1"/>
      <line num="1712" type="stmt" count="0"/>
      <line num="1715" type="stmt" count="1"/>
      <line num="1716" type="stmt" count="1"/>
      <line num="1717" type="stmt" count="1"/>
      <line num="1718" type="stmt" count="1"/>
      <line num="1719" type="stmt" count="1"/>
      <line num="1720" type="stmt" count="1"/>
      <line num="1722" type="stmt" count="1"/>
      <line num="1730" type="method" name="hasProjects" visibility="public" complexity="1" crap="1" count="50"/>
      <line num="1731" type="stmt" count="50"/>
      <line num="1732" type="stmt" count="50"/>
      <line num="1733" type="stmt" count="50"/>
      <line num="1734" type="stmt" count="50"/>
      <line num="1736" type="stmt" count="50"/>
      <line num="1742" type="method" name="getLocalProject" visibility="private" complexity="1" crap="1" count="21"/>
      <line num="1743" type="stmt" count="21"/>
      <metrics loc="1746" ncloc="1296" classes="1" methods="44" coveredmethods="21" conditionals="0" coveredconditionals="0" statements="865" coveredstatements="781" elements="909" coveredelements="802"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/ReadingListRepositoryException.php">
      <class name="MediaWiki\Extension\ReadingLists\ReadingListRepositoryException" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="6" coveredelements="6"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="23" type="stmt" count="28"/>
      <line num="24" type="stmt" count="28"/>
      <line num="25" type="stmt" count="28"/>
      <line num="28" type="method" name="getMessageObject" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="29" type="stmt" count="28"/>
      <metrics loc="33" ncloc="24" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="6" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/ReadingListRepositoryFactory.php">
      <class name="MediaWiki\Extension\ReadingLists\ReadingListRepositoryFactory" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="12" coveredelements="0"/>
      </class>
      <line num="11" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="15" type="stmt" count="0"/>
      <line num="21" type="method" name="create" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="28" type="method" name="getInstanceForUser" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <metrics loc="35" ncloc="31" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="12" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsChangesSinceHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsChangesSinceHandler" namespace="global">
        <metrics complexity="21" methods="8" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="77" coveredstatements="69" elements="85" coveredelements="74"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="13"/>
      <line num="28" type="stmt" count="13"/>
      <line num="29" type="stmt" count="13"/>
      <line num="35" type="method" name="execute" visibility="public" complexity="2" crap="2.50" count="8"/>
      <line num="36" type="stmt" count="8"/>
      <line num="37" type="stmt" count="8"/>
      <line num="38" type="stmt" count="8"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="45" type="stmt" count="8"/>
      <line num="55" type="method" name="getListsData" visibility="protected" complexity="4" crap="4" count="6"/>
      <line num="57" type="stmt" count="6"/>
      <line num="58" type="stmt" count="6"/>
      <line num="60" type="stmt" count="6"/>
      <line num="61" type="stmt" count="6"/>
      <line num="62" type="stmt" count="6"/>
      <line num="65" type="stmt" count="6"/>
      <line num="66" type="stmt" count="6"/>
      <line num="67" type="stmt" count="6"/>
      <line num="69" type="stmt" count="6"/>
      <line num="70" type="stmt" count="6"/>
      <line num="71" type="stmt" count="6"/>
      <line num="73" type="stmt" count="6"/>
      <line num="74" type="stmt" count="6"/>
      <line num="77" type="stmt" count="5"/>
      <line num="78" type="stmt" count="5"/>
      <line num="80" type="stmt" count="6"/>
      <line num="83" type="stmt" count="6"/>
      <line num="85" type="stmt" count="6"/>
      <line num="86" type="stmt" count="6"/>
      <line num="87" type="stmt" count="5"/>
      <line num="90" type="stmt" count="6"/>
      <line num="99" type="method" name="doGetLists" visibility="protected" complexity="2" crap="2.15" count="6"/>
      <line num="100" type="stmt" count="6"/>
      <line num="103" type="stmt" count="6"/>
      <line num="104" type="stmt" count="6"/>
      <line num="105" type="stmt" count="6"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="117" type="method" name="doGetEntries" visibility="private" complexity="2" crap="2.15" count="6"/>
      <line num="118" type="stmt" count="6"/>
      <line num="121" type="stmt" count="6"/>
      <line num="122" type="stmt" count="6"/>
      <line num="123" type="stmt" count="6"/>
      <line num="124" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="143" type="method" name="makeChangesSinceNext" visibility="protected" complexity="5" crap="5" count="6"/>
      <line num="144" type="stmt" count="6"/>
      <line num="145" type="stmt" count="6"/>
      <line num="146" type="stmt" count="5"/>
      <line num="147" type="stmt" count="5"/>
      <line num="148" type="stmt" count="5"/>
      <line num="150" type="stmt" count="5"/>
      <line num="151" type="stmt" count="5"/>
      <line num="153" type="stmt" count="5"/>
      <line num="155" type="stmt" count="6"/>
      <line num="170" type="method" name="decodeNext" visibility="protected" complexity="4" crap="4" count="7"/>
      <line num="171" type="stmt" count="7"/>
      <line num="172" type="stmt" count="6"/>
      <line num="175" type="stmt" count="2"/>
      <line num="176" type="stmt" count="2"/>
      <line num="180" type="stmt" count="1"/>
      <line num="181" type="stmt" count="1"/>
      <line num="182" type="stmt" count="1"/>
      <line num="184" type="stmt" count="1"/>
      <line num="185" type="stmt" count="1"/>
      <line num="187" type="stmt" count="1"/>
      <line num="193" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="13"/>
      <line num="194" type="stmt" count="13"/>
      <line num="195" type="stmt" count="13"/>
      <line num="196" type="stmt" count="13"/>
      <line num="197" type="stmt" count="13"/>
      <line num="198" type="stmt" count="13"/>
      <line num="199" type="stmt" count="13"/>
      <line num="200" type="stmt" count="13"/>
      <line num="201" type="stmt" count="13"/>
      <line num="202" type="stmt" count="13"/>
      <line num="203" type="stmt" count="13"/>
      <line num="204" type="stmt" count="13"/>
      <line num="205" type="stmt" count="13"/>
      <line num="206" type="stmt" count="13"/>
      <line num="209" type="stmt" count="13"/>
      <line num="211" type="stmt" count="13"/>
      <metrics loc="214" ncloc="151" classes="1" methods="8" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="77" coveredstatements="69" elements="85" coveredelements="74"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsCreateBatchHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsCreateBatchHandler" namespace="global">
        <metrics complexity="10" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="37" coveredstatements="0" elements="44" coveredelements="0"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="41" type="method" name="postInitSetup" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="53" type="method" name="validate" visibility="public" complexity="2" crap="6" 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="68" type="method" name="detectExtraneousBodyFields" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="75" type="method" name="execute" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="104" type="method" name="getParamSettings" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="111" type="method" name="getBodyParamSettings" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <metrics loc="122" ncloc="92" classes="1" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="37" coveredstatements="0" elements="44" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsCreateHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsCreateHandler" namespace="global">
        <metrics complexity="9" methods="7" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="39" elements="48" coveredelements="45"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="35" type="stmt" count="5"/>
      <line num="43" type="method" name="postInitSetup" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="44" type="stmt" count="5"/>
      <line num="45" type="stmt" count="5"/>
      <line num="46" type="stmt" count="5"/>
      <line num="47" type="stmt" count="5"/>
      <line num="48" type="stmt" count="5"/>
      <line num="49" type="stmt" count="5"/>
      <line num="55" type="method" name="validate" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="57" type="stmt" count="5"/>
      <line num="58" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="68" type="method" name="execute" visibility="public" complexity="2" crap="2.01" count="2"/>
      <line num="69" type="stmt" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="73" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="92" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="93" type="stmt" count="5"/>
      <line num="99" type="method" name="getBodyParamSettings" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="100" type="stmt" count="5"/>
      <line num="101" type="stmt" count="5"/>
      <line num="102" type="stmt" count="5"/>
      <line num="103" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <line num="105" type="stmt" count="5"/>
      <line num="106" type="stmt" count="5"/>
      <line num="107" type="stmt" count="5"/>
      <line num="108" type="stmt" count="5"/>
      <line num="109" type="stmt" count="5"/>
      <line num="110" type="stmt" count="5"/>
      <line num="111" type="stmt" count="5"/>
      <line num="112" type="stmt" count="5"/>
      <line num="113" type="stmt" count="5"/>
      <line num="114" type="stmt" count="5"/>
      <line num="122" type="method" name="detectExtraneousBodyFields" visibility="protected" complexity="1" crap="1" count="3"/>
      <line num="124" type="stmt" count="3"/>
      <metrics loc="126" ncloc="97" classes="1" methods="7" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="39" elements="48" coveredelements="45"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsDeleteHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsDeleteHandler" namespace="global">
        <metrics complexity="7" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="23" elements="30" coveredelements="27"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="35" type="stmt" count="3"/>
      <line num="43" type="method" name="postInitSetup" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="44" type="stmt" count="3"/>
      <line num="45" type="stmt" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <line num="47" type="stmt" count="3"/>
      <line num="48" type="stmt" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="55" type="method" name="validate" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="58" type="stmt" count="3"/>
      <line num="59" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="69" type="method" name="run" visibility="public" complexity="2" crap="2.09" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="81" type="stmt" count="1"/>
      <line num="87" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="88" type="stmt" count="3"/>
      <line num="89" type="stmt" count="3"/>
      <line num="90" type="stmt" count="3"/>
      <line num="91" type="stmt" count="3"/>
      <line num="92" type="stmt" count="3"/>
      <line num="93" type="stmt" count="3"/>
      <line num="94" type="stmt" count="3"/>
      <line num="95" type="stmt" count="3"/>
      <metrics loc="98" ncloc="75" classes="1" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="23" elements="30" coveredelements="27"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsEntriesCreateBatchHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsEntriesCreateBatchHandler" namespace="global">
        <metrics complexity="9" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="0" elements="48" coveredelements="0"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="41" type="method" name="postInitSetup" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="53" type="method" name="validate" visibility="public" complexity="2" crap="6" 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="68" type="method" name="detectExtraneousBodyFields" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="76" type="method" name="run" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="100" type="method" name="getParamSettings" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="114" type="method" name="getBodyParamSettings" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <metrics loc="125" ncloc="94" classes="1" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="0" elements="48" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsEntriesCreateHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsEntriesCreateHandler" namespace="global">
        <metrics complexity="8" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="39" coveredstatements="39" elements="46" coveredelements="46"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="33" type="stmt" count="10"/>
      <line num="41" type="method" name="postInitSetup" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="42" type="stmt" count="10"/>
      <line num="43" type="stmt" count="10"/>
      <line num="44" type="stmt" count="10"/>
      <line num="45" type="stmt" count="10"/>
      <line num="46" type="stmt" count="10"/>
      <line num="47" type="stmt" count="10"/>
      <line num="53" type="method" name="validate" visibility="public" complexity="2" crap="2" count="10"/>
      <line num="55" type="stmt" count="10"/>
      <line num="56" type="stmt" count="4"/>
      <line num="57" type="stmt" count="7"/>
      <line num="59" type="stmt" count="7"/>
      <line num="68" type="method" name="detectExtraneousBodyFields" visibility="protected" complexity="1" crap="1" count="4"/>
      <line num="70" type="stmt" count="4"/>
      <line num="76" type="method" name="run" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="77" type="stmt" count="3"/>
      <line num="79" type="stmt" count="2"/>
      <line num="80" type="stmt" count="2"/>
      <line num="81" type="stmt" count="2"/>
      <line num="83" type="stmt" count="2"/>
      <line num="84" type="stmt" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="91" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="92" type="stmt" count="10"/>
      <line num="93" type="stmt" count="10"/>
      <line num="94" type="stmt" count="10"/>
      <line num="95" type="stmt" count="10"/>
      <line num="96" type="stmt" count="10"/>
      <line num="97" type="stmt" count="10"/>
      <line num="98" type="stmt" count="10"/>
      <line num="99" type="stmt" count="10"/>
      <line num="105" type="method" name="getBodyParamSettings" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="106" type="stmt" count="6"/>
      <line num="107" type="stmt" count="6"/>
      <line num="108" type="stmt" count="6"/>
      <line num="109" type="stmt" count="6"/>
      <line num="110" type="stmt" count="6"/>
      <line num="111" type="stmt" count="6"/>
      <line num="112" type="stmt" count="6"/>
      <line num="113" type="stmt" count="6"/>
      <line num="114" type="stmt" count="6"/>
      <line num="115" type="stmt" count="6"/>
      <line num="116" type="stmt" count="6"/>
      <line num="117" type="stmt" count="6"/>
      <metrics loc="121" ncloc="91" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="39" coveredstatements="39" elements="46" coveredelements="46"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsEntriesDeleteHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsEntriesDeleteHandler" namespace="global">
        <metrics complexity="7" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="29" elements="36" coveredelements="33"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="35" type="stmt" count="9"/>
      <line num="43" type="method" name="postInitSetup" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="44" type="stmt" count="9"/>
      <line num="45" type="stmt" count="9"/>
      <line num="46" type="stmt" count="9"/>
      <line num="47" type="stmt" count="9"/>
      <line num="48" type="stmt" count="9"/>
      <line num="49" type="stmt" count="9"/>
      <line num="55" type="method" name="validate" visibility="public" complexity="2" crap="2" count="9"/>
      <line num="58" type="stmt" count="9"/>
      <line num="59" type="stmt" count="7"/>
      <line num="61" type="stmt" count="7"/>
      <line num="70" type="method" name="run" visibility="public" complexity="2" crap="2.09" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="73" type="stmt" count="1"/>
      <line num="76" type="stmt" count="1"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="81" type="stmt" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="90" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="91" type="stmt" count="9"/>
      <line num="95" type="stmt" count="9"/>
      <line num="96" type="stmt" count="9"/>
      <line num="97" type="stmt" count="9"/>
      <line num="98" type="stmt" count="9"/>
      <line num="99" type="stmt" count="9"/>
      <line num="100" type="stmt" count="9"/>
      <line num="101" type="stmt" count="9"/>
      <line num="102" type="stmt" count="9"/>
      <line num="103" type="stmt" count="9"/>
      <line num="104" type="stmt" count="9"/>
      <line num="105" type="stmt" count="9"/>
      <line num="106" type="stmt" count="9"/>
      <line num="107" type="stmt" count="9"/>
      <metrics loc="110" ncloc="83" classes="1" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="29" elements="36" coveredelements="33"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsEntriesHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsEntriesHandler" namespace="global">
        <metrics complexity="14" methods="6" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="59" coveredstatements="44" elements="65" coveredelements="48"/>
      </class>
      <line num="32" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="38" type="stmt" count="16"/>
      <line num="46" type="method" name="postInitSetup" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="47" type="stmt" count="16"/>
      <line num="48" type="stmt" count="16"/>
      <line num="49" type="stmt" count="16"/>
      <line num="50" type="stmt" count="16"/>
      <line num="51" type="stmt" count="16"/>
      <line num="52" type="stmt" count="16"/>
      <line num="58" type="method" name="validate" visibility="public" complexity="2" crap="2" count="16"/>
      <line num="60" type="stmt" count="16"/>
      <line num="61" type="stmt" count="3"/>
      <line num="63" type="stmt" count="3"/>
      <line num="71" type="method" name="run" visibility="public" complexity="4" crap="4.01" count="13"/>
      <line num="75" type="stmt" count="13"/>
      <line num="77" type="stmt" count="13"/>
      <line num="86" type="stmt" count="13"/>
      <line num="87" type="stmt" count="13"/>
      <line num="88" type="stmt" count="13"/>
      <line num="100" type="stmt" count="13"/>
      <line num="102" type="stmt" count="13"/>
      <line num="104" type="stmt" count="13"/>
      <line num="106" type="stmt" count="12"/>
      <line num="107" type="stmt" count="12"/>
      <line num="108" type="stmt" count="12"/>
      <line num="110" type="stmt" count="11"/>
      <line num="111" type="stmt" count="11"/>
      <line num="112" type="stmt" count="11"/>
      <line num="115" type="stmt" count="11"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="120" type="stmt" count="11"/>
      <line num="122" type="stmt" count="11"/>
      <line num="123" type="stmt" count="11"/>
      <line num="124" type="stmt" count="9"/>
      <line num="125" type="stmt" count="9"/>
      <line num="127" type="stmt" count="11"/>
      <line num="130" type="stmt" count="11"/>
      <line num="138" type="method" name="getResultTitle" visibility="private" complexity="5" crap="30" count="0"/>
      <line num="139" type="stmt" 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="151" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="168" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="169" type="stmt" count="16"/>
      <line num="170" type="stmt" count="16"/>
      <line num="171" type="stmt" count="16"/>
      <line num="172" type="stmt" count="16"/>
      <line num="173" type="stmt" count="16"/>
      <line num="174" type="stmt" count="16"/>
      <line num="175" type="stmt" count="16"/>
      <line num="176" type="stmt" count="16"/>
      <line num="177" type="stmt" count="16"/>
      <line num="178" type="stmt" count="16"/>
      <line num="179" type="stmt" count="16"/>
      <line num="180" type="stmt" count="16"/>
      <metrics loc="183" ncloc="130" classes="1" methods="6" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="59" coveredstatements="44" elements="65" coveredelements="48"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsHandler" namespace="global">
        <metrics complexity="18" methods="10" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="58" coveredstatements="49" elements="68" coveredelements="55"/>
      </class>
      <line num="44" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="49" type="stmt" count="14"/>
      <line num="57" type="method" name="postInitSetup" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="58" type="stmt" count="14"/>
      <line num="59" type="stmt" count="14"/>
      <line num="60" type="stmt" count="14"/>
      <line num="61" type="stmt" count="14"/>
      <line num="62" type="stmt" count="14"/>
      <line num="63" type="stmt" count="14"/>
      <line num="69" type="method" name="validate" visibility="public" complexity="2" crap="2" count="14"/>
      <line num="71" type="stmt" count="14"/>
      <line num="72" type="stmt" count="3"/>
      <line num="74" type="stmt" count="3"/>
      <line num="81" type="method" name="execute" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="82" type="stmt" count="11"/>
      <line num="91" type="method" name="getLists" visibility="protected" complexity="3" crap="3.00" count="11"/>
      <line num="92" type="stmt" count="11"/>
      <line num="94" type="stmt" count="10"/>
      <line num="95" type="stmt" count="10"/>
      <line num="96" type="stmt" count="10"/>
      <line num="99" type="stmt" count="9"/>
      <line num="102" type="stmt" count="9"/>
      <line num="107" type="stmt" count="9"/>
      <line num="113" type="stmt" count="9"/>
      <line num="114" type="stmt" count="9"/>
      <line num="115" type="stmt" count="0"/>
      <line num="117" type="stmt" count="9"/>
      <line num="118" type="stmt" count="9"/>
      <line num="121" type="stmt" count="9"/>
      <line num="130" type="method" name="getListsData" visibility="protected" complexity="3" crap="3" count="9"/>
      <line num="131" type="stmt" count="9"/>
      <line num="134" type="stmt" count="9"/>
      <line num="136" type="stmt" count="9"/>
      <line num="137" type="stmt" count="9"/>
      <line num="139" type="stmt" count="9"/>
      <line num="140" type="stmt" count="9"/>
      <line num="143" type="stmt" count="8"/>
      <line num="144" type="stmt" count="8"/>
      <line num="146" type="stmt" count="9"/>
      <line num="149" type="stmt" count="9"/>
      <line num="150" type="stmt" count="9"/>
      <line num="159" type="method" name="doGetLists" visibility="protected" complexity="2" crap="2.09" count="9"/>
      <line num="160" type="stmt" count="9"/>
      <line num="163" type="stmt" count="9"/>
      <line num="164" type="stmt" count="9"/>
      <line num="165" type="stmt" count="9"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="170" type="stmt" count="9"/>
      <line num="178" type="method" name="getResultItem" visibility="private" complexity="3" crap="6.28" count="9"/>
      <line num="179" type="stmt" count="9"/>
      <line num="180" type="stmt" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="189" type="stmt" count="9"/>
      <line num="195" type="method" name="needsWriteAccess" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="202" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="203" type="stmt" count="14"/>
      <line num="204" type="stmt" count="14"/>
      <line num="205" type="stmt" count="14"/>
      <line num="206" type="stmt" count="14"/>
      <line num="207" type="stmt" count="14"/>
      <line num="208" type="stmt" count="14"/>
      <line num="209" type="stmt" count="14"/>
      <line num="210" type="stmt" count="14"/>
      <metrics loc="213" ncloc="147" classes="1" methods="10" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="58" coveredstatements="49" elements="68" coveredelements="55"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsIdHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsIdHandler" namespace="global">
        <metrics complexity="5" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="21" elements="25" coveredelements="25"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="25" type="stmt" count="5"/>
      <line num="31" type="method" name="execute" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="33" type="stmt" count="3"/>
      <line num="34" type="stmt" count="3"/>
      <line num="35" type="stmt" count="3"/>
      <line num="36" type="stmt" count="3"/>
      <line num="37" type="stmt" count="3"/>
      <line num="40" type="stmt" count="3"/>
      <line num="41" type="stmt" count="1"/>
      <line num="50" type="method" name="doGetLists" visibility="protected" complexity="2" crap="2" count="2"/>
      <line num="51" type="stmt" count="2"/>
      <line num="55" type="stmt" count="2"/>
      <line num="56" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="66" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="67" type="stmt" count="5"/>
      <line num="68" type="stmt" count="5"/>
      <line num="69" type="stmt" count="5"/>
      <line num="70" type="stmt" count="5"/>
      <line num="71" type="stmt" count="5"/>
      <line num="72" type="stmt" count="5"/>
      <line num="73" type="stmt" count="5"/>
      <line num="74" type="stmt" count="5"/>
      <metrics loc="77" ncloc="58" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="21" elements="25" coveredelements="25"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsPagesHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsPagesHandler" namespace="global">
        <metrics complexity="8" methods="6" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="40" elements="48" coveredelements="45"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="28" type="stmt" count="8"/>
      <line num="34" type="method" name="execute" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="36" type="stmt" count="5"/>
      <line num="37" type="stmt" count="5"/>
      <line num="38" type="stmt" count="5"/>
      <line num="40" type="stmt" count="5"/>
      <line num="49" type="method" name="doGetLists" visibility="protected" complexity="2" crap="2.15" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="70" type="method" name="makeNext" visibility="protected" complexity="1" crap="1" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="87" type="method" name="decodeNext" visibility="protected" complexity="2" crap="2" count="4"/>
      <line num="88" type="stmt" count="4"/>
      <line num="89" type="stmt" count="3"/>
      <line num="92" type="stmt" count="2"/>
      <line num="93" type="stmt" count="1"/>
      <line num="99" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="100" type="stmt" count="8"/>
      <line num="101" type="stmt" count="8"/>
      <line num="102" type="stmt" count="8"/>
      <line num="103" type="stmt" count="8"/>
      <line num="104" type="stmt" count="8"/>
      <line num="105" type="stmt" count="8"/>
      <line num="109" type="stmt" count="8"/>
      <line num="110" type="stmt" count="8"/>
      <line num="111" type="stmt" count="8"/>
      <line num="112" type="stmt" count="8"/>
      <line num="113" type="stmt" count="8"/>
      <line num="114" type="stmt" count="8"/>
      <line num="115" type="stmt" count="8"/>
      <line num="116" type="stmt" count="8"/>
      <line num="117" type="stmt" count="8"/>
      <line num="118" type="stmt" count="8"/>
      <line num="119" type="stmt" count="8"/>
      <line num="120" type="stmt" count="8"/>
      <line num="121" type="stmt" count="8"/>
      <line num="122" type="stmt" count="8"/>
      <line num="123" type="stmt" count="8"/>
      <line num="124" type="stmt" count="8"/>
      <line num="125" type="stmt" count="8"/>
      <line num="126" type="stmt" count="8"/>
      <line num="127" type="stmt" count="8"/>
      <line num="128" type="stmt" count="8"/>
      <metrics loc="131" ncloc="89" classes="1" methods="6" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="40" elements="48" coveredelements="45"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ListsUpdateHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ListsUpdateHandler" namespace="global">
        <metrics complexity="8" methods="6" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="43" coveredstatements="41" elements="49" coveredelements="46"/>
      </class>
      <line num="31" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="36" type="stmt" count="5"/>
      <line num="44" type="method" name="postInitSetup" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="45" type="stmt" count="5"/>
      <line num="46" type="stmt" count="5"/>
      <line num="47" type="stmt" count="5"/>
      <line num="48" type="stmt" count="5"/>
      <line num="49" type="stmt" count="5"/>
      <line num="50" type="stmt" count="5"/>
      <line num="56" type="method" name="validate" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="58" type="stmt" count="5"/>
      <line num="59" type="stmt" count="4"/>
      <line num="60" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="70" type="method" name="run" visibility="public" complexity="2" crap="2.03" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="73" type="stmt" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <line num="76" type="stmt" count="1"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="90" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="91" type="stmt" count="5"/>
      <line num="92" type="stmt" count="5"/>
      <line num="93" type="stmt" count="5"/>
      <line num="94" type="stmt" count="5"/>
      <line num="95" type="stmt" count="5"/>
      <line num="96" type="stmt" count="5"/>
      <line num="97" type="stmt" count="5"/>
      <line num="98" type="stmt" count="5"/>
      <line num="104" type="method" name="getBodyParamSettings" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="105" type="stmt" count="4"/>
      <line num="106" type="stmt" count="4"/>
      <line num="107" type="stmt" count="4"/>
      <line num="108" type="stmt" count="4"/>
      <line num="109" type="stmt" count="4"/>
      <line num="110" type="stmt" count="4"/>
      <line num="111" type="stmt" count="4"/>
      <line num="112" type="stmt" count="4"/>
      <line num="113" type="stmt" count="4"/>
      <line num="114" type="stmt" count="4"/>
      <line num="115" type="stmt" count="4"/>
      <line num="116" type="stmt" count="4"/>
      <line num="117" type="stmt" count="4"/>
      <line num="118" type="stmt" count="4"/>
      <metrics loc="122" ncloc="98" classes="1" methods="6" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="43" coveredstatements="41" elements="49" coveredelements="46"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ReadingListsHandlerTrait.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ReadingListsHandlerTrait" namespace="global">
        <metrics complexity="35" methods="12" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="125" coveredstatements="109" elements="137" coveredelements="114"/>
      </class>
      <line num="55" type="method" name="createRepository" visibility="private" complexity="1" crap="1" count="85"/>
      <line num="61" type="stmt" count="85"/>
      <line num="62" type="stmt" count="85"/>
      <line num="67" type="stmt" count="85"/>
      <line num="69" type="stmt" count="85"/>
      <line num="70" type="stmt" count="85"/>
      <line num="71" type="stmt" count="85"/>
      <line num="72" type="stmt" count="85"/>
      <line num="73" type="stmt" count="85"/>
      <line num="74" type="stmt" count="85"/>
      <line num="75" type="stmt" count="85"/>
      <line num="81" type="method" name="getRepository" visibility="protected" complexity="1" crap="1" count="65"/>
      <line num="82" type="stmt" count="65"/>
      <line num="91" type="method" name="getListFromRow" visibility="private" complexity="3" crap="3.00" count="12"/>
      <line num="94" type="stmt" count="12"/>
      <line num="95" type="stmt" count="12"/>
      <line num="96" type="stmt" count="12"/>
      <line num="97" type="stmt" count="12"/>
      <line num="98" type="stmt" count="12"/>
      <line num="99" type="stmt" count="12"/>
      <line num="100" type="stmt" count="12"/>
      <line num="101" type="stmt" count="12"/>
      <line num="103" type="stmt" count="12"/>
      <line num="104" type="stmt" count="2"/>
      <line num="106" type="stmt" count="12"/>
      <line num="107" type="stmt" count="0"/>
      <line num="109" type="stmt" count="12"/>
      <line num="118" type="method" name="getListEntryFromRow" visibility="protected" complexity="3" crap="3.00" count="13"/>
      <line num="119" type="stmt" count="13"/>
      <line num="120" type="stmt" count="13"/>
      <line num="121" type="stmt" count="13"/>
      <line num="122" type="stmt" count="13"/>
      <line num="123" type="stmt" count="13"/>
      <line num="124" type="stmt" count="13"/>
      <line num="125" type="stmt" count="13"/>
      <line num="126" type="stmt" count="13"/>
      <line num="128" type="stmt" count="13"/>
      <line num="129" type="stmt" count="2"/>
      <line num="131" type="stmt" count="13"/>
      <line num="132" type="stmt" count="0"/>
      <line num="134" type="stmt" count="13"/>
      <line num="144" type="method" name="makeNext" visibility="protected" complexity="2" crap="2" count="17"/>
      <line num="145" type="stmt" count="17"/>
      <line num="146" type="stmt" count="11"/>
      <line num="148" type="stmt" count="6"/>
      <line num="150" type="stmt" count="17"/>
      <line num="165" type="method" name="decodeNext" visibility="protected" complexity="3" crap="3.14" count="22"/>
      <line num="166" type="stmt" count="22"/>
      <line num="167" type="stmt" count="20"/>
      <line num="173" type="stmt" count="5"/>
      <line num="174" type="stmt" count="5"/>
      <line num="175" type="stmt" count="3"/>
      <line num="176" type="stmt" count="3"/>
      <line num="177" type="stmt" count="3"/>
      <line num="178" type="stmt" count="3"/>
      <line num="179" type="stmt" count="3"/>
      <line num="180" type="stmt" count="3"/>
      <line num="181" type="stmt" count="3"/>
      <line num="182" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="185" type="stmt" count="0"/>
      <line num="187" type="stmt" count="3"/>
      <line num="195" type="method" name="getBatchOps" visibility="protected" complexity="11" crap="12.13" count="4"/>
      <line num="199" type="stmt" count="4"/>
      <line num="202" type="stmt" count="4"/>
      <line num="205" type="stmt" count="2"/>
      <line num="206" type="stmt" count="0"/>
      <line num="207" type="stmt" count="0"/>
      <line num="209" type="stmt" count="2"/>
      <line num="212" type="stmt" count="2"/>
      <line num="213" type="stmt" count="2"/>
      <line num="214" type="stmt" count="2"/>
      <line num="215" type="stmt" count="0"/>
      <line num="219" type="stmt" count="2"/>
      <line num="220" type="stmt" count="2"/>
      <line num="221" type="stmt" count="2"/>
      <line num="223" type="stmt" count="0"/>
      <line num="226" type="stmt" count="2"/>
      <line num="227" type="stmt" count="2"/>
      <line num="228" type="stmt" count="2"/>
      <line num="230" type="stmt" count="2"/>
      <line num="232" type="stmt" count="2"/>
      <line num="241" type="method" name="requireAtLeastOneBatchParameter" visibility="protected" complexity="3" crap="3.43" count="2"/>
      <line num="242" type="stmt" count="2"/>
      <line num="243" type="stmt" count="2"/>
      <line num="244" type="stmt" count="2"/>
      <line num="245" type="stmt" count="2"/>
      <line num="246" type="stmt" count="2"/>
      <line num="247" type="stmt" count="2"/>
      <line num="249" type="stmt" count="2"/>
      <line num="250" type="stmt" count="0"/>
      <line num="251" type="stmt" count="0"/>
      <line num="252" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="261" type="method" name="getSortParamSettings" visibility="public" complexity="1" crap="1" count="30"/>
      <line num="262" type="stmt" count="30"/>
      <line num="263" type="stmt" count="30"/>
      <line num="264" type="stmt" count="30"/>
      <line num="265" type="stmt" count="30"/>
      <line num="266" type="stmt" count="30"/>
      <line num="267" type="stmt" count="30"/>
      <line num="268" type="stmt" count="30"/>
      <line num="269" type="stmt" count="30"/>
      <line num="270" type="stmt" count="30"/>
      <line num="271" type="stmt" count="30"/>
      <line num="272" type="stmt" count="30"/>
      <line num="273" type="stmt" count="30"/>
      <line num="274" type="stmt" count="30"/>
      <line num="275" type="stmt" count="30"/>
      <line num="276" type="stmt" count="30"/>
      <line num="277" type="stmt" count="30"/>
      <line num="278" type="stmt" count="30"/>
      <line num="279" type="stmt" count="30"/>
      <line num="280" type="stmt" count="30"/>
      <line num="281" type="stmt" count="30"/>
      <line num="282" type="stmt" count="30"/>
      <line num="283" type="stmt" count="30"/>
      <line num="289" type="method" name="invalidateBookmarkBloomFilter" visibility="protected" complexity="1" crap="1" count="4"/>
      <line num="291" type="stmt" count="4"/>
      <line num="292" type="stmt" count="4"/>
      <line num="293" type="stmt" count="4"/>
      <line num="299" type="method" name="checkAuthority" visibility="private" complexity="3" crap="3.14" count="70"/>
      <line num="300" type="stmt" count="70"/>
      <line num="301" type="stmt" count="11"/>
      <line num="304" type="stmt" count="66"/>
      <line num="305" type="stmt" count="0"/>
      <line num="316" type="method" name="createListEntry" visibility="public" complexity="3" crap="3.01" count="3"/>
      <line num="326" type="stmt" count="3"/>
      <line num="327" type="stmt" count="0"/>
      <line num="331" type="stmt" count="3"/>
      <line num="332" type="stmt" count="1"/>
      <line num="333" type="stmt" count="1"/>
      <line num="336" type="stmt" count="2"/>
      <line num="337" type="stmt" count="2"/>
      <line num="338" type="stmt" count="2"/>
      <line num="339" type="stmt" count="2"/>
      <metrics loc="342" ncloc="239" classes="1" methods="12" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="125" coveredstatements="109" elements="137" coveredelements="114"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/ReadingListsTokenAwareHandlerTrait.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\ReadingListsTokenAwareHandlerTrait" namespace="global">
        <metrics complexity="6" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="19" elements="22" coveredelements="20"/>
      </class>
      <line num="38" type="method" name="getReadingListsTokenParamDefinition" visibility="public" complexity="1" crap="1" count="58"/>
      <line num="39" type="stmt" count="58"/>
      <line num="40" type="stmt" count="58"/>
      <line num="41" type="stmt" count="58"/>
      <line num="42" type="stmt" count="58"/>
      <line num="43" type="stmt" count="58"/>
      <line num="44" type="stmt" count="58"/>
      <line num="45" type="stmt" count="58"/>
      <line num="46" type="stmt" count="58"/>
      <line num="47" type="stmt" count="58"/>
      <line num="60" type="method" name="getToken" visibility="protected" complexity="5" crap="5.02" count="15"/>
      <line num="61" type="stmt" count="15"/>
      <line num="64" type="stmt" count="0"/>
      <line num="67" type="stmt" count="15"/>
      <line num="68" type="stmt" count="4"/>
      <line num="71" type="stmt" count="11"/>
      <line num="72" type="stmt" count="11"/>
      <line num="73" type="stmt" count="2"/>
      <line num="76" type="stmt" count="9"/>
      <line num="77" type="stmt" count="9"/>
      <line num="78" type="stmt" count="8"/>
      <line num="81" type="stmt" count="1"/>
      <metrics loc="84" ncloc="48" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="19" elements="22" coveredelements="20"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/RestUtilTrait.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\RestUtilTrait" namespace="global">
        <metrics complexity="14" methods="6" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="71" coveredstatements="6" elements="77" coveredelements="8"/>
      </class>
      <line num="29" type="method" name="die" visibility="protected" complexity="2" crap="2" count="4"/>
      <line num="30" type="stmt" count="4"/>
      <line num="31" type="stmt" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="36" type="stmt" count="4"/>
      <line num="47" type="method" name="dieIf" visibility="protected" complexity="2" crap="2" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="59" type="method" name="requireMaxOneParameter" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="87" type="method" name="requireAtLeastOneParameter" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" 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="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="117" type="method" name="requireOnlyOneParameter" visibility="protected" complexity="3" crap="12" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" 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"/>
      <line num="132" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" 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="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="160" type="method" name="parameterNotEmpty" visibility="protected" complexity="3" crap="12" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <metrics loc="164" ncloc="115" classes="1" methods="6" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="71" coveredstatements="6" elements="77" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/SetupHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\SetupHandler" namespace="global">
        <metrics complexity="8" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="24" coveredelements="24"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="31" type="stmt" count="5"/>
      <line num="39" type="method" name="postInitSetup" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="40" type="stmt" count="5"/>
      <line num="41" type="stmt" count="5"/>
      <line num="42" type="stmt" count="5"/>
      <line num="43" type="stmt" count="5"/>
      <line num="44" type="stmt" count="5"/>
      <line num="45" type="stmt" count="5"/>
      <line num="51" type="method" name="validate" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="53" type="stmt" count="5"/>
      <line num="54" type="stmt" count="5"/>
      <line num="55" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="64" type="method" name="execute" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="65" type="stmt" count="4"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="77" type="stmt" count="3"/>
      <line num="83" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="84" type="stmt" count="5"/>
      <line num="90" type="method" name="getBodyParamSettings" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="91" type="stmt" count="5"/>
      <metrics loc="94" ncloc="69" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="24" coveredelements="24"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Rest/TeardownHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\Rest\TeardownHandler" namespace="global">
        <metrics complexity="8" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="24" coveredelements="24"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="31" type="stmt" count="4"/>
      <line num="39" type="method" name="postInitSetup" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="40" type="stmt" count="4"/>
      <line num="41" type="stmt" count="4"/>
      <line num="42" type="stmt" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="51" type="method" name="validate" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="53" type="stmt" count="4"/>
      <line num="54" type="stmt" count="4"/>
      <line num="55" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="64" type="method" name="execute" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="65" type="stmt" count="3"/>
      <line num="68" type="stmt" count="2"/>
      <line num="69" type="stmt" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="80" type="method" name="getParamSettings" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="81" type="stmt" count="4"/>
      <line num="87" type="method" name="getBodyParamSettings" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="88" type="stmt" count="4"/>
      <metrics loc="91" ncloc="69" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="24" coveredelements="24"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/ReverseInterwikiLookup.php">
      <class name="MediaWiki\Extension\ReadingLists\ReverseInterwikiLookup" namespace="global">
        <metrics complexity="13" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="31" elements="35" coveredelements="35"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="26" type="stmt" count="10"/>
      <line num="32" type="method" name="lookup" visibility="public" complexity="5" crap="5" count="10"/>
      <line num="33" type="stmt" count="10"/>
      <line num="34" type="stmt" count="10"/>
      <line num="36" type="stmt" count="10"/>
      <line num="37" type="stmt" count="2"/>
      <line num="40" type="stmt" count="8"/>
      <line num="41" type="stmt" count="3"/>
      <line num="44" type="stmt" count="5"/>
      <line num="45" type="stmt" count="5"/>
      <line num="46" type="stmt" count="5"/>
      <line num="47" type="stmt" count="1"/>
      <line num="49" type="stmt" count="4"/>
      <line num="50" type="stmt" count="4"/>
      <line num="51" type="stmt" count="4"/>
      <line num="52" type="stmt" count="4"/>
      <line num="53" type="stmt" count="4"/>
      <line num="54" type="stmt" count="1"/>
      <line num="57" type="stmt" count="3"/>
      <line num="64" type="method" name="getPrefixTable" visibility="protected" complexity="5" crap="5" count="10"/>
      <line num="65" type="stmt" count="10"/>
      <line num="66" type="stmt" count="10"/>
      <line num="67" type="stmt" count="10"/>
      <line num="68" type="stmt" count="10"/>
      <line num="69" type="stmt" count="9"/>
      <line num="70" type="stmt" count="9"/>
      <line num="71" type="stmt" count="9"/>
      <line num="73" type="stmt" count="9"/>
      <line num="76" type="stmt" count="10"/>
      <line num="82" type="method" name="getDomain" visibility="protected" complexity="2" crap="2" count="10"/>
      <line num="83" type="stmt" count="10"/>
      <line num="84" type="stmt" count="10"/>
      <line num="86" type="stmt" count="10"/>
      <line num="88" type="stmt" count="10"/>
      <metrics loc="92" ncloc="76" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="31" elements="35" coveredelements="35"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/ReverseInterwikiLookupInterface.php">
      <metrics loc="27" ncloc="8" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/SchemaHookHandler.php">
      <class name="MediaWiki\Extension\ReadingLists\SchemaHookHandler" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="11" coveredelements="0"/>
      </class>
      <line num="16" type="method" name="onLoadExtensionSchemaUpdates" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="17" type="stmt" count="0"/>
      <line num="18" type="stmt" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="29" type="method" name="populateProjectsTable" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <metrics loc="35" ncloc="26" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="11" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Service/BookmarkBloomFilterCache.php">
      <class name="MediaWiki\Extension\ReadingLists\Service\BookmarkBloomFilterCache" namespace="global">
        <metrics complexity="35" methods="12" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="116" coveredstatements="109" elements="128" coveredelements="120"/>
      </class>
      <line num="42" type="method" name="__construct" visibility="public" complexity="2" crap="2" count="16"/>
      <line num="49" type="stmt" count="16"/>
      <line num="50" type="stmt" count="1"/>
      <line num="65" type="method" name="getCachedBloomFilterStatus" visibility="public" complexity="5" crap="5" count="13"/>
      <line num="66" type="stmt" count="13"/>
      <line num="67" type="stmt" count="13"/>
      <line num="68" type="stmt" count="13"/>
      <line num="71" type="stmt" count="11"/>
      <line num="72" type="stmt" count="11"/>
      <line num="75" type="stmt" count="11"/>
      <line num="76" type="stmt" count="11"/>
      <line num="78" type="stmt" count="7"/>
      <line num="79" type="stmt" count="7"/>
      <line num="80" type="stmt" count="7"/>
      <line num="81" type="stmt" count="7"/>
      <line num="84" type="stmt" count="11"/>
      <line num="97" type="method" name="rebuildBloomFilter" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="98" type="stmt" count="10"/>
      <line num="100" type="stmt" count="10"/>
      <line num="101" type="stmt" count="10"/>
      <line num="102" type="stmt" count="10"/>
      <line num="103" type="stmt" count="10"/>
      <line num="105" type="stmt" count="10"/>
      <line num="114" type="method" name="storeEmptyBloomFilter" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="115" type="stmt" count="3"/>
      <line num="116" type="stmt" count="3"/>
      <line num="117" type="stmt" count="3"/>
      <line num="118" type="stmt" count="3"/>
      <line num="119" type="stmt" count="3"/>
      <line num="128" type="method" name="invalidateBloomFilter" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="129" type="stmt" count="2"/>
      <line num="147" type="method" name="getRawCachedBloomFilter" visibility="private" complexity="7" crap="7" count="13"/>
      <line num="148" type="stmt" count="13"/>
      <line num="149" type="stmt" count="13"/>
      <line num="150" type="stmt" count="13"/>
      <line num="152" type="stmt" count="13"/>
      <line num="153" type="stmt" count="13"/>
      <line num="154" type="stmt" count="13"/>
      <line num="155" type="stmt" count="13"/>
      <line num="156" type="stmt" count="13"/>
      <line num="157" type="stmt" count="13"/>
      <line num="159" type="stmt" count="13"/>
      <line num="160" type="stmt" count="13"/>
      <line num="161" type="stmt" count="12"/>
      <line num="162" type="stmt" count="12"/>
      <line num="166" type="stmt" count="12"/>
      <line num="167" type="stmt" count="1"/>
      <line num="168" type="stmt" count="1"/>
      <line num="171" type="stmt" count="11"/>
      <line num="172" type="stmt" count="11"/>
      <line num="173" type="stmt" count="2"/>
      <line num="174" type="stmt" count="2"/>
      <line num="177" type="stmt" count="11"/>
      <line num="178" type="stmt" count="11"/>
      <line num="179" type="stmt" count="11"/>
      <line num="180" type="stmt" count="11"/>
      <line num="183" type="method" name="recordCacheMissMetric" visibility="private" complexity="1" crap="1" count="13"/>
      <line num="184" type="stmt" count="13"/>
      <line num="185" type="stmt" count="13"/>
      <line num="186" type="stmt" count="13"/>
      <line num="200" type="method" name="deserializeCachedBloomFilter" visibility="private" complexity="8" crap="10.74" count="11"/>
      <line num="201" type="stmt" count="11"/>
      <line num="203" type="stmt" count="11"/>
      <line num="204" type="stmt" count="1"/>
      <line num="208" type="stmt" count="10"/>
      <line num="209" type="stmt" count="10"/>
      <line num="210" type="stmt" count="10"/>
      <line num="212" type="stmt" count="6"/>
      <line num="215" type="stmt" count="4"/>
      <line num="216" type="stmt" count="1"/>
      <line num="219" type="stmt" count="3"/>
      <line num="220" type="stmt" count="3"/>
      <line num="221" type="stmt" count="0"/>
      <line num="225" type="stmt" count="3"/>
      <line num="226" 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="234" type="stmt" count="3"/>
      <line num="242" type="method" name="buildBookmarkedPagesBloomFilter" visibility="private" complexity="6" crap="6" count="10"/>
      <line num="246" type="stmt" count="10"/>
      <line num="249" type="stmt" count="10"/>
      <line num="250" type="stmt" count="10"/>
      <line num="251" type="stmt" count="10"/>
      <line num="252" type="stmt" count="10"/>
      <line num="253" type="stmt" count="10"/>
      <line num="254" type="stmt" count="2"/>
      <line num="255" type="stmt" count="1"/>
      <line num="256" type="stmt" count="1"/>
      <line num="257" type="stmt" count="1"/>
      <line num="258" type="stmt" count="1"/>
      <line num="259" type="stmt" count="1"/>
      <line num="260" type="stmt" count="1"/>
      <line num="261" type="stmt" count="1"/>
      <line num="262" type="stmt" count="1"/>
      <line num="263" type="stmt" count="1"/>
      <line num="264" type="stmt" count="1"/>
      <line num="265" type="stmt" count="1"/>
      <line num="266" type="stmt" count="1"/>
      <line num="267" type="stmt" count="1"/>
      <line num="270" type="stmt" count="8"/>
      <line num="272" type="stmt" count="8"/>
      <line num="273" type="stmt" count="1"/>
      <line num="276" type="stmt" count="7"/>
      <line num="277" type="stmt" count="1"/>
      <line num="280" type="stmt" count="6"/>
      <line num="281" type="stmt" count="6"/>
      <line num="282" type="stmt" count="6"/>
      <line num="283" type="stmt" count="6"/>
      <line num="284" type="stmt" count="6"/>
      <line num="285" type="stmt" count="6"/>
      <line num="288" type="stmt" count="6"/>
      <line num="289" type="stmt" count="6"/>
      <line num="290" type="stmt" count="6"/>
      <line num="291" type="stmt" count="6"/>
      <line num="300" type="method" name="storeCachedBloomFilter" visibility="private" complexity="1" crap="1" count="13"/>
      <line num="305" type="stmt" count="13"/>
      <line num="306" type="stmt" count="13"/>
      <line num="307" type="stmt" count="13"/>
      <line num="308" type="stmt" count="13"/>
      <line num="309" type="stmt" count="13"/>
      <line num="310" type="stmt" count="13"/>
      <line num="322" type="method" name="getInvalidationCheckKey" visibility="private" complexity="1" crap="1" count="13"/>
      <line num="323" type="stmt" count="13"/>
      <line num="335" type="method" name="getBloomFilterKey" visibility="private" complexity="1" crap="1" count="15"/>
      <line num="336" type="stmt" count="15"/>
      <metrics loc="339" ncloc="250" classes="1" methods="12" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="116" coveredstatements="109" elements="128" coveredelements="120"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Service/BookmarkEntryLookupResult.php">
      <class name="MediaWiki\Extension\ReadingLists\Service\BookmarkEntryLookupResult" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="6" coveredelements="0"/>
      </class>
      <line num="12" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="16" type="stmt" count="0"/>
      <line num="18" type="method" name="isSaved" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="22" type="method" name="hasCustomListEntry" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <metrics loc="26" ncloc="21" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="6" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Service/BookmarkEntryLookupService.php">
      <class name="MediaWiki\Extension\ReadingLists\Service\BookmarkEntryLookupService" namespace="global">
        <metrics complexity="37" methods="16" coveredmethods="13" conditionals="0" coveredconditionals="0" statements="132" coveredstatements="119" elements="148" coveredelements="132"/>
      </class>
      <line num="48" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="35"/>
      <line num="56" type="stmt" count="35"/>
      <line num="70" type="method" name="getBookmarkEntryLookupStatus" visibility="public" complexity="8" crap="8" count="34"/>
      <line num="71" type="stmt" count="34"/>
      <line num="73" type="stmt" count="34"/>
      <line num="74" type="stmt" count="13"/>
      <line num="79" type="stmt" count="22"/>
      <line num="80" type="stmt" count="2"/>
      <line num="83" type="stmt" count="20"/>
      <line num="85" type="stmt" count="20"/>
      <line num="86" type="stmt" count="2"/>
      <line num="87" type="stmt" count="2"/>
      <line num="91" type="stmt" count="18"/>
      <line num="92" type="stmt" count="5"/>
      <line num="95" type="stmt" count="13"/>
      <line num="102" type="stmt" count="3"/>
      <line num="105" type="stmt" count="10"/>
      <line num="108" type="stmt" count="1"/>
      <line num="111" type="stmt" count="9"/>
      <line num="112" type="stmt" count="4"/>
      <line num="115" type="stmt" count="5"/>
      <line num="118" type="method" name="handleCacheStatusFailure" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="119" type="stmt" count="2"/>
      <line num="120" type="stmt" count="2"/>
      <line num="123" type="method" name="handleCacheMiss" visibility="private" complexity="5" crap="5.31" count="13"/>
      <line num="124" type="stmt" count="13"/>
      <line num="125" type="stmt" count="13"/>
      <line num="128" type="stmt" count="13"/>
      <line num="129" type="stmt" count="1"/>
      <line num="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="134" type="stmt" count="1"/>
      <line num="135" type="stmt" count="1"/>
      <line num="136" type="stmt" count="1"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" 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="145" type="stmt" count="13"/>
      <line num="146" type="stmt" count="1"/>
      <line num="147" type="stmt" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="151" type="stmt" count="12"/>
      <line num="152" type="stmt" count="12"/>
      <line num="153" type="stmt" count="12"/>
      <line num="155" type="stmt" count="12"/>
      <line num="156" type="stmt" count="1"/>
      <line num="158" type="stmt" count="11"/>
      <line num="161" type="stmt" count="12"/>
      <line num="164" type="method" name="handleTooLargeBypass" visibility="private" complexity="3" crap="3" count="5"/>
      <line num="165" type="stmt" count="5"/>
      <line num="166" type="stmt" count="5"/>
      <line num="168" type="stmt" count="5"/>
      <line num="169" type="stmt" count="1"/>
      <line num="172" type="stmt" count="4"/>
      <line num="173" type="stmt" count="4"/>
      <line num="174" type="stmt" count="4"/>
      <line num="175" type="stmt" count="3"/>
      <line num="176" type="stmt" count="4"/>
      <line num="177" type="stmt" count="4"/>
      <line num="180" type="stmt" count="5"/>
      <line num="183" type="method" name="handleCachedBuildDbError" visibility="private" complexity="2" crap="2" count="3"/>
      <line num="184" type="stmt" count="3"/>
      <line num="185" type="stmt" count="3"/>
      <line num="187" type="stmt" count="3"/>
      <line num="188" type="stmt" count="1"/>
      <line num="190" type="stmt" count="2"/>
      <line num="193" type="stmt" count="3"/>
      <line num="196" type="method" name="handleUnusableCachedFilter" visibility="private" complexity="2" crap="2.02" count="1"/>
      <line num="197" type="stmt" count="1"/>
      <line num="198" type="stmt" count="1"/>
      <line num="200" type="stmt" count="1"/>
      <line num="201" type="stmt" count="0"/>
      <line num="203" type="stmt" count="1"/>
      <line num="206" type="stmt" count="1"/>
      <line num="209" type="method" name="handleDefiniteNegative" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="210" type="stmt" count="4"/>
      <line num="211" type="stmt" count="4"/>
      <line num="214" type="method" name="handleProbablePositive" visibility="private" complexity="3" crap="3" count="5"/>
      <line num="215" type="stmt" count="5"/>
      <line num="216" type="stmt" count="5"/>
      <line num="217" type="stmt" count="5"/>
      <line num="218" type="stmt" count="1"/>
      <line num="219" type="stmt" count="1"/>
      <line num="223" type="stmt" count="4"/>
      <line num="224" type="stmt" count="4"/>
      <line num="225" type="stmt" count="4"/>
      <line num="226" type="stmt" count="3"/>
      <line num="227" type="stmt" count="4"/>
      <line num="228" type="stmt" count="4"/>
      <line num="230" type="stmt" count="4"/>
      <line num="233" type="method" name="lookupBookmarkMembershipInDb" visibility="private" complexity="5" crap="5.22" count="26"/>
      <line num="238" type="stmt" count="26"/>
      <line num="243" type="stmt" count="26"/>
      <line num="244" type="stmt" count="26"/>
      <line num="245" type="stmt" count="26"/>
      <line num="246" type="stmt" count="26"/>
      <line num="247" type="stmt" count="26"/>
      <line num="248" type="stmt" count="26"/>
      <line num="249" type="stmt" count="26"/>
      <line num="250" type="stmt" count="4"/>
      <line num="251" type="stmt" count="4"/>
      <line num="252" type="stmt" count="4"/>
      <line num="253" type="stmt" count="4"/>
      <line num="254" type="stmt" count="4"/>
      <line num="255" type="stmt" count="4"/>
      <line num="256" type="stmt" count="0"/>
      <line num="257" type="stmt" count="0"/>
      <line num="258" type="stmt" count="0"/>
      <line num="259" type="stmt" count="0"/>
      <line num="260" type="stmt" count="0"/>
      <line num="261" type="stmt" count="0"/>
      <line num="264" type="stmt" count="22"/>
      <line num="265" type="stmt" count="22"/>
      <line num="266" type="stmt" count="22"/>
      <line num="267" type="stmt" count="19"/>
      <line num="268" type="stmt" count="19"/>
      <line num="269" type="stmt" count="3"/>
      <line num="273" type="stmt" count="22"/>
      <line num="274" type="stmt" count="22"/>
      <line num="275" type="stmt" count="22"/>
      <line num="288" type="method" name="invalidateBookmarkBloomFilter" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="289" type="stmt" count="2"/>
      <line num="290" type="stmt" count="2"/>
      <line num="291" type="stmt" count="2"/>
      <line num="292" type="stmt" count="2"/>
      <line num="293" type="stmt" count="2"/>
      <line num="302" type="method" name="queueBloomFilterBuildJob" visibility="private" complexity="1" crap="1" count="13"/>
      <line num="303" type="stmt" count="13"/>
      <line num="304" type="stmt" count="13"/>
      <line num="305" type="stmt" count="13"/>
      <line num="314" type="method" name="recordBloomFilterLookupMetric" visibility="private" complexity="1" crap="1" count="34"/>
      <line num="315" type="stmt" count="34"/>
      <line num="316" type="stmt" count="34"/>
      <line num="317" type="stmt" count="34"/>
      <line num="326" type="method" name="recordDbLookupMetric" visibility="private" complexity="1" crap="1" count="27"/>
      <line num="327" type="stmt" count="27"/>
      <line num="328" type="stmt" count="27"/>
      <line num="329" type="stmt" count="27"/>
      <line num="338" type="method" name="recordErrorMetric" visibility="private" complexity="1" crap="1" count="6"/>
      <line num="339" type="stmt" count="6"/>
      <line num="340" type="stmt" count="6"/>
      <line num="341" type="stmt" count="6"/>
      <line num="350" type="method" name="recordLookupFailureMetrics" visibility="private" complexity="1" crap="1" count="6"/>
      <line num="351" type="stmt" count="6"/>
      <line num="352" type="stmt" count="6"/>
      <metrics loc="356" ncloc="287" classes="1" methods="16" coveredmethods="13" conditionals="0" coveredconditionals="0" statements="132" coveredstatements="119" elements="148" coveredelements="132"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/SpecialReadingLists.php">
      <class name="MediaWiki\Extension\ReadingLists\SpecialReadingLists" namespace="global">
        <metrics complexity="23" methods="6" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="88" coveredstatements="79" elements="94" coveredelements="82"/>
      </class>
      <line num="11" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="15" type="stmt" count="6"/>
      <line num="22" type="method" name="outputHeader" visibility="protected" complexity="1" crap="1" count="6"/>
      <line num="24" type="stmt" count="6"/>
      <line num="32" type="method" name="execute" visibility="public" complexity="16" crap="16.30" count="6"/>
      <line num="33" type="stmt" count="6"/>
      <line num="34" type="stmt" count="6"/>
      <line num="36" type="stmt" count="6"/>
      <line num="38" type="stmt" count="6"/>
      <line num="39" type="stmt" count="6"/>
      <line num="41" type="stmt" count="6"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="46" type="stmt" count="6"/>
      <line num="47" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="52" type="stmt" count="6"/>
      <line num="54" type="stmt" count="6"/>
      <line num="55" type="stmt" count="6"/>
      <line num="57" type="stmt" count="6"/>
      <line num="58" type="stmt" count="0"/>
      <line num="65" type="stmt" count="6"/>
      <line num="66" type="stmt" count="6"/>
      <line num="67" type="stmt" count="5"/>
      <line num="68" type="stmt" count="1"/>
      <line num="70" type="stmt" count="6"/>
      <line num="71" type="stmt" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="73" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="78" type="stmt" count="6"/>
      <line num="79" type="stmt" count="1"/>
      <line num="81" type="stmt" count="5"/>
      <line num="82" type="stmt" count="5"/>
      <line num="83" type="stmt" count="5"/>
      <line num="84" type="stmt" count="5"/>
      <line num="85" type="stmt" count="5"/>
      <line num="86" type="stmt" count="5"/>
      <line num="87" type="stmt" count="5"/>
      <line num="88" type="stmt" count="5"/>
      <line num="89" type="stmt" count="5"/>
      <line num="90" type="stmt" count="5"/>
      <line num="91" type="stmt" count="5"/>
      <line num="92" type="stmt" count="5"/>
      <line num="95" type="stmt" count="6"/>
      <line num="96" type="stmt" count="6"/>
      <line num="97" type="stmt" count="6"/>
      <line num="98" type="stmt" count="6"/>
      <line num="99" type="stmt" count="6"/>
      <line num="104" type="stmt" count="6"/>
      <line num="105" type="stmt" count="6"/>
      <line num="106" type="stmt" count="6"/>
      <line num="107" type="stmt" count="6"/>
      <line num="108" type="stmt" count="6"/>
      <line num="109" type="stmt" count="6"/>
      <line num="110" type="stmt" count="6"/>
      <line num="112" type="stmt" count="6"/>
      <line num="113" type="stmt" count="6"/>
      <line num="114" type="stmt" count="6"/>
      <line num="115" type="stmt" count="1"/>
      <line num="117" type="stmt" count="6"/>
      <line num="123" type="method" name="getPrivacyIndicatorHtml" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="124" type="stmt" count="5"/>
      <line num="126" type="stmt" count="5"/>
      <line num="127" type="stmt" count="5"/>
      <line num="128" type="stmt" count="5"/>
      <line num="129" type="stmt" count="5"/>
      <line num="130" type="stmt" count="5"/>
      <line num="131" type="stmt" count="5"/>
      <line num="132" type="stmt" count="5"/>
      <line num="133" type="stmt" count="5"/>
      <line num="134" type="stmt" count="5"/>
      <line num="135" type="stmt" count="5"/>
      <line num="136" type="stmt" count="5"/>
      <line num="137" type="stmt" count="5"/>
      <line num="138" type="stmt" count="5"/>
      <line num="139" type="stmt" count="5"/>
      <line num="140" type="stmt" count="5"/>
      <line num="141" type="stmt" count="5"/>
      <line num="142" type="stmt" count="5"/>
      <line num="143" type="stmt" count="5"/>
      <line num="144" type="stmt" count="5"/>
      <line num="154" type="method" name="getCustomListName" visibility="private" complexity="3" crap="3.14" count="2"/>
      <line num="156" type="stmt" count="2"/>
      <line num="157" type="stmt" count="2"/>
      <line num="158" type="stmt" count="2"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="163" type="stmt" count="2"/>
      <line num="164" type="stmt" count="1"/>
      <line num="167" type="stmt" count="1"/>
      <line num="173" type="method" name="getGroupName" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <metrics loc="177" ncloc="145" classes="1" methods="6" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="88" coveredstatements="79" elements="94" coveredelements="82"/>
    </file>
    <file name="/workspace/src/extensions/ReadingLists/src/Utils.php">
      <class name="MediaWiki\Extension\ReadingLists\Utils" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="7" elements="19" coveredelements="7"/>
      </class>
      <line num="22" type="method" name="getDeletedExpiry" visibility="public" complexity="3" crap="3.10" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="33" type="stmt" count="1"/>
      <line num="42" type="method" name="makeMaintenanceRepository" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <metrics loc="56" ncloc="39" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="7" elements="19" coveredelements="7"/>
    </file>
    <metrics files="59" loc="9505" ncloc="7172" classes="53" methods="358" coveredmethods="180" conditionals="0" coveredconditionals="0" statements="3728" coveredstatements="2900" elements="4086" coveredelements="3080"/>
  </project>
</coverage>
