<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1786695798">
  <project timestamp="1786695798">
    <file name="/workspace/src/extensions/DiscussionTools/includes/Actions/SubscribeAction.php">
      <class name="MediaWiki\Extension\DiscussionTools\Actions\SubscribeAction" namespace="global">
        <metrics complexity="21" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="63" coveredstatements="0" elements="75" coveredelements="0"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="33" type="method" name="getPageTitle" visibility="protected" complexity="4" crap="20" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" 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="41" type="stmt" count="0"/>
      <line num="48" type="method" name="show" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" 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="57" type="stmt" count="0"/>
      <line num="63" type="method" name="getName" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="70" type="method" name="requiresUnblock" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="77" type="method" name="getDescription" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="84" type="method" name="getFormFields" visibility="protected" complexity="3" crap="12" 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="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="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="106" type="stmt" count="0"/>
      <line num="113" type="method" name="alterForm" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="120" type="method" name="onSubmit" visibility="public" complexity="1" crap="2" 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="131" type="method" name="onSuccess" visibility="public" complexity="2" crap="6" 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="148" type="method" name="usesOOUI" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <line num="156" type="method" name="checkCanExecute" visibility="protected" complexity="3" crap="12" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <metrics loc="172" ncloc="137" classes="1" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="63" coveredstatements="0" elements="75" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Actions/UnsubscribeAction.php">
      <class name="MediaWiki\Extension\DiscussionTools\Actions\UnsubscribeAction" namespace="global">
        <metrics complexity="21" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="61" coveredstatements="0" elements="73" coveredelements="0"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="33" type="method" name="getPageTitle" visibility="protected" complexity="3" crap="12" 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="46" type="method" name="show" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="47" 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="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="67" type="method" name="getName" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="74" type="method" name="requiresUnblock" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="81" type="method" name="getDescription" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="88" type="method" name="getFormFields" visibility="protected" complexity="3" crap="12" 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="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="112" type="method" name="alterForm" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="119" type="method" name="onSubmit" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="120" 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="131" type="method" name="onSuccess" visibility="public" complexity="2" crap="6" 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="148" type="method" name="usesOOUI" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <line num="156" type="method" name="checkCanExecute" visibility="protected" complexity="3" crap="12" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <metrics loc="172" ncloc="137" classes="1" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="61" coveredstatements="0" elements="73" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ApiDiscussionToolsCompare.php">
      <class name="MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsCompare" namespace="global">
        <metrics complexity="21" methods="8" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="75" coveredstatements="53" elements="83" coveredelements="58"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="30" type="method" name="getRevision" visibility="private" complexity="6" crap="17.70" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" 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="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="52" type="stmt" count="1"/>
      <line num="53" type="stmt" count="0"/>
      <line num="55" type="stmt" count="1"/>
      <line num="62" type="method" name="execute" visibility="public" complexity="9" crap="12.69" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="66" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" type="stmt" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="77" type="stmt" count="1"/>
      <line num="79" type="stmt" count="1"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="84" type="stmt" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="87" type="stmt" count="0"/>
      <line num="89" type="stmt" count="1"/>
      <line num="90" type="stmt" count="0"/>
      <line num="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="95" 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="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="109" type="stmt" count="1"/>
      <line num="120" type="method" name="addResult" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="124" type="stmt" count="1"/>
      <line num="125" type="stmt" count="1"/>
      <line num="126" type="stmt" count="1"/>
      <line num="127" type="stmt" count="1"/>
      <line num="128" type="stmt" count="1"/>
      <line num="129" type="stmt" count="1"/>
      <line num="130" type="stmt" count="1"/>
      <line num="131" type="stmt" count="1"/>
      <line num="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="139" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="140" type="stmt" count="1"/>
      <line num="141" type="stmt" count="1"/>
      <line num="142" type="stmt" count="1"/>
      <line num="143" type="stmt" count="1"/>
      <line num="144" type="stmt" count="1"/>
      <line num="145" type="stmt" count="1"/>
      <line num="146" type="stmt" count="1"/>
      <line num="147" type="stmt" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="149" type="stmt" count="1"/>
      <line num="150" type="stmt" count="1"/>
      <line num="151" type="stmt" count="1"/>
      <line num="152" type="stmt" count="1"/>
      <line num="153" type="stmt" count="1"/>
      <line num="154" type="stmt" count="1"/>
      <line num="155" type="stmt" count="1"/>
      <line num="161" type="method" name="needsToken" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="162" type="stmt" count="1"/>
      <line num="168" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="175" type="method" name="isWriteMode" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <metrics loc="179" ncloc="148" classes="1" methods="8" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="75" coveredstatements="53" elements="83" coveredelements="58"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ApiDiscussionToolsEdit.php">
      <class name="MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsEdit" namespace="global">
        <metrics complexity="51" methods="6" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="278" coveredstatements="231" elements="284" coveredelements="236"/>
      </class>
      <line num="36" type="method" name="__construct" visibility="public" complexity="1" crap="1" 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="59" type="method" name="execute" visibility="public" complexity="43" crap="71.89" count="4"/>
      <line num="60" type="stmt" count="4"/>
      <line num="61" type="stmt" count="4"/>
      <line num="62" type="stmt" count="4"/>
      <line num="64" type="stmt" count="4"/>
      <line num="65" type="stmt" count="0"/>
      <line num="68" type="stmt" count="4"/>
      <line num="70" type="stmt" count="4"/>
      <line num="71" type="stmt" count="4"/>
      <line num="72" type="stmt" count="4"/>
      <line num="73" type="stmt" count="4"/>
      <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="81" type="stmt" count="4"/>
      <line num="82" type="stmt" count="4"/>
      <line num="83" type="stmt" count="3"/>
      <line num="88" type="stmt" count="4"/>
      <line num="89" type="stmt" count="4"/>
      <line num="90" type="stmt" count="4"/>
      <line num="91" type="stmt" count="4"/>
      <line num="92" type="stmt" count="4"/>
      <line num="93" type="stmt" count="4"/>
      <line num="94" type="stmt" count="4"/>
      <line num="95" 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="101" type="stmt" count="4"/>
      <line num="102" type="stmt" count="4"/>
      <line num="103" type="stmt" count="4"/>
      <line num="104" type="stmt" count="0"/>
      <line num="106" type="stmt" count="4"/>
      <line num="109" type="stmt" count="4"/>
      <line num="110" type="stmt" count="4"/>
      <line num="111" type="stmt" count="3"/>
      <line num="112" 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="117" type="stmt" count="3"/>
      <line num="120" type="stmt" count="3"/>
      <line num="125" type="stmt" count="3"/>
      <line num="126" type="stmt" count="0"/>
      <line num="130" type="stmt" count="3"/>
      <line num="131" type="stmt" count="3"/>
      <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="143" type="stmt" count="0"/>
      <line num="147" type="stmt" count="3"/>
      <line num="148" type="stmt" count="3"/>
      <line num="149" type="stmt" count="3"/>
      <line num="152" 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="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="161" type="stmt" count="3"/>
      <line num="164" type="stmt" count="3"/>
      <line num="165" type="stmt" count="0"/>
      <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="174" 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="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="3"/>
      <line num="183" type="stmt" count="3"/>
      <line num="184" type="stmt" count="3"/>
      <line num="185" type="stmt" count="3"/>
      <line num="186" type="stmt" count="3"/>
      <line num="189" type="stmt" count="3"/>
      <line num="190" type="stmt" count="3"/>
      <line num="191" type="stmt" count="3"/>
      <line num="192" type="stmt" count="3"/>
      <line num="193" type="stmt" count="3"/>
      <line num="194" type="stmt" count="3"/>
      <line num="195" type="stmt" count="3"/>
      <line num="196" type="stmt" count="3"/>
      <line num="197" type="stmt" count="3"/>
      <line num="199" type="stmt" count="3"/>
      <line num="201" type="stmt" count="3"/>
      <line num="202" type="stmt" count="3"/>
      <line num="204" type="stmt" count="3"/>
      <line num="206" type="stmt" count="1"/>
      <line num="207" type="stmt" count="1"/>
      <line num="209" type="stmt" count="1"/>
      <line num="210" type="stmt" count="1"/>
      <line num="212" type="stmt" count="1"/>
      <line num="214" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="222" type="stmt" count="1"/>
      <line num="223" type="stmt" count="1"/>
      <line num="224" type="stmt" count="0"/>
      <line num="225" type="stmt" count="0"/>
      <line num="226" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="230" type="stmt" count="1"/>
      <line num="232" type="stmt" count="1"/>
      <line num="233" type="stmt" count="1"/>
      <line num="237" type="stmt" count="1"/>
      <line num="238" type="stmt" count="1"/>
      <line num="239" type="stmt" count="1"/>
      <line num="240" type="stmt" count="1"/>
      <line num="241" type="stmt" count="1"/>
      <line num="242" 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="248" type="stmt" count="1"/>
      <line num="250" type="stmt" count="1"/>
      <line num="254" type="stmt" count="1"/>
      <line num="256" type="stmt" count="1"/>
      <line num="258" type="stmt" count="1"/>
      <line num="259" type="stmt" count="1"/>
      <line num="261" type="stmt" count="1"/>
      <line num="262" type="stmt" count="0"/>
      <line num="266" 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="276" type="stmt" count="1"/>
      <line num="281" type="stmt" count="0"/>
      <line num="284" type="stmt" count="1"/>
      <line num="285" type="stmt" count="1"/>
      <line num="287" type="stmt" count="0"/>
      <line num="290" type="stmt" count="1"/>
      <line num="291" type="stmt" count="1"/>
      <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="299" type="stmt" count="0"/>
      <line num="300" type="stmt" count="0"/>
      <line num="303" type="stmt" count="1"/>
      <line num="304" type="stmt" count="1"/>
      <line num="305" type="stmt" count="1"/>
      <line num="306" type="stmt" count="1"/>
      <line num="307" type="stmt" count="1"/>
      <line num="308" type="stmt" count="1"/>
      <line num="309" type="stmt" count="1"/>
      <line num="310" type="stmt" count="1"/>
      <line num="311" type="stmt" count="1"/>
      <line num="312" type="stmt" count="1"/>
      <line num="313" type="stmt" count="1"/>
      <line num="314" type="stmt" count="1"/>
      <line num="315" type="stmt" count="1"/>
      <line num="316" type="stmt" count="1"/>
      <line num="317" type="stmt" count="1"/>
      <line num="318" type="stmt" count="1"/>
      <line num="319" type="stmt" count="1"/>
      <line num="320" type="stmt" count="1"/>
      <line num="323" type="stmt" count="1"/>
      <line num="324" type="stmt" count="1"/>
      <line num="325" type="stmt" count="1"/>
      <line num="326" type="stmt" count="1"/>
      <line num="327" type="stmt" count="1"/>
      <line num="328" type="stmt" count="1"/>
      <line num="329" type="stmt" count="1"/>
      <line num="330" type="stmt" count="1"/>
      <line num="331" type="stmt" count="1"/>
      <line num="333" type="stmt" count="1"/>
      <line num="339" type="stmt" count="1"/>
      <line num="340" type="stmt" count="1"/>
      <line num="341" type="stmt" count="1"/>
      <line num="344" type="stmt" count="4"/>
      <line num="348" type="stmt" count="0"/>
      <line num="353" type="stmt" count="4"/>
      <line num="354" type="stmt" count="0"/>
      <line num="359" type="stmt" count="0"/>
      <line num="361" type="stmt" count="0"/>
      <line num="363" type="stmt" count="0"/>
      <line num="366" type="stmt" count="4"/>
      <line num="373" type="method" name="getCaptchaParams" visibility="private" complexity="4" crap="4" count="4"/>
      <line num="374" type="stmt" count="4"/>
      <line num="375" type="stmt" count="1"/>
      <line num="378" type="stmt" count="3"/>
      <line num="379" type="stmt" count="3"/>
      <line num="380" type="stmt" count="3"/>
      <line num="382" type="stmt" count="3"/>
      <line num="383" type="stmt" count="3"/>
      <line num="384" type="stmt" count="3"/>
      <line num="385" type="stmt" count="3"/>
      <line num="388" type="stmt" count="3"/>
      <line num="394" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="395" type="stmt" count="4"/>
      <line num="396" type="stmt" count="4"/>
      <line num="397" type="stmt" count="4"/>
      <line num="398" type="stmt" count="4"/>
      <line num="399" type="stmt" count="4"/>
      <line num="400" type="stmt" count="4"/>
      <line num="401" type="stmt" count="4"/>
      <line num="402" type="stmt" count="4"/>
      <line num="403" type="stmt" count="4"/>
      <line num="404" type="stmt" count="4"/>
      <line num="405" type="stmt" count="4"/>
      <line num="406" type="stmt" count="4"/>
      <line num="407" type="stmt" count="4"/>
      <line num="408" type="stmt" count="4"/>
      <line num="409" type="stmt" count="4"/>
      <line num="410" type="stmt" count="4"/>
      <line num="411" type="stmt" count="4"/>
      <line num="412" type="stmt" count="4"/>
      <line num="413" type="stmt" count="4"/>
      <line num="414" type="stmt" count="4"/>
      <line num="415" type="stmt" count="4"/>
      <line num="416" type="stmt" count="4"/>
      <line num="417" type="stmt" count="4"/>
      <line num="418" type="stmt" count="4"/>
      <line num="419" type="stmt" count="4"/>
      <line num="420" type="stmt" count="4"/>
      <line num="421" type="stmt" count="4"/>
      <line num="422" type="stmt" count="4"/>
      <line num="423" type="stmt" count="4"/>
      <line num="424" type="stmt" count="4"/>
      <line num="425" type="stmt" count="4"/>
      <line num="426" type="stmt" count="4"/>
      <line num="427" type="stmt" count="4"/>
      <line num="428" type="stmt" count="4"/>
      <line num="429" type="stmt" count="4"/>
      <line num="430" type="stmt" count="4"/>
      <line num="431" type="stmt" count="4"/>
      <line num="432" type="stmt" count="4"/>
      <line num="433" type="stmt" count="4"/>
      <line num="434" type="stmt" count="4"/>
      <line num="435" type="stmt" count="4"/>
      <line num="436" type="stmt" count="4"/>
      <line num="437" type="stmt" count="4"/>
      <line num="438" type="stmt" count="4"/>
      <line num="439" type="stmt" count="4"/>
      <line num="440" type="stmt" count="4"/>
      <line num="441" type="stmt" count="4"/>
      <line num="442" type="stmt" count="4"/>
      <line num="443" type="stmt" count="4"/>
      <line num="444" type="stmt" count="4"/>
      <line num="445" type="stmt" count="4"/>
      <line num="446" type="stmt" count="4"/>
      <line num="447" type="stmt" count="4"/>
      <line num="448" type="stmt" count="4"/>
      <line num="449" type="stmt" count="4"/>
      <line num="450" type="stmt" count="4"/>
      <line num="451" type="stmt" count="4"/>
      <line num="452" type="stmt" count="4"/>
      <line num="453" type="stmt" count="4"/>
      <line num="454" type="stmt" count="4"/>
      <line num="455" type="stmt" count="4"/>
      <line num="456" type="stmt" count="4"/>
      <line num="457" type="stmt" count="4"/>
      <line num="458" type="stmt" count="4"/>
      <line num="459" type="stmt" count="4"/>
      <line num="460" type="stmt" count="4"/>
      <line num="461" type="stmt" count="4"/>
      <line num="462" type="stmt" count="4"/>
      <line num="463" type="stmt" count="4"/>
      <line num="464" type="stmt" count="4"/>
      <line num="465" type="stmt" count="4"/>
      <line num="466" type="stmt" count="4"/>
      <line num="467" type="stmt" count="4"/>
      <line num="468" type="stmt" count="4"/>
      <line num="469" type="stmt" count="4"/>
      <line num="475" type="method" name="needsToken" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="476" type="stmt" count="4"/>
      <line num="482" type="method" name="isWriteMode" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="483" type="stmt" count="4"/>
      <metrics loc="486" ncloc="426" classes="1" methods="6" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="278" coveredstatements="231" elements="284" coveredelements="236"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ApiDiscussionToolsFindComment.php">
      <class name="MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsFindComment" namespace="global">
        <metrics complexity="20" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="61" coveredstatements="0" elements="67" coveredelements="0"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="28" type="method" name="execute" visibility="public" complexity="14" crap="210" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" 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="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" 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="58" type="stmt" count="0"/>
      <line num="60" 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="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="84" 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="102" type="method" name="getValue" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="103" 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="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="120" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="2" 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="131" type="stmt" count="0"/>
      <line num="137" type="method" name="needsToken" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="144" type="method" name="isWriteMode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <metrics loc="148" ncloc="125" classes="1" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="61" coveredstatements="0" elements="67" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ApiDiscussionToolsGetSubscriptions.php">
      <class name="MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsGetSubscriptions" namespace="global">
        <metrics complexity="5" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="0" elements="23" coveredelements="0"/>
      </class>
      <line num="12" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="17" type="stmt" count="0"/>
      <line num="24" type="method" name="execute" visibility="public" complexity="3" crap="12" 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="stmt" 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="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="49" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="2" 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"/>
      <metrics loc="58" ncloc="50" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="0" elements="23" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ApiDiscussionToolsPageInfo.php">
      <class name="MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPageInfo" namespace="global">
        <metrics complexity="55" methods="10" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="187" coveredstatements="130" elements="197" coveredelements="135"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="38" type="method" name="execute" visibility="public" complexity="4" crap="5.34" 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="43" type="stmt" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <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="60" type="stmt" count="1"/>
      <line num="70" type="method" name="getThreadItemSet" visibility="private" complexity="11" crap="52.99" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <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="81" type="stmt" count="1"/>
      <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="90" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <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="97" type="stmt" count="1"/>
      <line num="98" type="stmt" count="1"/>
      <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="103" type="stmt" count="0"/>
      <line num="106" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="110" type="stmt" count="1"/>
      <line num="113" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" 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="123" type="stmt" count="0"/>
      <line num="129" type="method" name="getTranscludedFrom" visibility="private" complexity="4" crap="7.46" count="1"/>
      <line num="130" type="stmt" count="1"/>
      <line num="131" type="stmt" count="1"/>
      <line num="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="140" type="stmt" count="0"/>
      <line num="143" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="149" type="stmt" count="1"/>
      <line num="155" type="method" name="getThreadItemsHtml" visibility="private" complexity="30" crap="36.27" count="5"/>
      <line num="163" type="stmt" count="5"/>
      <line num="164" type="stmt" count="5"/>
      <line num="165" type="stmt" count="5"/>
      <line num="166" type="stmt" count="5"/>
      <line num="167" 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="179" type="stmt" count="5"/>
      <line num="180" 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="0"/>
      <line num="191" type="stmt" count="5"/>
      <line num="194" type="stmt" count="5"/>
      <line num="195" type="stmt" count="5"/>
      <line num="196" type="stmt" count="5"/>
      <line num="197" type="stmt" count="5"/>
      <line num="198" type="stmt" count="5"/>
      <line num="199" type="stmt" count="5"/>
      <line num="200" type="stmt" count="5"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="206" type="stmt" count="5"/>
      <line num="207" type="stmt" count="5"/>
      <line num="208" type="stmt" count="0"/>
      <line num="211" type="stmt" count="5"/>
      <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="218" type="stmt" count="0"/>
      <line num="223" type="stmt" count="5"/>
      <line num="224" type="stmt" count="5"/>
      <line num="227" type="stmt" count="5"/>
      <line num="228" type="stmt" count="0"/>
      <line num="230" type="stmt" count="5"/>
      <line num="231" type="stmt" count="5"/>
      <line num="232" type="stmt" count="5"/>
      <line num="235" type="stmt" count="5"/>
      <line num="242" type="stmt" count="5"/>
      <line num="243" type="stmt" count="5"/>
      <line num="244" type="stmt" count="5"/>
      <line num="246" type="stmt" count="5"/>
      <line num="247" type="stmt" count="5"/>
      <line num="249" type="stmt" count="4"/>
      <line num="250" type="stmt" count="4"/>
      <line num="254" type="stmt" count="0"/>
      <line num="256" type="stmt" count="4"/>
      <line num="257" type="stmt" count="4"/>
      <line num="261" type="stmt" count="5"/>
      <line num="262" type="stmt" count="0"/>
      <line num="263" type="stmt" count="0"/>
      <line num="266" type="stmt" count="5"/>
      <line num="267" type="stmt" count="5"/>
      <line num="268" type="stmt" count="5"/>
      <line num="269" type="stmt" count="5"/>
      <line num="270" type="stmt" count="5"/>
      <line num="271" type="stmt" count="5"/>
      <line num="272" type="stmt" count="5"/>
      <line num="275" type="stmt" count="1"/>
      <line num="277" type="stmt" count="5"/>
      <line num="278" type="stmt" count="5"/>
      <line num="282" type="stmt" count="5"/>
      <line num="283" type="stmt" count="0"/>
      <line num="284" type="stmt" count="0"/>
      <line num="286" type="stmt" count="5"/>
      <line num="287" type="stmt" count="5"/>
      <line num="288" type="stmt" count="5"/>
      <line num="289" type="stmt" count="5"/>
      <line num="292" type="stmt" count="1"/>
      <line num="293" type="stmt" count="1"/>
      <line num="294" type="stmt" count="1"/>
      <line num="295" type="stmt" count="1"/>
      <line num="297" type="stmt" count="5"/>
      <line num="298" type="stmt" count="5"/>
      <line num="299" type="stmt" count="5"/>
      <line num="300" type="stmt" count="5"/>
      <line num="303" type="stmt" count="5"/>
      <line num="308" type="stmt" count="5"/>
      <line num="316" type="method" name="formatItemTimestamp" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="317" type="stmt" count="5"/>
      <line num="323" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="324" type="stmt" count="1"/>
      <line num="325" type="stmt" count="1"/>
      <line num="326" type="stmt" count="1"/>
      <line num="327" type="stmt" count="1"/>
      <line num="328" type="stmt" count="1"/>
      <line num="329" type="stmt" count="1"/>
      <line num="330" type="stmt" count="1"/>
      <line num="331" type="stmt" count="1"/>
      <line num="332" type="stmt" count="1"/>
      <line num="333" type="stmt" count="1"/>
      <line num="334" type="stmt" count="1"/>
      <line num="335" type="stmt" count="1"/>
      <line num="336" type="stmt" count="1"/>
      <line num="337" type="stmt" count="1"/>
      <line num="338" type="stmt" count="1"/>
      <line num="339" type="stmt" count="1"/>
      <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="350" type="stmt" count="1"/>
      <line num="351" type="stmt" count="1"/>
      <line num="352" type="stmt" count="1"/>
      <line num="353" type="stmt" count="1"/>
      <line num="359" type="method" name="needsToken" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="360" type="stmt" count="1"/>
      <line num="366" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="367" type="stmt" count="0"/>
      <line num="373" type="method" name="isWriteMode" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="374" type="stmt" count="1"/>
      <metrics loc="377" ncloc="311" classes="1" methods="10" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="187" coveredstatements="130" elements="197" coveredelements="135"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ApiDiscussionToolsPreview.php">
      <class name="MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPreview" namespace="global">
        <metrics complexity="7" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="66" coveredstatements="0" elements="70" coveredelements="0"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="38" type="method" name="execute" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" 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="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="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="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="92" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="2" 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="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="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="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="127" type="method" name="isInternal" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <metrics loc="131" ncloc="116" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="66" coveredstatements="0" elements="70" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ApiDiscussionToolsSubscribe.php">
      <class name="MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsSubscribe" namespace="global">
        <metrics complexity="10" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="48" coveredstatements="0" elements="53" coveredelements="0"/>
      </class>
      <line num="13" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="18" type="stmt" count="0"/>
      <line num="25" type="method" name="execute" visibility="public" complexity="6" crap="42" 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="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="41" type="stmt" 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="48" 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="60" 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="66" type="stmt" count="0"/>
      <line num="72" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="2" 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="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="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="93" type="method" name="needsToken" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="100" type="method" name="isWriteMode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <metrics loc="104" ncloc="91" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="48" coveredstatements="0" elements="53" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ApiDiscussionToolsThank.php">
      <class name="MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsThank" namespace="global">
        <metrics complexity="13" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="0" elements="70" coveredelements="0"/>
      </class>
      <line num="32" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="48" type="method" name="execute" visibility="public" complexity="11" crap="132" 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="53" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" 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="78" 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="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="91" 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="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="104" 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="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="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"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="136" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="2" 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="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="146" 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="151" type="stmt" count="0"/>
      <metrics loc="154" ncloc="132" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="0" elements="70" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ApiDiscussionToolsTrait.php">
      <class name="MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsTrait" namespace="global">
        <metrics complexity="15" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="60" coveredstatements="46" elements="63" coveredelements="47"/>
      </class>
      <line num="45" type="method" name="previewMessage" visibility="protected" complexity="12" crap="13.44" count="4"/>
      <line num="48" type="stmt" count="4"/>
      <line num="49" type="stmt" count="4"/>
      <line num="50" type="stmt" count="4"/>
      <line num="53" type="stmt" count="4"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="3"/>
      <line num="72" type="stmt" count="3"/>
      <line num="74" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <line num="77" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="80" type="stmt" count="0"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" type="stmt" count="0"/>
      <line num="86" type="stmt" count="1"/>
      <line num="87" type="stmt" count="1"/>
      <line num="89" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <line num="94" type="stmt" count="4"/>
      <line num="95" 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="101" type="stmt" count="4"/>
      <line num="102" type="stmt" count="4"/>
      <line num="103" type="stmt" count="4"/>
      <line num="104" type="stmt" count="0"/>
      <line num="106" type="stmt" count="4"/>
      <line num="107" type="stmt" count="0"/>
      <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"/>
      <line num="120" type="stmt" count="4"/>
      <line num="121" type="stmt" count="4"/>
      <line num="128" type="method" name="getUserForPreview" visibility="private" complexity="2" crap="2.50" count="4"/>
      <line num="129" type="stmt" count="4"/>
      <line num="130" type="stmt" count="4"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <line num="135" type="stmt" count="4"/>
      <line num="141" type="method" name="getParsoidClient" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="142" type="stmt" count="1"/>
      <line num="143" type="stmt" count="1"/>
      <line num="144" type="stmt" count="1"/>
      <metrics loc="173" ncloc="131" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="60" coveredstatements="46" elements="63" coveredelements="47"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/BatchModifyElements.php">
      <class name="MediaWiki\Extension\DiscussionTools\BatchModifyElements" namespace="global">
        <metrics complexity="8" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="0" elements="24" coveredelements="0"/>
      </class>
      <line num="16" type="method" name="add" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="17" type="stmt" count="0"/>
      <line num="23" type="method" name="apply" visibility="public" complexity="7" crap="56" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="28" type="stmt" 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"/>
      <line num="33" 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="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="48" 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"/>
      <metrics loc="58" ncloc="48" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="0" elements="24" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ButtonMenuSelectWidget.php">
      <class name="MediaWiki\Extension\DiscussionTools\ButtonMenuSelectWidget" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="0" elements="2" coveredelements="0"/>
      </class>
      <line num="9" type="method" name="getJavaScriptClassName" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="10" type="stmt" count="0"/>
      <metrics loc="13" ncloc="10" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="0" elements="2" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/CommentFormatter.php">
      <class name="MediaWiki\Extension\DiscussionTools\CommentFormatter" namespace="global">
        <metrics complexity="114" methods="27" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="566" coveredstatements="455" elements="593" coveredelements="465"/>
      </class>
      <line num="47" type="method" name="getParser" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="51" type="method" name="getHookRunner" visibility="protected" complexity="1" crap="1" count="54"/>
      <line num="52" type="stmt" count="54"/>
      <line num="62" type="method" name="addDiscussionTools" visibility="public" complexity="3" crap="3.45" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="64" type="stmt" count="1"/>
      <line num="67" type="stmt" count="1"/>
      <line num="69" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="76" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="79" type="stmt" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="89" type="stmt" count="1"/>
      <line num="90" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <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="105" type="method" name="isHtmlHeading" visibility="private" complexity="6" crap="8.83" count="51"/>
      <line num="106" type="stmt" count="51"/>
      <line num="107" type="stmt" count="51"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="120" type="stmt" count="51"/>
      <line num="121" type="stmt" count="0"/>
      <line num="124" type="stmt" count="51"/>
      <line num="131" type="stmt" count="18"/>
      <line num="132" type="stmt" count="18"/>
      <line num="134" type="stmt" count="6"/>
      <line num="137" type="stmt" count="51"/>
      <line num="149" type="method" name="handleHeading" visibility="protected" complexity="9" crap="9" count="51"/>
      <line num="155" type="stmt" count="51"/>
      <line num="156" type="stmt" count="51"/>
      <line num="158" type="stmt" count="51"/>
      <line num="159" type="stmt" count="51"/>
      <line num="162" type="stmt" count="51"/>
      <line num="163" type="stmt" count="6"/>
      <line num="166" type="stmt" count="51"/>
      <line num="167" type="stmt" count="51"/>
      <line num="168" type="stmt" count="51"/>
      <line num="171" type="stmt" count="51"/>
      <line num="172" type="stmt" count="51"/>
      <line num="175" type="stmt" count="51"/>
      <line num="176" type="stmt" count="51"/>
      <line num="178" type="stmt" count="51"/>
      <line num="179" type="stmt" count="51"/>
      <line num="182" type="stmt" count="9"/>
      <line num="185" type="stmt" count="42"/>
      <line num="188" type="stmt" count="51"/>
      <line num="189" type="stmt" count="51"/>
      <line num="191" type="stmt" count="51"/>
      <line num="193" type="stmt" count="51"/>
      <line num="194" type="stmt" count="51"/>
      <line num="195" type="stmt" count="42"/>
      <line num="196" type="stmt" count="42"/>
      <line num="197" type="stmt" count="42"/>
      <line num="198" type="stmt" count="42"/>
      <line num="199" type="stmt" count="42"/>
      <line num="202" type="stmt" count="51"/>
      <line num="203" type="stmt" count="51"/>
      <line num="204" type="stmt" count="51"/>
      <line num="206" type="stmt" count="51"/>
      <line num="207" type="stmt" count="51"/>
      <line num="208" type="stmt" count="51"/>
      <line num="210" type="stmt" count="51"/>
      <line num="213" type="stmt" count="42"/>
      <line num="216" type="stmt" count="51"/>
      <line num="226" type="method" name="addTopicContainer" visibility="protected" complexity="3" crap="3" count="51"/>
      <line num="234" type="stmt" count="51"/>
      <line num="235" type="stmt" count="51"/>
      <line num="236" type="stmt" count="51"/>
      <line num="238" type="stmt" count="51"/>
      <line num="240" type="stmt" count="51"/>
      <line num="241" type="stmt" count="27"/>
      <line num="244" type="stmt" count="42"/>
      <line num="246" type="stmt" count="42"/>
      <line num="247" type="stmt" count="42"/>
      <line num="249" type="stmt" count="42"/>
      <line num="250" type="stmt" count="42"/>
      <line num="252" type="stmt" count="42"/>
      <line num="253" type="stmt" count="42"/>
      <line num="255" type="stmt" count="42"/>
      <line num="256" type="stmt" count="42"/>
      <line num="257" type="stmt" count="42"/>
      <line num="258" type="stmt" count="42"/>
      <line num="259" type="stmt" count="42"/>
      <line num="260" type="stmt" count="42"/>
      <line num="261" type="stmt" count="42"/>
      <line num="262" type="stmt" count="42"/>
      <line num="263" type="stmt" count="42"/>
      <line num="265" type="stmt" count="42"/>
      <line num="266" type="stmt" count="42"/>
      <line num="267" type="stmt" count="42"/>
      <line num="273" type="method" name="addSubscribeLink" visibility="protected" complexity="4" crap="4" count="51"/>
      <line num="280" type="stmt" count="51"/>
      <line num="283" type="stmt" count="51"/>
      <line num="284" type="stmt" count="42"/>
      <line num="285" type="stmt" count="42"/>
      <line num="286" type="stmt" count="42"/>
      <line num="289" type="stmt" count="51"/>
      <line num="290" type="stmt" count="27"/>
      <line num="293" type="stmt" count="42"/>
      <line num="294" type="stmt" count="42"/>
      <line num="295" type="stmt" count="42"/>
      <line num="296" type="stmt" count="42"/>
      <line num="297" type="stmt" count="42"/>
      <line num="298" type="stmt" count="42"/>
      <line num="299" type="stmt" count="42"/>
      <line num="300" type="stmt" count="42"/>
      <line num="301" type="stmt" count="42"/>
      <line num="302" type="stmt" count="42"/>
      <line num="304" type="stmt" count="42"/>
      <line num="315" type="method" name="addDiscussionToolsInternal" visibility="protected" complexity="25" crap="25" count="60"/>
      <line num="320" type="stmt" count="60"/>
      <line num="321" type="stmt" count="60"/>
      <line num="323" type="stmt" count="60"/>
      <line num="324" type="stmt" count="60"/>
      <line num="326" type="stmt" count="60"/>
      <line num="328" type="stmt" count="60"/>
      <line num="329" type="stmt" count="60"/>
      <line num="331" type="stmt" count="60"/>
      <line num="332" type="stmt" count="60"/>
      <line num="336" type="stmt" count="60"/>
      <line num="338" type="stmt" count="60"/>
      <line num="339" type="stmt" count="12"/>
      <line num="340" type="stmt" count="12"/>
      <line num="341" type="stmt" count="12"/>
      <line num="345" type="stmt" count="60"/>
      <line num="346" type="stmt" count="60"/>
      <line num="347" type="stmt" count="60"/>
      <line num="348" type="stmt" count="60"/>
      <line num="349" type="stmt" count="60"/>
      <line num="350" type="stmt" count="60"/>
      <line num="351" type="stmt" count="60"/>
      <line num="355" type="stmt" count="60"/>
      <line num="356" type="stmt" count="0"/>
      <line num="357" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="359" type="stmt" count="0"/>
      <line num="361" type="stmt" count="60"/>
      <line num="362" type="stmt" count="3"/>
      <line num="363" type="stmt" count="3"/>
      <line num="364" type="stmt" count="3"/>
      <line num="365" type="stmt" count="3"/>
      <line num="368" type="stmt" count="60"/>
      <line num="371" type="stmt" count="60"/>
      <line num="372" type="stmt" count="60"/>
      <line num="373" type="stmt" count="60"/>
      <line num="374" type="stmt" count="60"/>
      <line num="376" type="stmt" count="51"/>
      <line num="378" type="stmt" count="51"/>
      <line num="379" type="stmt" count="51"/>
      <line num="382" type="stmt" count="51"/>
      <line num="383" type="stmt" count="51"/>
      <line num="384" type="stmt" count="51"/>
      <line num="385" type="stmt" count="51"/>
      <line num="386" type="stmt" count="51"/>
      <line num="388" type="stmt" count="51"/>
      <line num="389" type="stmt" count="51"/>
      <line num="391" type="stmt" count="51"/>
      <line num="394" type="stmt" count="51"/>
      <line num="396" type="stmt" count="51"/>
      <line num="397" type="stmt" count="51"/>
      <line num="398" type="stmt" count="51"/>
      <line num="399" type="stmt" count="51"/>
      <line num="401" type="stmt" count="51"/>
      <line num="402" type="stmt" count="51"/>
      <line num="403" type="stmt" count="51"/>
      <line num="404" type="stmt" count="51"/>
      <line num="405" type="stmt" count="51"/>
      <line num="406" type="stmt" count="51"/>
      <line num="408" type="stmt" count="51"/>
      <line num="410" type="stmt" count="51"/>
      <line num="411" type="stmt" count="51"/>
      <line num="412" type="stmt" count="51"/>
      <line num="413" type="stmt" count="51"/>
      <line num="414" type="stmt" count="51"/>
      <line num="417" type="stmt" count="60"/>
      <line num="420" type="stmt" count="60"/>
      <line num="422" type="stmt" count="60"/>
      <line num="423" type="stmt" count="51"/>
      <line num="426" type="stmt" count="60"/>
      <line num="429" type="stmt" count="60"/>
      <line num="430" type="stmt" count="60"/>
      <line num="431" type="stmt" count="51"/>
      <line num="432" type="stmt" count="51"/>
      <line num="433" type="stmt" count="18"/>
      <line num="435" type="stmt" count="51"/>
      <line num="436" type="stmt" count="51"/>
      <line num="437" type="stmt" count="51"/>
      <line num="443" type="stmt" count="60"/>
      <line num="445" type="stmt" count="60"/>
      <line num="447" type="stmt" count="42"/>
      <line num="452" type="stmt" count="60"/>
      <line num="453" type="stmt" count="60"/>
      <line num="454" type="stmt" count="60"/>
      <line num="456" type="stmt" count="12"/>
      <line num="457" type="stmt" count="12"/>
      <line num="458" type="stmt" count="12"/>
      <line num="459" type="stmt" count="12"/>
      <line num="460" type="stmt" count="12"/>
      <line num="465" type="stmt" count="60"/>
      <line num="466" type="stmt" count="60"/>
      <line num="467" type="stmt" count="60"/>
      <line num="468" type="stmt" count="60"/>
      <line num="470" type="stmt" count="60"/>
      <line num="471" type="stmt" count="60"/>
      <line num="472" type="stmt" count="60"/>
      <line num="478" type="stmt" count="60"/>
      <line num="482" type="stmt" count="60"/>
      <line num="484" type="stmt" count="60"/>
      <line num="494" type="method" name="addOverflowMenuButton" visibility="protected" complexity="1" crap="1" count="60"/>
      <line num="497" type="stmt" count="60"/>
      <line num="499" type="stmt" count="60"/>
      <line num="500" type="stmt" count="60"/>
      <line num="501" type="stmt" count="60"/>
      <line num="508" type="method" name="removeInteractiveTools" visibility="public" complexity="1" crap="2" 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="513" type="stmt" count="0"/>
      <line num="514" type="stmt" count="0"/>
      <line num="515" type="stmt" count="0"/>
      <line num="516" type="stmt" count="0"/>
      <line num="522" type="method" name="postprocessTopicSubscription" visibility="public" complexity="18" crap="18.12" count="60"/>
      <line num="527" type="stmt" count="60"/>
      <line num="528" type="stmt" count="18"/>
      <line num="531" type="stmt" count="42"/>
      <line num="533" type="stmt" count="42"/>
      <line num="534" type="stmt" count="42"/>
      <line num="535" type="stmt" count="42"/>
      <line num="536" type="stmt" count="42"/>
      <line num="537" type="stmt" count="42"/>
      <line num="538" type="stmt" count="42"/>
      <line num="539" type="stmt" count="42"/>
      <line num="540" type="stmt" count="42"/>
      <line num="544" type="stmt" count="42"/>
      <line num="545" type="stmt" count="42"/>
      <line num="546" type="stmt" count="42"/>
      <line num="548" type="stmt" count="42"/>
      <line num="550" type="stmt" count="42"/>
      <line num="551" type="stmt" count="42"/>
      <line num="552" type="stmt" count="42"/>
      <line num="553" type="stmt" count="42"/>
      <line num="554" type="stmt" count="42"/>
      <line num="555" type="stmt" count="42"/>
      <line num="556" type="stmt" count="42"/>
      <line num="557" type="stmt" count="0"/>
      <line num="560" type="stmt" count="42"/>
      <line num="561" type="stmt" count="42"/>
      <line num="564" type="stmt" count="42"/>
      <line num="565" type="stmt" count="42"/>
      <line num="566" type="stmt" count="42"/>
      <line num="567" type="stmt" count="42"/>
      <line num="568" type="stmt" count="42"/>
      <line num="569" type="stmt" count="42"/>
      <line num="570" type="stmt" count="42"/>
      <line num="571" type="stmt" count="42"/>
      <line num="572" type="stmt" count="42"/>
      <line num="573" type="stmt" count="42"/>
      <line num="576" type="stmt" count="42"/>
      <line num="577" type="stmt" count="42"/>
      <line num="578" type="stmt" count="42"/>
      <line num="579" type="stmt" count="42"/>
      <line num="580" type="stmt" count="42"/>
      <line num="581" type="stmt" count="42"/>
      <line num="582" type="stmt" count="42"/>
      <line num="584" type="stmt" count="42"/>
      <line num="586" type="stmt" count="42"/>
      <line num="587" type="stmt" count="42"/>
      <line num="589" type="stmt" count="42"/>
      <line num="590" type="stmt" count="42"/>
      <line num="591" type="stmt" count="42"/>
      <line num="592" type="stmt" count="42"/>
      <line num="593" type="stmt" count="42"/>
      <line num="595" type="stmt" count="42"/>
      <line num="596" type="stmt" count="42"/>
      <line num="599" type="stmt" count="42"/>
      <line num="600" type="stmt" count="14"/>
      <line num="601" type="stmt" count="14"/>
      <line num="602" type="stmt" count="14"/>
      <line num="603" type="stmt" count="14"/>
      <line num="604" type="stmt" count="14"/>
      <line num="606" type="stmt" count="14"/>
      <line num="607" type="stmt" count="14"/>
      <line num="608" type="stmt" count="14"/>
      <line num="609" type="stmt" count="14"/>
      <line num="610" type="stmt" count="14"/>
      <line num="611" type="stmt" count="14"/>
      <line num="612" type="stmt" count="14"/>
      <line num="613" type="stmt" count="0"/>
      <line num="614" type="stmt" count="14"/>
      <line num="615" type="stmt" count="14"/>
      <line num="616" type="stmt" count="14"/>
      <line num="617" type="stmt" count="14"/>
      <line num="618" type="stmt" count="0"/>
      <line num="619" type="stmt" count="14"/>
      <line num="620" type="stmt" count="14"/>
      <line num="622" type="stmt" count="14"/>
      <line num="623" type="stmt" count="0"/>
      <line num="626" type="stmt" count="14"/>
      <line num="628" type="stmt" count="14"/>
      <line num="630" type="stmt" count="28"/>
      <line num="631" type="stmt" count="28"/>
      <line num="632" type="stmt" count="28"/>
      <line num="633" type="stmt" count="28"/>
      <line num="634" type="stmt" count="28"/>
      <line num="635" type="stmt" count="28"/>
      <line num="636" type="stmt" count="28"/>
      <line num="637" type="stmt" count="0"/>
      <line num="638" type="stmt" count="28"/>
      <line num="639" type="stmt" count="28"/>
      <line num="640" type="stmt" count="28"/>
      <line num="641" type="stmt" count="0"/>
      <line num="642" type="stmt" count="28"/>
      <line num="643" type="stmt" count="28"/>
      <line num="644" type="stmt" count="28"/>
      <line num="645" type="stmt" count="28"/>
      <line num="647" type="stmt" count="28"/>
      <line num="648" type="stmt" count="0"/>
      <line num="651" type="stmt" count="28"/>
      <line num="653" type="stmt" count="42"/>
      <line num="654" type="stmt" count="42"/>
      <line num="660" type="method" name="removeTopicSubscription" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="661" type="stmt" count="0"/>
      <line num="662" type="stmt" count="0"/>
      <line num="663" type="stmt" count="0"/>
      <line num="664" type="stmt" count="0"/>
      <line num="670" type="method" name="postprocessReplyTool" visibility="public" complexity="4" crap="4" count="60"/>
      <line num="674" type="stmt" count="60"/>
      <line num="676" type="stmt" count="60"/>
      <line num="678" type="stmt" count="60"/>
      <line num="679" type="stmt" count="60"/>
      <line num="681" type="stmt" count="60"/>
      <line num="682" type="stmt" count="60"/>
      <line num="683" type="stmt" count="60"/>
      <line num="684" type="stmt" count="60"/>
      <line num="685" type="stmt" count="60"/>
      <line num="686" type="stmt" count="51"/>
      <line num="688" type="stmt" count="34"/>
      <line num="689" type="stmt" count="34"/>
      <line num="690" type="stmt" count="34"/>
      <line num="691" type="stmt" count="34"/>
      <line num="692" type="stmt" count="34"/>
      <line num="693" type="stmt" count="34"/>
      <line num="694" type="stmt" count="34"/>
      <line num="695" type="stmt" count="34"/>
      <line num="696" type="stmt" count="34"/>
      <line num="698" type="stmt" count="34"/>
      <line num="701" type="stmt" count="17"/>
      <line num="702" type="stmt" count="17"/>
      <line num="703" type="stmt" count="17"/>
      <line num="704" type="stmt" count="17"/>
      <line num="706" type="stmt" count="17"/>
      <line num="707" type="stmt" count="17"/>
      <line num="709" type="stmt" count="17"/>
      <line num="711" type="stmt" count="60"/>
      <line num="712" type="stmt" count="60"/>
      <line num="718" type="method" name="removeReplyTool" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="719" type="stmt" count="0"/>
      <line num="720" type="stmt" count="0"/>
      <line num="721" type="stmt" count="0"/>
      <line num="722" type="stmt" count="0"/>
      <line num="728" type="method" name="postprocessTimestampLinks" visibility="public" complexity="1" crap="1" count="60"/>
      <line num="731" type="stmt" count="60"/>
      <line num="732" type="stmt" count="60"/>
      <line num="734" type="stmt" count="60"/>
      <line num="735" type="stmt" count="60"/>
      <line num="736" type="stmt" count="60"/>
      <line num="737" type="stmt" count="51"/>
      <line num="738" type="stmt" count="51"/>
      <line num="740" type="stmt" count="51"/>
      <line num="741" type="stmt" count="51"/>
      <line num="742" type="stmt" count="51"/>
      <line num="743" type="stmt" count="51"/>
      <line num="744" type="stmt" count="51"/>
      <line num="745" type="stmt" count="51"/>
      <line num="746" type="stmt" count="51"/>
      <line num="747" type="stmt" count="60"/>
      <line num="748" type="stmt" count="60"/>
      <line num="757" type="method" name="metaLabel" visibility="private" complexity="1" crap="1" count="42"/>
      <line num="758" type="stmt" count="42"/>
      <line num="759" type="stmt" count="42"/>
      <line num="760" type="stmt" count="42"/>
      <line num="769" type="method" name="getJsonArrayForCommentMarker" visibility="private" complexity="3" crap="3" count="51"/>
      <line num="773" type="stmt" count="51"/>
      <line num="774" type="stmt" count="51"/>
      <line num="775" type="stmt" count="51"/>
      <line num="776" type="stmt" count="51"/>
      <line num="777" type="stmt" count="51"/>
      <line num="778" type="stmt" count="51"/>
      <line num="779" type="stmt" count="51"/>
      <line num="780" type="stmt" count="51"/>
      <line num="781" type="stmt" count="42"/>
      <line num="784" type="stmt" count="51"/>
      <line num="787" type="method" name="getJsonForHeadingMarker" visibility="private" complexity="1" crap="1" count="51"/>
      <line num="788" type="stmt" count="51"/>
      <line num="789" type="stmt" count="51"/>
      <line num="790" type="stmt" count="51"/>
      <line num="791" type="stmt" count="51"/>
      <line num="801" type="method" name="getSignatureRelativeTime" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="805" type="stmt" count="0"/>
      <line num="806" type="stmt" count="0"/>
      <line num="808" type="stmt" count="0"/>
      <line num="810" type="stmt" count="0"/>
      <line num="811" type="stmt" count="0"/>
      <line num="813" type="stmt" count="0"/>
      <line num="819" type="method" name="postprocessVisualEnhancements" visibility="public" complexity="8" crap="8" count="60"/>
      <line num="823" type="stmt" count="60"/>
      <line num="824" type="stmt" count="60"/>
      <line num="825" type="stmt" count="60"/>
      <line num="826" type="stmt" count="60"/>
      <line num="827" type="stmt" count="60"/>
      <line num="828" type="stmt" count="42"/>
      <line num="829" type="stmt" count="42"/>
      <line num="830" type="stmt" count="42"/>
      <line num="831" type="stmt" count="42"/>
      <line num="832" type="stmt" count="42"/>
      <line num="833" type="stmt" count="42"/>
      <line num="834" type="stmt" count="42"/>
      <line num="835" type="stmt" count="42"/>
      <line num="836" type="stmt" count="42"/>
      <line num="837" type="stmt" count="42"/>
      <line num="839" type="stmt" count="42"/>
      <line num="840" type="stmt" count="42"/>
      <line num="841" type="stmt" count="42"/>
      <line num="843" type="stmt" count="42"/>
      <line num="844" type="stmt" count="42"/>
      <line num="845" type="stmt" count="42"/>
      <line num="846" type="stmt" count="42"/>
      <line num="848" type="stmt" count="60"/>
      <line num="849" type="stmt" count="60"/>
      <line num="850" type="stmt" count="60"/>
      <line num="851" type="stmt" count="60"/>
      <line num="852" type="stmt" count="60"/>
      <line num="853" type="stmt" count="42"/>
      <line num="854" type="stmt" count="42"/>
      <line num="855" type="stmt" count="42"/>
      <line num="856" type="stmt" count="42"/>
      <line num="857" type="stmt" count="42"/>
      <line num="858" type="stmt" count="42"/>
      <line num="859" type="stmt" count="42"/>
      <line num="860" type="stmt" count="42"/>
      <line num="861" type="stmt" count="42"/>
      <line num="862" type="stmt" count="60"/>
      <line num="863" type="stmt" count="60"/>
      <line num="864" type="stmt" count="60"/>
      <line num="865" type="stmt" count="60"/>
      <line num="866" type="stmt" count="60"/>
      <line num="867" type="stmt" count="42"/>
      <line num="868" type="stmt" count="42"/>
      <line num="869" type="stmt" count="42"/>
      <line num="870" type="stmt" count="42"/>
      <line num="871" type="stmt" count="42"/>
      <line num="872" type="stmt" count="42"/>
      <line num="873" type="stmt" count="42"/>
      <line num="874" type="stmt" count="42"/>
      <line num="875" type="stmt" count="42"/>
      <line num="876" type="stmt" count="60"/>
      <line num="877" type="stmt" count="60"/>
      <line num="878" type="stmt" count="60"/>
      <line num="879" type="stmt" count="60"/>
      <line num="880" type="stmt" count="60"/>
      <line num="881" type="stmt" count="60"/>
      <line num="882" type="stmt" count="60"/>
      <line num="885" type="stmt" count="60"/>
      <line num="886" type="stmt" count="60"/>
      <line num="887" type="stmt" count="60"/>
      <line num="890" type="stmt" count="34"/>
      <line num="892" type="stmt" count="54"/>
      <line num="893" type="stmt" count="54"/>
      <line num="895" type="stmt" count="54"/>
      <line num="896" type="stmt" count="54"/>
      <line num="897" type="stmt" count="54"/>
      <line num="898" type="stmt" count="54"/>
      <line num="899" type="stmt" count="54"/>
      <line num="900" type="stmt" count="54"/>
      <line num="902" type="stmt" count="54"/>
      <line num="903" type="stmt" count="54"/>
      <line num="904" type="stmt" count="54"/>
      <line num="905" type="stmt" count="54"/>
      <line num="906" type="stmt" count="3"/>
      <line num="907" type="stmt" count="54"/>
      <line num="908" type="stmt" count="54"/>
      <line num="911" type="stmt" count="54"/>
      <line num="913" type="stmt" count="54"/>
      <line num="916" type="stmt" count="54"/>
      <line num="917" type="stmt" count="54"/>
      <line num="918" type="stmt" count="54"/>
      <line num="919" type="stmt" count="54"/>
      <line num="920" type="stmt" count="54"/>
      <line num="921" type="stmt" count="54"/>
      <line num="922" type="stmt" count="54"/>
      <line num="923" type="stmt" count="54"/>
      <line num="924" type="stmt" count="54"/>
      <line num="925" type="stmt" count="54"/>
      <line num="926" type="stmt" count="54"/>
      <line num="927" type="stmt" count="54"/>
      <line num="928" type="stmt" count="54"/>
      <line num="930" type="stmt" count="0"/>
      <line num="932" type="stmt" count="60"/>
      <line num="933" type="stmt" count="60"/>
      <line num="939" type="method" name="removeVisualEnhancements" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="940" type="stmt" count="0"/>
      <line num="941" type="stmt" count="0"/>
      <line num="942" type="stmt" count="0"/>
      <line num="943" type="stmt" count="0"/>
      <line num="944" type="stmt" count="0"/>
      <line num="945" type="stmt" count="0"/>
      <line num="946" type="stmt" count="0"/>
      <line num="947" type="stmt" count="0"/>
      <line num="948" type="stmt" count="0"/>
      <line num="956" type="method" name="postprocessVisualEnhancementsSubtitle" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="959" type="stmt" count="0"/>
      <line num="960" type="stmt" count="0"/>
      <line num="961" type="stmt" count="0"/>
      <line num="962" type="stmt" count="0"/>
      <line num="963" type="stmt" count="0"/>
      <line num="964" type="stmt" count="0"/>
      <line num="965" type="stmt" count="0"/>
      <line num="966" type="stmt" count="0"/>
      <line num="967" type="stmt" count="0"/>
      <line num="968" type="stmt" count="0"/>
      <line num="969" type="stmt" count="0"/>
      <line num="970" type="stmt" count="0"/>
      <line num="972" type="stmt" count="0"/>
      <line num="973" type="stmt" count="0"/>
      <line num="974" type="stmt" count="0"/>
      <line num="975" type="stmt" count="0"/>
      <line num="976" type="stmt" count="0"/>
      <line num="977" type="stmt" count="0"/>
      <line num="978" type="stmt" count="0"/>
      <line num="979" type="stmt" count="0"/>
      <line num="980" type="stmt" count="0"/>
      <line num="982" type="stmt" count="0"/>
      <line num="983" type="stmt" count="0"/>
      <line num="984" type="stmt" count="0"/>
      <line num="985" type="stmt" count="0"/>
      <line num="988" type="stmt" count="0"/>
      <line num="989" type="stmt" count="0"/>
      <line num="990" type="stmt" count="0"/>
      <line num="991" type="stmt" count="0"/>
      <line num="992" type="stmt" count="0"/>
      <line num="994" type="stmt" count="0"/>
      <line num="1000" type="method" name="postprocessTableOfContents" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="1003" type="stmt" count="0"/>
      <line num="1005" type="stmt" count="0"/>
      <line num="1006" type="stmt" count="0"/>
      <line num="1007" type="stmt" count="0"/>
      <line num="1008" type="stmt" count="0"/>
      <line num="1010" type="stmt" count="0"/>
      <line num="1011" type="stmt" count="0"/>
      <line num="1012" type="stmt" count="0"/>
      <line num="1013" type="stmt" count="0"/>
      <line num="1014" type="stmt" count="0"/>
      <line num="1015" type="stmt" count="0"/>
      <line num="1016" type="stmt" count="0"/>
      <line num="1018" type="stmt" count="0"/>
      <line num="1019" type="stmt" count="0"/>
      <line num="1020" type="stmt" count="0"/>
      <line num="1022" type="stmt" count="0"/>
      <line num="1026" type="stmt" count="0"/>
      <line num="1034" type="method" name="isEmptyTalkPage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="1035" type="stmt" count="0"/>
      <line num="1041" type="method" name="hasLedeContent" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="1042" type="stmt" count="0"/>
      <line num="1048" type="method" name="hasCommentsInLedeContent" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="1049" type="stmt" count="0"/>
      <line num="1057" type="method" name="isLanguageRequiringReplyIcon" visibility="public" complexity="5" crap="5.25" count="24"/>
      <line num="1058" type="stmt" count="24"/>
      <line num="1060" type="stmt" count="24"/>
      <line num="1061" type="stmt" count="24"/>
      <line num="1063" type="stmt" count="24"/>
      <line num="1065" type="stmt" count="0"/>
      <line num="1066" type="stmt" count="0"/>
      <line num="1067" type="stmt" count="0"/>
      <line num="1071" type="stmt" count="24"/>
      <line num="1072" type="stmt" count="3"/>
      <line num="1076" type="stmt" count="21"/>
      <line num="1077" type="stmt" count="21"/>
      <line num="1078" type="stmt" count="20"/>
      <line num="1079" type="stmt" count="2"/>
      <line num="1084" type="stmt" count="19"/>
      <metrics loc="1088" ncloc="897" classes="1" methods="27" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="566" coveredstatements="455" elements="593" coveredelements="465"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/CommentModifier.php">
      <class name="MediaWiki\Extension\DiscussionTools\CommentModifier" namespace="global">
        <metrics complexity="114" methods="19" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="265" coveredstatements="203" elements="284" coveredelements="212"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="28" type="method" name="whitespaceParsoidHack" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="38" type="method" name="sanitizeWikitextLinebreaks" visibility="public" complexity="1" crap="1" 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="52" type="method" name="addReplyLink" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="53" 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="5"/>
      <line num="69" type="stmt" count="5"/>
      <line num="84" type="method" name="addListItem" visibility="public" complexity="34" crap="34.17" count="27"/>
      <line num="85" type="stmt" 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="95" type="stmt" count="27"/>
      <line num="96" type="stmt" count="27"/>
      <line num="97" type="stmt" count="20"/>
      <line num="98" type="stmt" count="20"/>
      <line num="102" type="stmt" count="27"/>
      <line num="103" type="stmt" count="25"/>
      <line num="104" type="stmt" count="2"/>
      <line num="105" type="stmt" count="2"/>
      <line num="107" type="stmt" count="0"/>
      <line num="109" type="stmt" count="27"/>
      <line num="111" type="stmt" count="27"/>
      <line num="112" type="stmt" count="27"/>
      <line num="119" type="stmt" count="27"/>
      <line num="120" type="stmt" count="10"/>
      <line num="121" type="stmt" count="27"/>
      <line num="122" type="stmt" count="0"/>
      <line num="131" type="stmt" count="27"/>
      <line num="132" type="stmt" count="15"/>
      <line num="133" type="stmt" count="27"/>
      <line num="134" type="stmt" count="27"/>
      <line num="135" type="stmt" count="26"/>
      <line num="136" type="stmt" count="26"/>
      <line num="142" type="stmt" count="27"/>
      <line num="143" type="stmt" count="27"/>
      <line num="145" type="stmt" count="7"/>
      <line num="146" type="stmt" count="7"/>
      <line num="147" type="stmt" count="7"/>
      <line num="149" type="stmt" count="5"/>
      <line num="151" type="stmt" count="7"/>
      <line num="152" type="stmt" count="7"/>
      <line num="163" type="stmt" count="27"/>
      <line num="164" type="stmt" count="27"/>
      <line num="165" type="stmt" count="27"/>
      <line num="166" type="stmt" count="27"/>
      <line num="168" type="stmt" count="6"/>
      <line num="169" type="stmt" count="6"/>
      <line num="172" type="stmt" count="27"/>
      <line num="175" type="stmt" count="27"/>
      <line num="177" type="stmt" count="27"/>
      <line num="178" type="stmt" count="27"/>
      <line num="181" type="stmt" count="0"/>
      <line num="183" type="stmt" count="27"/>
      <line num="190" type="stmt" count="27"/>
      <line num="192" type="stmt" count="27"/>
      <line num="193" type="stmt" count="27"/>
      <line num="194" type="stmt" count="27"/>
      <line num="195" type="stmt" count="27"/>
      <line num="196" type="stmt" count="27"/>
      <line num="199" type="stmt" count="27"/>
      <line num="200" type="stmt" count="27"/>
      <line num="201" type="stmt" count="27"/>
      <line num="203" type="stmt" count="21"/>
      <line num="204" type="stmt" count="21"/>
      <line num="205" type="stmt" count="6"/>
      <line num="210" type="stmt" count="27"/>
      <line num="211" type="stmt" count="27"/>
      <line num="215" type="stmt" count="27"/>
      <line num="218" type="stmt" count="27"/>
      <line num="219" type="stmt" count="27"/>
      <line num="221" type="stmt" count="27"/>
      <line num="222" type="stmt" count="27"/>
      <line num="223" type="stmt" count="27"/>
      <line num="229" type="stmt" count="20"/>
      <line num="230" type="stmt" count="0"/>
      <line num="234" type="stmt" count="20"/>
      <line num="236" type="stmt" count="6"/>
      <line num="238" type="stmt" count="6"/>
      <line num="241" type="stmt" count="6"/>
      <line num="242" type="stmt" count="6"/>
      <line num="246" type="stmt" count="20"/>
      <line num="247" type="stmt" count="20"/>
      <line num="250" type="stmt" count="20"/>
      <line num="251" type="stmt" count="20"/>
      <line num="253" type="stmt" count="20"/>
      <line num="256" type="stmt" count="20"/>
      <line num="257" type="stmt" count="17"/>
      <line num="259" type="stmt" count="17"/>
      <line num="265" type="stmt" count="12"/>
      <line num="267" type="stmt" count="7"/>
      <line num="269" type="stmt" count="7"/>
      <line num="272" type="stmt" count="7"/>
      <line num="273" type="stmt" count="7"/>
      <line num="277" type="stmt" count="12"/>
      <line num="278" type="stmt" count="12"/>
      <line num="281" type="stmt" count="12"/>
      <line num="285" type="stmt" count="12"/>
      <line num="288" type="stmt" count="12"/>
      <line num="289" type="stmt" count="12"/>
      <line num="293" type="stmt" count="27"/>
      <line num="294" type="stmt" count="0"/>
      <line num="297" type="stmt" count="27"/>
      <line num="308" type="method" name="allOfType" visibility="private" complexity="4" crap="4" count="1"/>
      <line num="309" type="stmt" count="1"/>
      <line num="310" type="stmt" count="1"/>
      <line num="311" type="stmt" count="1"/>
      <line num="312" type="stmt" count="1"/>
      <line num="313" type="stmt" count="1"/>
      <line num="315" type="stmt" count="1"/>
      <line num="318" type="stmt" count="1"/>
      <line num="328" type="method" name="unwrapFragment" visibility="public" complexity="12" crap="14.25" count="1"/>
      <line num="330" type="stmt" count="1"/>
      <line num="331" type="stmt" count="1"/>
      <line num="332" type="stmt" count="0"/>
      <line num="333" type="stmt" count="1"/>
      <line num="334" type="stmt" count="0"/>
      <line num="336" type="stmt" count="1"/>
      <line num="337" type="stmt" count="0"/>
      <line num="338" type="stmt" count="0"/>
      <line num="340" type="stmt" count="0"/>
      <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="350" type="stmt" count="1"/>
      <line num="351" type="stmt" count="1"/>
      <line num="352" type="stmt" count="1"/>
      <line num="353" type="stmt" count="1"/>
      <line num="356" type="stmt" count="1"/>
      <line num="357" type="stmt" count="1"/>
      <line num="358" type="stmt" count="1"/>
      <line num="374" type="method" name="unwrapList" visibility="public" complexity="14" crap="14" count="12"/>
      <line num="376" type="stmt" count="12"/>
      <line num="377" type="stmt" count="12"/>
      <line num="378" type="stmt" count="12"/>
      <line num="379" type="stmt" count="12"/>
      <line num="380" type="stmt" count="12"/>
      <line num="383" type="stmt" count="3"/>
      <line num="387" type="stmt" count="10"/>
      <line num="388" type="stmt" count="1"/>
      <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="395" type="stmt" count="9"/>
      <line num="397" type="stmt" count="9"/>
      <line num="398" type="stmt" count="9"/>
      <line num="401" type="stmt" count="8"/>
      <line num="402" type="stmt" count="3"/>
      <line num="403" type="stmt" count="2"/>
      <line num="404" type="stmt" count="2"/>
      <line num="405" type="stmt" count="2"/>
      <line num="407" type="stmt" count="3"/>
      <line num="408" type="stmt" count="3"/>
      <line num="409" type="stmt" count="3"/>
      <line num="410" type="stmt" count="3"/>
      <line num="412" type="stmt" count="7"/>
      <line num="415" type="stmt" count="9"/>
      <line num="416" type="stmt" count="6"/>
      <line num="417" type="stmt" count="6"/>
      <line num="418" type="stmt" count="6"/>
      <line num="420" type="stmt" count="9"/>
      <line num="423" 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="430" type="stmt" count="9"/>
      <line num="436" type="method" name="addSiblingListItem" visibility="public" complexity="1" crap="2" 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="445" type="method" name="createWikitextNode" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="446" type="stmt" count="6"/>
      <line num="448" type="stmt" count="6"/>
      <line num="449" type="stmt" count="6"/>
      <line num="451" type="stmt" count="6"/>
      <line num="457" type="method" name="isWikitextNodeListItem" visibility="private" complexity="3" crap="3" count="2"/>
      <line num="458" type="stmt" count="2"/>
      <line num="459" type="stmt" count="2"/>
      <line num="460" type="stmt" count="2"/>
      <line num="461" type="stmt" count="2"/>
      <line num="467" type="method" name="appendSignature" visibility="public" complexity="8" crap="8" count="6"/>
      <line num="468" type="stmt" count="6"/>
      <line num="473" type="stmt" count="6"/>
      <line num="475" type="stmt" count="6"/>
      <line num="476" type="stmt" count="6"/>
      <line num="478" type="stmt" count="6"/>
      <line num="482" type="stmt" count="6"/>
      <line num="483" type="stmt" count="6"/>
      <line num="484" type="stmt" count="6"/>
      <line num="487" type="stmt" count="3"/>
      <line num="491" type="stmt" count="6"/>
      <line num="492" type="stmt" count="4"/>
      <line num="495" type="stmt" count="6"/>
      <line num="496" type="stmt" count="6"/>
      <line num="497" type="stmt" count="6"/>
      <line num="498" type="stmt" count="6"/>
      <line num="499" type="stmt" count="6"/>
      <line num="500" type="stmt" count="6"/>
      <line num="506" type="method" name="appendSignatureWikitext" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="507" type="stmt" count="1"/>
      <line num="509" type="stmt" count="1"/>
      <line num="510" type="stmt" count="1"/>
      <line num="513" type="stmt" count="1"/>
      <line num="514" type="stmt" count="1"/>
      <line num="516" type="stmt" count="1"/>
      <line num="519" type="stmt" count="1"/>
      <line num="528" type="method" name="addReply" visibility="public" complexity="7" crap="56" count="0"/>
      <line num="529" type="stmt" count="0"/>
      <line num="530" type="stmt" count="0"/>
      <line num="531" type="stmt" count="0"/>
      <line num="533" type="stmt" count="0"/>
      <line num="539" type="stmt" count="0"/>
      <line num="540" type="stmt" count="0"/>
      <line num="541" type="stmt" count="0"/>
      <line num="543" type="stmt" count="0"/>
      <line num="549" type="stmt" count="0"/>
      <line num="550" type="stmt" count="0"/>
      <line num="551" type="stmt" count="0"/>
      <line num="552" type="stmt" count="0"/>
      <line num="554" type="stmt" count="0"/>
      <line num="557" type="stmt" count="0"/>
      <line num="568" type="method" name="transferReply" visibility="public" complexity="8" crap="72" count="0"/>
      <line num="569" type="stmt" count="0"/>
      <line num="570" type="stmt" count="0"/>
      <line num="571" type="stmt" count="0"/>
      <line num="573" type="stmt" count="0"/>
      <line num="576" type="stmt" count="0"/>
      <line num="577" type="stmt" count="0"/>
      <line num="578" type="stmt" count="0"/>
      <line num="582" type="stmt" count="0"/>
      <line num="583" type="stmt" count="0"/>
      <line num="584" type="stmt" count="0"/>
      <line num="585" type="stmt" count="0"/>
      <line num="587" type="stmt" count="0"/>
      <line num="589" type="stmt" count="0"/>
      <line num="590" type="stmt" count="0"/>
      <line num="592" type="stmt" count="0"/>
      <line num="602" type="method" name="prepareWikitextReply" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="603" type="stmt" count="0"/>
      <line num="605" type="stmt" count="0"/>
      <line num="607" type="stmt" count="0"/>
      <line num="608" type="stmt" count="0"/>
      <line num="609" type="stmt" count="0"/>
      <line num="610" type="stmt" count="0"/>
      <line num="611" type="stmt" count="0"/>
      <line num="614" type="stmt" count="0"/>
      <line num="624" type="method" name="prepareHtmlReply" visibility="public" complexity="8" crap="8" count="4"/>
      <line num="625" type="stmt" count="4"/>
      <line num="632" type="stmt" count="4"/>
      <line num="633" type="stmt" count="4"/>
      <line num="635" type="stmt" count="4"/>
      <line num="636" type="stmt" count="4"/>
      <line num="638" type="stmt" count="4"/>
      <line num="639" type="stmt" count="4"/>
      <line num="641" type="stmt" count="4"/>
      <line num="642" type="stmt" count="4"/>
      <line num="644" type="stmt" count="3"/>
      <line num="648" type="stmt" count="4"/>
      <line num="658" type="method" name="addWikitextReply" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="661" type="stmt" count="0"/>
      <line num="662" type="stmt" count="0"/>
      <line num="663" type="stmt" count="0"/>
      <line num="664" type="stmt" count="0"/>
      <line num="666" type="stmt" count="0"/>
      <line num="676" type="method" name="addHtmlReply" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="679" type="stmt" count="0"/>
      <line num="680" type="stmt" count="0"/>
      <line num="681" type="stmt" count="0"/>
      <line num="682" type="stmt" count="0"/>
      <line num="684" type="stmt" count="0"/>
      <metrics loc="687" ncloc="476" classes="1" methods="19" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="265" coveredstatements="203" elements="284" coveredelements="212"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/CommentParser.php">
      <class name="MediaWiki\Extension\DiscussionTools\CommentParser" namespace="global">
        <metrics complexity="247" methods="26" coveredmethods="17" conditionals="0" coveredconditionals="0" statements="690" coveredstatements="649" elements="716" coveredelements="666"/>
      </class>
      <line num="55" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="53"/>
      <line num="62" type="stmt" count="53"/>
      <line num="63" type="stmt" count="53"/>
      <line num="64" type="stmt" count="53"/>
      <line num="65" type="stmt" count="53"/>
      <line num="66" type="stmt" count="53"/>
      <line num="67" type="stmt" count="53"/>
      <line num="68" type="stmt" count="53"/>
      <line num="77" type="method" name="parse" visibility="public" complexity="1" crap="1" count="35"/>
      <line num="78" type="stmt" count="35"/>
      <line num="79" type="stmt" count="35"/>
      <line num="81" type="stmt" count="35"/>
      <line num="82" type="stmt" count="35"/>
      <line num="83" type="stmt" count="35"/>
      <line num="85" type="stmt" count="35"/>
      <line num="99" type="method" name="nextInterestingLeafNode" visibility="private" complexity="8" crap="8" count="35"/>
      <line num="100" type="stmt" count="35"/>
      <line num="101" type="stmt" count="35"/>
      <line num="102" type="stmt" count="35"/>
      <line num="103" type="stmt" count="35"/>
      <line num="104" type="stmt" count="35"/>
      <line num="106" type="stmt" count="35"/>
      <line num="107" type="stmt" count="34"/>
      <line num="110" type="stmt" count="35"/>
      <line num="111" type="stmt" count="12"/>
      <line num="114" type="stmt" count="35"/>
      <line num="115" type="stmt" count="1"/>
      <line num="117" type="stmt" count="35"/>
      <line num="118" type="stmt" count="35"/>
      <line num="120" type="stmt" count="35"/>
      <line num="121" type="stmt" count="35"/>
      <line num="122" type="stmt" count="35"/>
      <line num="123" type="stmt" count="35"/>
      <line num="124" type="stmt" count="34"/>
      <line num="126" type="stmt" count="35"/>
      <line num="127" type="stmt" count="35"/>
      <line num="128" type="stmt" count="0"/>
      <line num="130" type="stmt" count="35"/>
      <line num="137" type="method" name="regexpAlternateGroup" visibility="private" complexity="1" crap="1" count="49"/>
      <line num="138" type="stmt" count="49"/>
      <line num="139" type="stmt" count="49"/>
      <line num="140" type="stmt" count="49"/>
      <line num="141" type="stmt" count="49"/>
      <line num="151" type="method" name="getMessages" visibility="private" complexity="1" crap="1" count="49"/>
      <line num="152" type="stmt" count="49"/>
      <line num="153" type="stmt" count="49"/>
      <line num="154" type="stmt" count="49"/>
      <line num="155" type="stmt" count="49"/>
      <line num="173" type="method" name="getTimestampRegexp" visibility="private" complexity="31" crap="32.45" count="49"/>
      <line num="176" type="stmt" count="49"/>
      <line num="177" type="stmt" count="49"/>
      <line num="178" type="stmt" count="49"/>
      <line num="180" type="stmt" count="49"/>
      <line num="181" type="stmt" count="49"/>
      <line num="182" type="stmt" count="49"/>
      <line num="183" type="stmt" count="49"/>
      <line num="184" type="stmt" count="10"/>
      <line num="186" type="stmt" count="49"/>
      <line num="187" type="stmt" count="1"/>
      <line num="191" type="stmt" count="49"/>
      <line num="192" type="stmt" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="194" type="stmt" count="49"/>
      <line num="195" type="stmt" count="8"/>
      <line num="196" type="stmt" count="8"/>
      <line num="197" type="stmt" count="8"/>
      <line num="198" type="stmt" count="8"/>
      <line num="199" type="stmt" count="49"/>
      <line num="200" type="stmt" count="1"/>
      <line num="201" type="stmt" count="1"/>
      <line num="202" type="stmt" count="49"/>
      <line num="203" type="stmt" count="1"/>
      <line num="204" type="stmt" count="1"/>
      <line num="205" type="stmt" count="49"/>
      <line num="206" type="stmt" count="1"/>
      <line num="207" type="stmt" count="1"/>
      <line num="208" type="stmt" count="1"/>
      <line num="209" type="stmt" count="1"/>
      <line num="210" type="stmt" count="49"/>
      <line num="211" type="stmt" count="48"/>
      <line num="212" type="stmt" count="48"/>
      <line num="213" type="stmt" count="49"/>
      <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="49"/>
      <line num="219" type="stmt" count="28"/>
      <line num="220" type="stmt" count="28"/>
      <line num="221" type="stmt" count="28"/>
      <line num="222" type="stmt" count="28"/>
      <line num="223" type="stmt" count="49"/>
      <line num="224" type="stmt" count="11"/>
      <line num="225" type="stmt" count="11"/>
      <line num="226" type="stmt" count="11"/>
      <line num="227" type="stmt" count="11"/>
      <line num="228" type="stmt" count="49"/>
      <line num="229" type="stmt" count="1"/>
      <line num="230" type="stmt" count="1"/>
      <line num="231" type="stmt" count="49"/>
      <line num="232" type="stmt" count="1"/>
      <line num="233" type="stmt" count="1"/>
      <line num="234" type="stmt" count="49"/>
      <line num="235" type="stmt" count="48"/>
      <line num="236" type="stmt" count="48"/>
      <line num="237" type="stmt" count="49"/>
      <line num="238" type="stmt" count="1"/>
      <line num="239" type="stmt" count="1"/>
      <line num="240" type="stmt" count="49"/>
      <line num="241" type="stmt" count="0"/>
      <line num="242" type="stmt" count="0"/>
      <line num="243" type="stmt" count="49"/>
      <line num="244" type="stmt" count="49"/>
      <line num="245" type="stmt" count="49"/>
      <line num="246" type="stmt" count="49"/>
      <line num="247" type="stmt" count="49"/>
      <line num="248" type="stmt" count="49"/>
      <line num="249" type="stmt" count="49"/>
      <line num="250" type="stmt" count="1"/>
      <line num="251" type="stmt" count="1"/>
      <line num="252" type="stmt" count="49"/>
      <line num="254" type="stmt" count="1"/>
      <line num="255" type="stmt" count="1"/>
      <line num="257" type="stmt" count="0"/>
      <line num="259" type="stmt" count="1"/>
      <line num="260" type="stmt" count="49"/>
      <line num="262" type="stmt" count="2"/>
      <line num="263" type="stmt" count="2"/>
      <line num="264" type="stmt" count="2"/>
      <line num="266" type="stmt" count="0"/>
      <line num="268" type="stmt" count="2"/>
      <line num="269" type="stmt" count="2"/>
      <line num="273" type="stmt" count="0"/>
      <line num="275" type="stmt" count="2"/>
      <line num="278" type="stmt" count="49"/>
      <line num="279" type="stmt" count="49"/>
      <line num="280" type="stmt" count="49"/>
      <line num="282" type="stmt" count="49"/>
      <line num="283" type="stmt" count="49"/>
      <line num="284" type="stmt" count="1"/>
      <line num="285" type="stmt" count="1"/>
      <line num="287" type="stmt" count="48"/>
      <line num="291" type="stmt" count="49"/>
      <line num="294" type="stmt" count="49"/>
      <line num="299" type="stmt" count="49"/>
      <line num="314" type="method" name="getTimestampParser" visibility="private" complexity="52" crap="52.68" count="43"/>
      <line num="317" type="stmt" count="43"/>
      <line num="318" type="stmt" count="43"/>
      <line num="319" type="stmt" count="43"/>
      <line num="321" type="stmt" count="43"/>
      <line num="322" type="stmt" count="43"/>
      <line num="323" type="stmt" count="43"/>
      <line num="324" type="stmt" count="43"/>
      <line num="325" type="stmt" count="43"/>
      <line num="326" type="stmt" count="7"/>
      <line num="328" type="stmt" count="43"/>
      <line num="329" type="stmt" count="1"/>
      <line num="333" type="stmt" count="43"/>
      <line num="334" type="stmt" count="43"/>
      <line num="335" type="stmt" count="0"/>
      <line num="336" type="stmt" count="43"/>
      <line num="337" type="stmt" count="43"/>
      <line num="338" type="stmt" count="43"/>
      <line num="339" type="stmt" count="43"/>
      <line num="340" type="stmt" count="43"/>
      <line num="341" type="stmt" count="43"/>
      <line num="342" type="stmt" count="43"/>
      <line num="343" type="stmt" count="43"/>
      <line num="344" type="stmt" count="43"/>
      <line num="345" type="stmt" count="43"/>
      <line num="346" type="stmt" count="43"/>
      <line num="347" type="stmt" count="43"/>
      <line num="348" type="stmt" count="43"/>
      <line num="349" type="stmt" count="43"/>
      <line num="350" type="stmt" count="43"/>
      <line num="351" type="stmt" count="43"/>
      <line num="352" type="stmt" count="43"/>
      <line num="353" type="stmt" count="43"/>
      <line num="355" type="stmt" count="0"/>
      <line num="356" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="359" type="stmt" count="43"/>
      <line num="361" type="stmt" count="1"/>
      <line num="362" type="stmt" count="1"/>
      <line num="363" type="stmt" count="1"/>
      <line num="364" type="stmt" count="1"/>
      <line num="367" type="stmt" count="1"/>
      <line num="369" type="stmt" count="43"/>
      <line num="373" type="stmt" count="43"/>
      <line num="374" type="stmt" count="43"/>
      <line num="375" type="stmt" count="43"/>
      <line num="376" type="stmt" count="43"/>
      <line num="378" type="stmt" count="39"/>
      <line num="380" type="stmt" count="43"/>
      <line num="381" type="stmt" count="43"/>
      <line num="382" type="stmt" count="43"/>
      <line num="383" type="stmt" count="43"/>
      <line num="384" type="stmt" count="43"/>
      <line num="385" type="stmt" count="43"/>
      <line num="386" type="stmt" count="43"/>
      <line num="388" type="stmt" count="43"/>
      <line num="389" type="stmt" count="7"/>
      <line num="390" type="stmt" count="7"/>
      <line num="391" type="stmt" count="7"/>
      <line num="392" type="stmt" count="7"/>
      <line num="393" type="stmt" count="7"/>
      <line num="394" type="stmt" count="7"/>
      <line num="395" type="stmt" count="43"/>
      <line num="396" type="stmt" count="43"/>
      <line num="397" type="stmt" count="43"/>
      <line num="398" type="stmt" count="43"/>
      <line num="399" type="stmt" count="43"/>
      <line num="400" type="stmt" count="43"/>
      <line num="402" type="stmt" count="1"/>
      <line num="403" type="stmt" count="43"/>
      <line num="404" type="stmt" count="22"/>
      <line num="405" type="stmt" count="22"/>
      <line num="406" type="stmt" count="22"/>
      <line num="407" type="stmt" count="22"/>
      <line num="408" type="stmt" count="22"/>
      <line num="409" type="stmt" count="22"/>
      <line num="410" type="stmt" count="43"/>
      <line num="411" type="stmt" count="11"/>
      <line num="412" type="stmt" count="11"/>
      <line num="413" type="stmt" count="11"/>
      <line num="414" type="stmt" count="11"/>
      <line num="415" type="stmt" count="11"/>
      <line num="416" type="stmt" count="11"/>
      <line num="417" type="stmt" count="43"/>
      <line num="418" type="stmt" count="43"/>
      <line num="419" type="stmt" count="3"/>
      <line num="420" type="stmt" count="3"/>
      <line num="421" type="stmt" count="43"/>
      <line num="422" type="stmt" count="42"/>
      <line num="423" type="stmt" count="42"/>
      <line num="424" type="stmt" count="42"/>
      <line num="426" type="stmt" count="1"/>
      <line num="427" type="stmt" count="1"/>
      <line num="428" type="stmt" count="42"/>
      <line num="429" type="stmt" count="42"/>
      <line num="430" type="stmt" count="42"/>
      <line num="431" type="stmt" count="42"/>
      <line num="432" type="stmt" count="42"/>
      <line num="433" type="stmt" count="42"/>
      <line num="434" type="stmt" count="42"/>
      <line num="435" type="stmt" count="0"/>
      <line num="437" type="stmt" count="0"/>
      <line num="439" type="stmt" count="0"/>
      <line num="444" type="stmt" count="43"/>
      <line num="448" type="stmt" count="43"/>
      <line num="450" type="stmt" count="43"/>
      <line num="451" type="stmt" count="43"/>
      <line num="452" type="stmt" count="43"/>
      <line num="458" type="stmt" count="43"/>
      <line num="459" type="stmt" count="43"/>
      <line num="460" type="stmt" count="2"/>
      <line num="461" type="stmt" count="2"/>
      <line num="463" type="stmt" count="0"/>
      <line num="466" type="stmt" count="2"/>
      <line num="468" type="stmt" count="2"/>
      <line num="469" type="stmt" count="1"/>
      <line num="470" type="stmt" count="1"/>
      <line num="472" type="stmt" count="1"/>
      <line num="477" type="stmt" count="43"/>
      <line num="478" type="stmt" count="43"/>
      <line num="485" type="stmt" count="43"/>
      <line num="486" type="stmt" count="1"/>
      <line num="487" type="stmt" count="1"/>
      <line num="490" type="stmt" count="43"/>
      <line num="491" type="stmt" count="43"/>
      <line num="492" type="stmt" count="43"/>
      <line num="493" type="stmt" count="43"/>
      <line num="494" type="stmt" count="43"/>
      <line num="504" type="method" name="getLocalTimestampRegexps" visibility="public" complexity="1" crap="1" count="35"/>
      <line num="505" type="stmt" count="35"/>
      <line num="506" type="stmt" count="35"/>
      <line num="507" type="stmt" count="35"/>
      <line num="508" type="stmt" count="35"/>
      <line num="509" type="stmt" count="35"/>
      <line num="510" type="stmt" count="35"/>
      <line num="511" type="stmt" count="35"/>
      <line num="512" type="stmt" count="35"/>
      <line num="513" type="stmt" count="35"/>
      <line num="514" type="stmt" count="35"/>
      <line num="525" type="method" name="getLocalTimestampParsers" visibility="private" complexity="1" crap="1" count="35"/>
      <line num="526" type="stmt" count="35"/>
      <line num="527" type="stmt" count="35"/>
      <line num="528" type="stmt" count="35"/>
      <line num="529" type="stmt" count="35"/>
      <line num="530" type="stmt" count="35"/>
      <line num="531" type="stmt" count="35"/>
      <line num="532" type="stmt" count="35"/>
      <line num="533" type="stmt" count="35"/>
      <line num="534" type="stmt" count="35"/>
      <line num="535" type="stmt" count="35"/>
      <line num="536" type="stmt" count="35"/>
      <line num="546" type="method" name="getUsernameFromLink" visibility="private" complexity="17" crap="17" count="35"/>
      <line num="548" type="stmt" count="35"/>
      <line num="549" type="stmt" count="1"/>
      <line num="551" type="stmt" count="34"/>
      <line num="553" type="stmt" count="34"/>
      <line num="554" type="stmt" count="16"/>
      <line num="556" type="stmt" count="34"/>
      <line num="557" type="stmt" count="34"/>
      <line num="558" type="stmt" count="1"/>
      <line num="562" type="stmt" count="35"/>
      <line num="563" type="stmt" count="35"/>
      <line num="564" type="stmt" count="35"/>
      <line num="566" type="stmt" count="35"/>
      <line num="567" type="stmt" count="34"/>
      <line num="568" type="stmt" count="34"/>
      <line num="569" type="stmt" count="10"/>
      <line num="571" type="stmt" count="34"/>
      <line num="573" type="stmt" count="33"/>
      <line num="575" type="stmt" count="33"/>
      <line num="576" type="stmt" count="17"/>
      <line num="579" type="stmt" count="18"/>
      <line num="580" type="stmt" count="16"/>
      <line num="581" type="stmt" count="16"/>
      <line num="583" type="stmt" count="12"/>
      <line num="584" type="stmt" count="12"/>
      <line num="585" type="stmt" count="0"/>
      <line num="587" type="stmt" count="12"/>
      <line num="590" type="stmt" count="35"/>
      <line num="591" type="stmt" count="17"/>
      <line num="593" type="stmt" count="35"/>
      <line num="595" type="stmt" count="4"/>
      <line num="597" type="stmt" count="35"/>
      <line num="598" type="stmt" count="35"/>
      <line num="599" type="stmt" count="35"/>
      <line num="600" type="stmt" count="35"/>
      <line num="618" type="method" name="findSignature" visibility="private" complexity="15" crap="15" count="35"/>
      <line num="619" type="stmt" count="35"/>
      <line num="620" type="stmt" count="35"/>
      <line num="621" type="stmt" count="35"/>
      <line num="622" type="stmt" count="35"/>
      <line num="624" type="stmt" count="35"/>
      <line num="625" type="stmt" count="35"/>
      <line num="626" type="stmt" count="35"/>
      <line num="627" type="stmt" count="35"/>
      <line num="628" type="stmt" count="35"/>
      <line num="629" type="stmt" count="35"/>
      <line num="630" type="stmt" count="35"/>
      <line num="631" type="stmt" count="12"/>
      <line num="633" type="stmt" count="35"/>
      <line num="634" type="stmt" count="22"/>
      <line num="636" type="stmt" count="35"/>
      <line num="638" type="stmt" count="33"/>
      <line num="641" type="stmt" count="35"/>
      <line num="642" type="stmt" count="35"/>
      <line num="643" type="stmt" count="35"/>
      <line num="652" type="stmt" count="35"/>
      <line num="653" type="stmt" count="35"/>
      <line num="656" type="stmt" count="35"/>
      <line num="657" type="stmt" count="35"/>
      <line num="658" type="stmt" count="35"/>
      <line num="660" type="stmt" count="35"/>
      <line num="661" type="stmt" count="35"/>
      <line num="662" type="stmt" count="35"/>
      <line num="663" type="stmt" count="35"/>
      <line num="664" type="stmt" count="17"/>
      <line num="672" type="stmt" count="35"/>
      <line num="673" type="stmt" count="35"/>
      <line num="675" type="stmt" count="35"/>
      <line num="676" type="stmt" count="35"/>
      <line num="677" type="stmt" count="35"/>
      <line num="678" type="stmt" count="35"/>
      <line num="679" type="stmt" count="35"/>
      <line num="680" type="stmt" count="35"/>
      <line num="691" type="stmt" count="35"/>
      <line num="693" type="stmt" count="35"/>
      <line num="694" type="stmt" count="35"/>
      <line num="695" type="stmt" count="35"/>
      <line num="696" type="stmt" count="35"/>
      <line num="697" type="stmt" count="35"/>
      <line num="706" type="method" name="acceptOnlyNodesAllowingComments" visibility="public" complexity="11" crap="11" count="35"/>
      <line num="707" type="stmt" count="35"/>
      <line num="708" type="stmt" count="35"/>
      <line num="710" type="stmt" count="35"/>
      <line num="711" type="stmt" count="8"/>
      <line num="715" type="stmt" count="35"/>
      <line num="716" type="stmt" count="35"/>
      <line num="717" type="stmt" count="35"/>
      <line num="719" type="stmt" count="5"/>
      <line num="722" type="stmt" count="35"/>
      <line num="723" type="stmt" count="1"/>
      <line num="729" type="stmt" count="35"/>
      <line num="730" type="stmt" count="35"/>
      <line num="732" type="stmt" count="2"/>
      <line num="735" type="stmt" count="35"/>
      <line num="737" type="stmt" count="35"/>
      <line num="738" type="stmt" count="34"/>
      <line num="740" type="stmt" count="35"/>
      <line num="750" type="method" name="getCodepointOffset" visibility="private" complexity="1" crap="1" count="35"/>
      <line num="751" type="stmt" count="35"/>
      <line num="766" type="method" name="findTimestamp" visibility="public" complexity="10" crap="10" count="35"/>
      <line num="767" type="stmt" count="35"/>
      <line num="768" type="stmt" count="35"/>
      <line num="770" type="stmt" count="35"/>
      <line num="772" type="stmt" count="35"/>
      <line num="773" type="stmt" count="35"/>
      <line num="774" type="stmt" count="35"/>
      <line num="781" type="stmt" count="35"/>
      <line num="782" type="stmt" count="35"/>
      <line num="783" type="stmt" count="35"/>
      <line num="785" type="stmt" count="6"/>
      <line num="786" type="stmt" count="6"/>
      <line num="787" type="stmt" count="6"/>
      <line num="790" type="stmt" count="6"/>
      <line num="791" type="stmt" count="5"/>
      <line num="792" type="stmt" count="5"/>
      <line num="794" type="stmt" count="6"/>
      <line num="797" type="stmt" count="35"/>
      <line num="801" type="stmt" count="35"/>
      <line num="802" type="stmt" count="35"/>
      <line num="804" type="stmt" count="35"/>
      <line num="805" type="stmt" count="35"/>
      <line num="807" type="stmt" count="35"/>
      <line num="810" type="stmt" count="35"/>
      <line num="811" type="stmt" count="35"/>
      <line num="812" type="stmt" count="35"/>
      <line num="814" type="stmt" count="35"/>
      <line num="815" type="stmt" count="35"/>
      <line num="818" type="stmt" count="35"/>
      <line num="819" type="stmt" count="35"/>
      <line num="821" type="stmt" count="35"/>
      <line num="822" type="stmt" count="35"/>
      <line num="825" type="stmt" count="35"/>
      <line num="826" type="stmt" count="35"/>
      <line num="827" type="stmt" count="35"/>
      <line num="829" type="stmt" count="35"/>
      <line num="830" type="stmt" count="35"/>
      <line num="832" type="stmt" count="35"/>
      <line num="834" type="stmt" count="35"/>
      <line num="835" type="stmt" count="35"/>
      <line num="838" type="stmt" count="35"/>
      <line num="839" type="stmt" count="35"/>
      <line num="840" type="stmt" count="35"/>
      <line num="841" type="stmt" count="35"/>
      <line num="844" type="stmt" count="35"/>
      <line num="852" type="method" name="adjustSigRange" visibility="private" complexity="3" crap="3" count="35"/>
      <line num="853" type="stmt" count="35"/>
      <line num="854" type="stmt" count="35"/>
      <line num="857" type="stmt" count="35"/>
      <line num="858" type="stmt" count="35"/>
      <line num="859" type="stmt" count="35"/>
      <line num="860" type="stmt" count="33"/>
      <line num="861" type="stmt" count="7"/>
      <line num="862" type="stmt" count="35"/>
      <line num="863" type="stmt" count="35"/>
      <line num="864" type="stmt" count="35"/>
      <line num="865" type="stmt" count="35"/>
      <line num="866" type="stmt" count="35"/>
      <line num="867" type="stmt" count="35"/>
      <line num="869" type="stmt" count="35"/>
      <line num="872" type="method" name="buildThreadItems" visibility="private" complexity="22" crap="22" count="35"/>
      <line num="873" type="stmt" count="35"/>
      <line num="875" type="stmt" count="35"/>
      <line num="876" type="stmt" count="35"/>
      <line num="878" type="stmt" count="35"/>
      <line num="880" type="stmt" count="35"/>
      <line num="881" type="stmt" count="35"/>
      <line num="882" type="stmt" count="35"/>
      <line num="883" type="stmt" count="35"/>
      <line num="884" type="stmt" count="35"/>
      <line num="885" type="stmt" count="35"/>
      <line num="886" type="stmt" count="35"/>
      <line num="887" type="stmt" count="34"/>
      <line num="888" type="stmt" count="34"/>
      <line num="889" type="stmt" count="34"/>
      <line num="890" type="stmt" count="34"/>
      <line num="891" type="stmt" count="34"/>
      <line num="892" type="stmt" count="34"/>
      <line num="893" type="stmt" count="34"/>
      <line num="894" type="stmt" count="34"/>
      <line num="895" type="stmt" count="34"/>
      <line num="896" type="stmt" count="35"/>
      <line num="897" type="stmt" count="35"/>
      <line num="898" type="stmt" count="35"/>
      <line num="899" type="stmt" count="35"/>
      <line num="901" type="stmt" count="35"/>
      <line num="904" type="stmt" count="11"/>
      <line num="907" type="stmt" count="35"/>
      <line num="908" type="stmt" count="35"/>
      <line num="910" type="stmt" count="35"/>
      <line num="911" type="stmt" count="35"/>
      <line num="914" type="stmt" count="35"/>
      <line num="915" type="stmt" count="35"/>
      <line num="927" type="stmt" count="35"/>
      <line num="928" type="stmt" count="35"/>
      <line num="929" type="stmt" count="35"/>
      <line num="930" type="stmt" count="35"/>
      <line num="931" type="stmt" count="35"/>
      <line num="932" type="stmt" count="35"/>
      <line num="933" type="stmt" count="35"/>
      <line num="935" type="stmt" count="35"/>
      <line num="938" type="stmt" count="35"/>
      <line num="939" type="stmt" count="35"/>
      <line num="940" type="stmt" count="35"/>
      <line num="943" type="stmt" count="11"/>
      <line num="945" type="stmt" count="11"/>
      <line num="946" type="stmt" count="11"/>
      <line num="947" type="stmt" count="11"/>
      <line num="948" type="stmt" count="11"/>
      <line num="951" type="stmt" count="35"/>
      <line num="953" type="stmt" count="35"/>
      <line num="955" type="stmt" count="35"/>
      <line num="956" type="stmt" count="35"/>
      <line num="958" type="stmt" count="35"/>
      <line num="959" type="stmt" count="35"/>
      <line num="960" type="stmt" count="35"/>
      <line num="961" type="stmt" count="35"/>
      <line num="962" type="stmt" count="9"/>
      <line num="963" type="stmt" count="35"/>
      <line num="964" type="stmt" count="35"/>
      <line num="965" type="stmt" count="35"/>
      <line num="966" type="stmt" count="35"/>
      <line num="967" type="stmt" count="35"/>
      <line num="968" type="stmt" count="35"/>
      <line num="969" type="stmt" count="35"/>
      <line num="971" type="stmt" count="35"/>
      <line num="972" type="stmt" count="35"/>
      <line num="973" type="stmt" count="35"/>
      <line num="974" type="stmt" count="19"/>
      <line num="977" type="stmt" count="35"/>
      <line num="979" type="stmt" count="35"/>
      <line num="980" type="stmt" count="35"/>
      <line num="981" type="stmt" count="1"/>
      <line num="983" type="stmt" count="35"/>
      <line num="985" type="stmt" count="35"/>
      <line num="986" type="stmt" count="0"/>
      <line num="989" type="stmt" count="35"/>
      <line num="990" type="stmt" count="35"/>
      <line num="991" type="stmt" count="35"/>
      <line num="992" type="stmt" count="35"/>
      <line num="993" type="stmt" count="35"/>
      <line num="994" type="stmt" count="35"/>
      <line num="995" type="stmt" count="35"/>
      <line num="996" type="stmt" count="35"/>
      <line num="997" type="stmt" count="35"/>
      <line num="998" type="stmt" count="35"/>
      <line num="999" type="stmt" count="35"/>
      <line num="1000" type="stmt" count="35"/>
      <line num="1001" type="stmt" count="19"/>
      <line num="1003" type="stmt" count="35"/>
      <line num="1006" type="stmt" count="5"/>
      <line num="1007" type="stmt" count="5"/>
      <line num="1008" type="stmt" count="5"/>
      <line num="1009" type="stmt" count="5"/>
      <line num="1011" type="stmt" count="35"/>
      <line num="1012" type="stmt" count="35"/>
      <line num="1016" type="stmt" count="35"/>
      <line num="1036" type="method" name="computeTranscludedFrom" visibility="public" complexity="26" crap="45.69" count="35"/>
      <line num="1039" type="stmt" count="35"/>
      <line num="1040" type="stmt" count="0"/>
      <line num="1069" type="stmt" count="35"/>
      <line num="1070" type="stmt" count="35"/>
      <line num="1071" type="stmt" count="35"/>
      <line num="1072" type="stmt" count="35"/>
      <line num="1073" type="stmt" count="35"/>
      <line num="1074" type="stmt" count="35"/>
      <line num="1078" type="stmt" count="35"/>
      <line num="1079" type="stmt" count="35"/>
      <line num="1080" type="stmt" count="8"/>
      <line num="1082" type="stmt" count="35"/>
      <line num="1083" type="stmt" count="6"/>
      <line num="1086" type="stmt" count="35"/>
      <line num="1087" type="stmt" count="8"/>
      <line num="1088" type="stmt" count="8"/>
      <line num="1089" type="stmt" count="8"/>
      <line num="1090" type="stmt" count="8"/>
      <line num="1091" type="stmt" count="8"/>
      <line num="1094" type="stmt" count="8"/>
      <line num="1096" type="stmt" count="3"/>
      <line num="1099" type="stmt" count="0"/>
      <line num="1100" type="stmt" count="0"/>
      <line num="1101" type="stmt" count="0"/>
      <line num="1102" type="stmt" count="0"/>
      <line num="1103" type="stmt" count="0"/>
      <line num="1104" type="stmt" count="0"/>
      <line num="1109" type="stmt" count="0"/>
      <line num="1113" type="stmt" count="0"/>
      <line num="1115" type="stmt" count="3"/>
      <line num="1120" type="stmt" count="3"/>
      <line num="1121" type="stmt" count="0"/>
      <line num="1124" type="stmt" count="0"/>
      <line num="1126" type="stmt" count="0"/>
      <line num="1127" type="stmt" count="0"/>
      <line num="1130" type="stmt" count="8"/>
      <line num="1138" type="stmt" count="8"/>
      <line num="1140" type="stmt" count="4"/>
      <line num="1142" type="stmt" count="4"/>
      <line num="1143" type="stmt" count="2"/>
      <line num="1144" type="stmt" count="3"/>
      <line num="1147" type="stmt" count="0"/>
      <line num="1149" type="stmt" count="3"/>
      <line num="1150" type="stmt" count="3"/>
      <line num="1153" type="stmt" count="2"/>
      <line num="1154" type="stmt" count="2"/>
      <line num="1158" type="stmt" count="0"/>
      <line num="1160" type="stmt" count="2"/>
      <line num="1161" type="stmt" count="2"/>
      <line num="1163" type="stmt" count="2"/>
      <line num="1166" type="stmt" count="0"/>
      <line num="1172" type="stmt" count="35"/>
      <line num="1175" type="method" name="titleCanExist" visibility="private" complexity="3" crap="3" count="3"/>
      <line num="1176" type="stmt" count="3"/>
      <line num="1177" type="stmt" count="3"/>
      <line num="1178" type="stmt" count="3"/>
      <line num="1181" type="method" name="parseTitle" visibility="private" complexity="2" crap="2" count="34"/>
      <line num="1183" type="stmt" count="34"/>
      <line num="1184" type="stmt" count="1"/>
      <line num="1185" type="stmt" count="1"/>
      <line num="1198" type="method" name="getTransclusionTitles" visibility="private" complexity="4" crap="4" count="8"/>
      <line num="1199" type="stmt" count="8"/>
      <line num="1200" type="stmt" count="8"/>
      <line num="1202" type="stmt" count="8"/>
      <line num="1204" type="stmt" count="8"/>
      <line num="1206" type="stmt" count="8"/>
      <line num="1208" type="stmt" count="8"/>
      <line num="1209" type="stmt" count="8"/>
      <line num="1210" type="stmt" count="8"/>
      <line num="1212" type="stmt" count="2"/>
      <line num="1216" type="stmt" count="8"/>
      <line num="1223" type="method" name="getTransclusionRange" visibility="private" complexity="5" crap="5" count="8"/>
      <line num="1224" type="stmt" count="8"/>
      <line num="1228" type="stmt" count="8"/>
      <line num="1229" type="stmt" count="8"/>
      <line num="1230" type="stmt" count="8"/>
      <line num="1231" type="stmt" count="8"/>
      <line num="1233" type="stmt" count="6"/>
      <line num="1236" type="stmt" count="8"/>
      <line num="1237" type="stmt" count="8"/>
      <line num="1238" type="stmt" count="8"/>
      <line num="1239" type="stmt" count="8"/>
      <line num="1240" type="stmt" count="8"/>
      <line num="1241" type="stmt" count="8"/>
      <line num="1243" type="stmt" count="8"/>
      <line num="1255" type="method" name="truncateForId" visibility="private" complexity="2" crap="2" count="35"/>
      <line num="1256" type="stmt" count="35"/>
      <line num="1257" type="stmt" count="35"/>
      <line num="1258" type="stmt" count="35"/>
      <line num="1260" type="stmt" count="35"/>
      <line num="1270" type="method" name="computeId" visibility="private" complexity="13" crap="13" count="35"/>
      <line num="1273" type="stmt" count="35"/>
      <line num="1275" type="stmt" count="35"/>
      <line num="1277" type="stmt" count="5"/>
      <line num="1278" type="stmt" count="35"/>
      <line num="1279" type="stmt" count="34"/>
      <line num="1280" type="stmt" count="35"/>
      <line num="1281" type="stmt" count="35"/>
      <line num="1282" type="stmt" count="35"/>
      <line num="1284" type="stmt" count="0"/>
      <line num="1289" type="stmt" count="35"/>
      <line num="1290" type="stmt" count="35"/>
      <line num="1291" type="stmt" count="34"/>
      <line num="1292" type="stmt" count="35"/>
      <line num="1293" type="stmt" count="24"/>
      <line num="1294" type="stmt" count="24"/>
      <line num="1297" type="stmt" count="35"/>
      <line num="1302" type="stmt" count="35"/>
      <line num="1303" type="stmt" count="35"/>
      <line num="1304" type="stmt" count="35"/>
      <line num="1308" type="stmt" count="35"/>
      <line num="1310" type="stmt" count="10"/>
      <line num="1311" type="stmt" count="10"/>
      <line num="1314" type="stmt" count="10"/>
      <line num="1315" type="stmt" count="10"/>
      <line num="1316" type="stmt" count="5"/>
      <line num="1318" type="stmt" count="10"/>
      <line num="1321" type="stmt" count="35"/>
      <line num="1330" type="method" name="computeName" visibility="private" complexity="4" crap="4.01" count="35"/>
      <line num="1331" type="stmt" count="35"/>
      <line num="1333" type="stmt" count="35"/>
      <line num="1334" type="stmt" count="35"/>
      <line num="1335" type="stmt" count="35"/>
      <line num="1336" type="stmt" count="35"/>
      <line num="1337" type="stmt" count="35"/>
      <line num="1338" type="stmt" count="35"/>
      <line num="1340" type="stmt" count="0"/>
      <line num="1343" type="stmt" count="35"/>
      <line num="1344" type="stmt" count="35"/>
      <line num="1345" type="stmt" count="35"/>
      <line num="1348" type="stmt" count="35"/>
      <line num="1351" type="method" name="buildThreads" visibility="private" complexity="9" crap="9" count="35"/>
      <line num="1352" type="stmt" count="35"/>
      <line num="1353" type="stmt" count="35"/>
      <line num="1355" type="stmt" count="35"/>
      <line num="1356" type="stmt" count="35"/>
      <line num="1359" type="stmt" count="14"/>
      <line num="1360" type="stmt" count="14"/>
      <line num="1361" type="stmt" count="14"/>
      <line num="1365" type="stmt" count="35"/>
      <line num="1369" type="stmt" count="35"/>
      <line num="1370" type="stmt" count="35"/>
      <line num="1371" type="stmt" count="22"/>
      <line num="1373" type="stmt" count="35"/>
      <line num="1374" type="stmt" count="10"/>
      <line num="1375" type="stmt" count="10"/>
      <line num="1377" type="stmt" count="35"/>
      <line num="1378" type="stmt" count="35"/>
      <line num="1380" type="stmt" count="35"/>
      <line num="1381" type="stmt" count="35"/>
      <line num="1383" type="stmt" count="0"/>
      <line num="1386" type="stmt" count="35"/>
      <line num="1388" type="stmt" count="35"/>
      <line num="1397" type="method" name="computeIdsAndNames" visibility="private" complexity="3" crap="3" count="35"/>
      <line num="1398" type="stmt" count="35"/>
      <line num="1399" type="stmt" count="35"/>
      <line num="1400" type="stmt" count="35"/>
      <line num="1402" type="stmt" count="35"/>
      <line num="1403" type="stmt" count="35"/>
      <line num="1404" type="stmt" count="35"/>
      <line num="1405" type="stmt" count="35"/>
      <line num="1406" type="stmt" count="2"/>
      <line num="1409" type="stmt" count="35"/>
      <metrics loc="1413" ncloc="1048" classes="1" methods="26" coveredmethods="17" conditionals="0" coveredconditionals="0" statements="690" coveredstatements="649" elements="716" coveredelements="666"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/CommentUtils.php">
      <class name="MediaWiki\Extension\DiscussionTools\CommentUtils" namespace="global">
        <metrics complexity="162" methods="27" coveredmethods="22" conditionals="0" coveredconditionals="0" statements="283" coveredstatements="268" elements="310" coveredelements="290"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="43" type="method" name="isBlockElement" visibility="public" complexity="2" crap="2" count="174"/>
      <line num="44" type="stmt" count="174"/>
      <line num="45" type="stmt" count="174"/>
      <line num="54" type="method" name="isRenderingTransparentNode" visibility="public" complexity="11" crap="11" count="168"/>
      <line num="55" type="stmt" count="168"/>
      <line num="56" type="stmt" count="168"/>
      <line num="57" type="stmt" count="168"/>
      <line num="58" type="stmt" count="168"/>
      <line num="59" type="stmt" count="168"/>
      <line num="60" type="stmt" count="168"/>
      <line num="61" type="stmt" count="168"/>
      <line num="62" type="stmt" count="168"/>
      <line num="63" type="stmt" count="168"/>
      <line num="64" type="stmt" count="168"/>
      <line num="65" type="stmt" count="168"/>
      <line num="66" type="stmt" count="168"/>
      <line num="67" type="stmt" count="168"/>
      <line num="68" type="stmt" count="168"/>
      <line num="69" type="stmt" count="168"/>
      <line num="70" type="stmt" count="168"/>
      <line num="71" type="stmt" count="168"/>
      <line num="74" type="stmt" count="168"/>
      <line num="75" type="stmt" count="168"/>
      <line num="76" type="stmt" count="168"/>
      <line num="77" type="stmt" count="168"/>
      <line num="78" type="stmt" count="168"/>
      <line num="84" type="method" name="isOurGeneratedNode" visibility="public" complexity="4" crap="4" count="68"/>
      <line num="85" type="stmt" count="68"/>
      <line num="86" type="stmt" count="68"/>
      <line num="87" type="stmt" count="68"/>
      <line num="88" type="stmt" count="68"/>
      <line num="89" type="stmt" count="68"/>
      <line num="118" type="method" name="cantHaveElementChildren" visibility="public" complexity="7" crap="7" count="174"/>
      <line num="119" type="stmt" count="174"/>
      <line num="120" type="stmt" count="174"/>
      <line num="121" type="stmt" count="174"/>
      <line num="122" type="stmt" count="174"/>
      <line num="123" type="stmt" count="174"/>
      <line num="124" type="stmt" count="174"/>
      <line num="125" type="stmt" count="174"/>
      <line num="126" type="stmt" count="174"/>
      <line num="127" type="stmt" count="174"/>
      <line num="128" type="stmt" count="174"/>
      <line num="129" type="stmt" count="174"/>
      <line num="130" type="stmt" count="174"/>
      <line num="131" type="stmt" count="174"/>
      <line num="134" type="stmt" count="174"/>
      <line num="135" type="stmt" count="174"/>
      <line num="138" type="stmt" count="174"/>
      <line num="139" type="stmt" count="174"/>
      <line num="140" type="stmt" count="174"/>
      <line num="146" type="method" name="isCommentSeparator" visibility="public" complexity="13" crap="13" count="168"/>
      <line num="147" type="stmt" count="168"/>
      <line num="148" type="stmt" count="165"/>
      <line num="151" type="stmt" count="168"/>
      <line num="152" type="stmt" count="168"/>
      <line num="153" type="stmt" count="48"/>
      <line num="157" type="stmt" count="168"/>
      <line num="158" type="stmt" count="168"/>
      <line num="159" type="stmt" count="168"/>
      <line num="161" type="stmt" count="7"/>
      <line num="167" type="stmt" count="168"/>
      <line num="168" type="stmt" count="32"/>
      <line num="172" type="stmt" count="168"/>
      <line num="173" type="stmt" count="168"/>
      <line num="174" type="stmt" count="168"/>
      <line num="175" type="stmt" count="168"/>
      <line num="177" type="stmt" count="4"/>
      <line num="180" type="stmt" count="168"/>
      <line num="188" type="method" name="isCommentContent" visibility="public" complexity="3" crap="3" count="168"/>
      <line num="189" type="stmt" count="168"/>
      <line num="190" type="stmt" count="168"/>
      <line num="191" type="stmt" count="168"/>
      <line num="192" type="stmt" count="168"/>
      <line num="193" type="stmt" count="168"/>
      <line num="194" type="stmt" count="168"/>
      <line num="195" type="stmt" count="168"/>
      <line num="201" type="method" name="childIndexOf" visibility="public" complexity="2" crap="2" count="175"/>
      <line num="202" type="stmt" count="175"/>
      <line num="203" type="stmt" count="175"/>
      <line num="204" type="stmt" count="174"/>
      <line num="206" type="stmt" count="175"/>
      <line num="212" type="method" name="contains" visibility="public" complexity="3" crap="3" count="134"/>
      <line num="214" type="stmt" count="134"/>
      <line num="215" type="stmt" count="134"/>
      <line num="216" type="stmt" count="89"/>
      <line num="218" type="stmt" count="134"/>
      <line num="227" type="method" name="closestElement" visibility="public" complexity="3" crap="3" count="87"/>
      <line num="230" type="stmt" count="87"/>
      <line num="231" type="stmt" count="87"/>
      <line num="233" type="stmt" count="78"/>
      <line num="235" type="stmt" count="81"/>
      <line num="236" type="stmt" count="81"/>
      <line num="237" type="stmt" count="70"/>
      <line num="246" type="method" name="closestElementWithSibling" visibility="public" complexity="8" crap="72" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="250" type="stmt" count="0"/>
      <line num="251" type="stmt" count="0"/>
      <line num="254" 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="270" type="method" name="getTranscludedFromElement" visibility="public" complexity="10" crap="10" count="185"/>
      <line num="271" type="stmt" count="185"/>
      <line num="274" type="stmt" count="185"/>
      <line num="275" type="stmt" count="185"/>
      <line num="276" type="stmt" count="185"/>
      <line num="278" type="stmt" count="48"/>
      <line num="282" type="stmt" count="48"/>
      <line num="283" type="stmt" count="48"/>
      <line num="284" type="stmt" count="48"/>
      <line num="286" type="stmt" count="24"/>
      <line num="291" type="stmt" count="48"/>
      <line num="292" type="stmt" count="48"/>
      <line num="294" type="stmt" count="48"/>
      <line num="298" type="stmt" count="184"/>
      <line num="300" type="stmt" count="185"/>
      <line num="310" type="method" name="getHeadlineNode" visibility="public" complexity="5" crap="5.93" count="156"/>
      <line num="312" type="stmt" count="156"/>
      <line num="314" type="stmt" count="156"/>
      <line num="316" type="stmt" count="0"/>
      <line num="317" type="stmt" count="0"/>
      <line num="320" type="stmt" count="156"/>
      <line num="322" type="stmt" count="92"/>
      <line num="323" type="stmt" count="92"/>
      <line num="324" type="stmt" count="0"/>
      <line num="328" type="stmt" count="156"/>
      <line num="334" type="method" name="htmlTrim" visibility="public" complexity="1" crap="1" count="175"/>
      <line num="336" type="stmt" count="175"/>
      <line num="344" type="method" name="getIndentLevel" visibility="public" complexity="6" crap="6" count="165"/>
      <line num="345" type="stmt" count="165"/>
      <line num="346" type="stmt" count="165"/>
      <line num="347" type="stmt" count="165"/>
      <line num="348" type="stmt" count="165"/>
      <line num="350" type="stmt" count="165"/>
      <line num="351" type="stmt" count="165"/>
      <line num="352" type="stmt" count="123"/>
      <line num="354" type="stmt" count="165"/>
      <line num="356" type="stmt" count="165"/>
      <line num="364" type="method" name="getCoveredSiblings" visibility="public" complexity="5" crap="5" count="166"/>
      <line num="365" type="stmt" count="166"/>
      <line num="369" type="stmt" count="166"/>
      <line num="370" type="stmt" count="166"/>
      <line num="371" type="stmt" count="166"/>
      <line num="374" type="stmt" count="166"/>
      <line num="375" type="stmt" count="161"/>
      <line num="377" type="stmt" count="86"/>
      <line num="378" type="stmt" count="86"/>
      <line num="383" type="stmt" count="166"/>
      <line num="384" type="stmt" count="165"/>
      <line num="386" type="stmt" count="51"/>
      <line num="387" type="stmt" count="29"/>
      <line num="391" type="stmt" count="166"/>
      <line num="403" type="method" name="getFullyCoveredSiblings" visibility="public" complexity="5" crap="5" count="27"/>
      <line num="406" type="stmt" count="27"/>
      <line num="408" type="stmt" count="27"/>
      <line num="409" type="stmt" count="27"/>
      <line num="410" type="stmt" count="27"/>
      <line num="411" type="stmt" count="27"/>
      <line num="412" type="stmt" count="27"/>
      <line num="413" type="stmt" count="27"/>
      <line num="414" type="stmt" count="27"/>
      <line num="415" type="stmt" count="27"/>
      <line num="417" type="stmt" count="27"/>
      <line num="419" type="stmt" count="27"/>
      <line num="422" type="stmt" count="27"/>
      <line num="423" type="stmt" count="27"/>
      <line num="424" type="stmt" count="27"/>
      <line num="426" type="stmt" count="26"/>
      <line num="428" type="stmt" count="27"/>
      <line num="430" type="stmt" count="6"/>
      <line num="438" type="method" name="unwrapParsoidSections" visibility="public" complexity="3" crap="3" count="12"/>
      <line num="439" type="stmt" count="12"/>
      <line num="440" type="stmt" count="12"/>
      <line num="441" type="stmt" count="12"/>
      <line num="442" type="stmt" count="12"/>
      <line num="443" type="stmt" count="12"/>
      <line num="445" type="stmt" count="12"/>
      <line num="455" type="method" name="getTitleFromUrl" visibility="public" complexity="6" crap="6" count="218"/>
      <line num="457" type="stmt" count="218"/>
      <line num="458" type="stmt" count="66"/>
      <line num="461" type="stmt" count="218"/>
      <line num="462" type="stmt" count="218"/>
      <line num="463" type="stmt" count="218"/>
      <line num="464" type="stmt" count="84"/>
      <line num="468" type="stmt" count="196"/>
      <line num="469" type="stmt" count="196"/>
      <line num="471" type="stmt" count="58"/>
      <line num="472" type="stmt" count="58"/>
      <line num="473" type="stmt" count="167"/>
      <line num="475" type="stmt" count="79"/>
      <line num="478" type="stmt" count="97"/>
      <line num="481" type="stmt" count="196"/>
      <line num="482" type="stmt" count="196"/>
      <line num="483" type="stmt" count="196"/>
      <line num="484" type="stmt" count="196"/>
      <line num="485" type="stmt" count="196"/>
      <line num="486" type="stmt" count="196"/>
      <line num="487" type="stmt" count="196"/>
      <line num="488" type="stmt" count="184"/>
      <line num="490" type="stmt" count="63"/>
      <line num="506" type="method" name="linearWalk" visibility="public" complexity="5" crap="5" count="169"/>
      <line num="507" type="stmt" count="169"/>
      <line num="508" type="stmt" count="169"/>
      <line num="510" type="stmt" count="169"/>
      <line num="511" type="stmt" count="169"/>
      <line num="512" type="stmt" count="169"/>
      <line num="513" type="stmt" count="169"/>
      <line num="515" type="stmt" count="169"/>
      <line num="516" type="stmt" count="169"/>
      <line num="519" type="stmt" count="169"/>
      <line num="520" type="stmt" count="168"/>
      <line num="523" type="stmt" count="1"/>
      <line num="534" type="method" name="linearWalkBackwards" visibility="public" complexity="5" crap="5" count="167"/>
      <line num="535" type="stmt" count="167"/>
      <line num="536" type="stmt" count="167"/>
      <line num="538" type="stmt" count="167"/>
      <line num="539" type="stmt" count="167"/>
      <line num="540" type="stmt" count="167"/>
      <line num="541" type="stmt" count="167"/>
      <line num="543" type="stmt" count="167"/>
      <line num="544" type="stmt" count="167"/>
      <line num="547" type="stmt" count="167"/>
      <line num="548" type="stmt" count="166"/>
      <line num="551" type="stmt" count="1"/>
      <line num="557" type="method" name="getRangeFirstNode" visibility="public" complexity="3" crap="3" count="175"/>
      <line num="558" type="stmt" count="175"/>
      <line num="560" type="stmt" count="175"/>
      <line num="561" type="stmt" count="175"/>
      <line num="562" type="stmt" count="175"/>
      <line num="568" type="method" name="getRangeLastNode" visibility="public" complexity="3" crap="3" count="175"/>
      <line num="569" type="stmt" count="175"/>
      <line num="571" type="stmt" count="175"/>
      <line num="572" type="stmt" count="173"/>
      <line num="573" type="stmt" count="175"/>
      <line num="600" type="method" name="compareRanges" visibility="public" complexity="23" crap="23.91" count="64"/>
      <line num="603" type="stmt" count="64"/>
      <line num="604" type="stmt" count="64"/>
      <line num="605" type="stmt" count="64"/>
      <line num="606" type="stmt" count="64"/>
      <line num="611" type="stmt" count="64"/>
      <line num="612" type="stmt" count="64"/>
      <line num="614" type="stmt" count="60"/>
      <line num="617" type="stmt" count="64"/>
      <line num="618" type="stmt" count="64"/>
      <line num="620" type="stmt" count="50"/>
      <line num="623" type="stmt" count="64"/>
      <line num="624" type="stmt" count="41"/>
      <line num="626" type="stmt" count="52"/>
      <line num="627" type="stmt" count="50"/>
      <line num="629" type="stmt" count="23"/>
      <line num="630" type="stmt" count="18"/>
      <line num="632" type="stmt" count="16"/>
      <line num="633" type="stmt" count="0"/>
      <line num="635" type="stmt" count="16"/>
      <line num="636" type="stmt" count="0"/>
      <line num="638" type="stmt" count="16"/>
      <line num="639" type="stmt" count="13"/>
      <line num="641" type="stmt" count="14"/>
      <line num="642" type="stmt" count="14"/>
      <line num="645" type="stmt" count="0"/>
      <line num="658" type="method" name="compareRangesAlmostEqualBoundaries" visibility="private" complexity="15" crap="15" count="82"/>
      <line num="664" type="stmt" count="82"/>
      <line num="665" type="stmt" count="82"/>
      <line num="667" type="stmt" count="82"/>
      <line num="668" type="stmt" count="82"/>
      <line num="669" type="stmt" count="82"/>
      <line num="672" type="stmt" count="82"/>
      <line num="673" type="stmt" count="82"/>
      <line num="674" type="stmt" count="82"/>
      <line num="675" type="stmt" count="82"/>
      <line num="676" type="stmt" count="82"/>
      <line num="677" type="stmt" count="82"/>
      <line num="678" type="stmt" count="82"/>
      <line num="679" type="stmt" count="75"/>
      <line num="681" type="stmt" count="82"/>
      <line num="682" type="stmt" count="82"/>
      <line num="683" type="stmt" count="82"/>
      <line num="685" type="stmt" count="82"/>
      <line num="688" type="stmt" count="72"/>
      <line num="690" type="stmt" count="68"/>
      <line num="691" type="stmt" count="68"/>
      <line num="692" type="stmt" count="68"/>
      <line num="694" type="stmt" count="20"/>
      <line num="697" type="stmt" count="68"/>
      <line num="699" type="stmt" count="55"/>
      <line num="700" type="stmt" count="55"/>
      <line num="703" type="stmt" count="82"/>
      <line num="704" type="stmt" count="82"/>
      <line num="706" type="stmt" count="82"/>
      <line num="715" type="method" name="isSingleCommentSignedBy" visibility="public" complexity="9" crap="9" count="25"/>
      <line num="720" type="stmt" count="25"/>
      <line num="722" type="stmt" count="25"/>
      <line num="723" type="stmt" count="21"/>
      <line num="725" type="stmt" count="21"/>
      <line num="726" type="stmt" count="3"/>
      <line num="729" type="stmt" count="18"/>
      <line num="730" type="stmt" count="18"/>
      <line num="731" type="stmt" count="18"/>
      <line num="732" type="stmt" count="18"/>
      <line num="737" type="stmt" count="18"/>
      <line num="739" type="stmt" count="18"/>
      <line num="740" type="stmt" count="18"/>
      <line num="741" type="stmt" count="18"/>
      <line num="744" type="stmt" count="15"/>
      <line num="748" type="stmt" count="7"/>
      <line num="757" type="method" name="getNewTopicsSubscriptionId" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="758" type="stmt" count="0"/>
      <metrics loc="761" ncloc="541" classes="1" methods="27" coveredmethods="22" conditionals="0" coveredconditionals="0" statements="283" coveredstatements="268" elements="310" coveredelements="290"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ContentThreadItemSet.php">
      <class name="MediaWiki\Extension\DiscussionTools\ContentThreadItemSet" namespace="global">
        <metrics complexity="11" methods="9" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="0" elements="27" coveredelements="0"/>
      </class>
      <line num="30" type="method" name="addThreadItem" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="31" 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="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="45" type="method" name="isEmpty" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="52" type="method" name="updateIdAndNameMaps" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="64" type="method" name="getThreadItems" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="72" type="method" name="getCommentItems" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="80" type="method" name="findCommentsByName" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="88" type="method" name="findCommentById" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="96" type="method" name="getThreads" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="104" type="method" name="getThreadsStructured" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <metrics loc="110" ncloc="69" classes="1" methods="9" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="0" elements="27" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ContentThreadItemSetStatus.php">
      <class name="MediaWiki\Extension\DiscussionTools\ContentThreadItemSetStatus" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="7" coveredelements="0"/>
      </class>
      <line num="17" type="method" name="wrap" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="18" type="stmt" count="0"/>
      <line num="24" type="method" name="getValueOrThrow" visibility="public" complexity="2" crap="6" 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="29" type="stmt" count="0"/>
      <metrics loc="33" ncloc="24" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="7" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/DatabaseThreadItemSet.php">
      <class name="MediaWiki\Extension\DiscussionTools\DatabaseThreadItemSet" namespace="global">
        <metrics complexity="11" methods="9" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="0" elements="27" coveredelements="0"/>
      </class>
      <line num="30" type="method" name="addThreadItem" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="31" 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="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="45" type="method" name="isEmpty" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="52" type="method" name="updateIdAndNameMaps" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="64" type="method" name="getThreadItems" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="72" type="method" name="getCommentItems" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="80" type="method" name="findCommentsByName" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="88" type="method" name="findCommentById" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="96" type="method" name="getThreads" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="104" type="method" name="getThreadsStructured" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <metrics loc="110" ncloc="69" classes="1" methods="9" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="0" elements="27" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/ApiHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\ApiHooks" namespace="global">
        <metrics complexity="6" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="0" elements="34" coveredelements="0"/>
      </class>
      <line num="28" type="method" name="onApiMain__moduleManager" visibility="public" complexity="2" crap="6" 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"/>
      <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="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="53" type="method" name="onAPIGetAllowedParams" visibility="public" complexity="2" crap="6" 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="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="71" type="method" name="onAPIAfterExecute" visibility="public" complexity="2" crap="6" 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="79" type="stmt" count="0"/>
      <metrics loc="83" ncloc="61" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="0" elements="34" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/BetaPreferenceHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\BetaPreferenceHooks" namespace="global">
        <metrics complexity="6" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="24" coveredstatements="0" elements="26" coveredelements="0"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="29" type="method" name="onGetBetaFeaturePreferences" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="33" 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="42" type="stmt" count="0"/>
      <line num="43" 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="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"/>
      <metrics loc="64" ncloc="53" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="24" coveredstatements="0" elements="26" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/DataUpdatesHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\DataUpdatesHooks" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="12" coveredelements="0"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="34" type="method" name="onRevisionDataUpdates" visibility="public" complexity="3" crap="12" 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="43" 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="49" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <metrics loc="55" ncloc="37" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="12" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/DiscussionToolsAddOverflowMenuItemsHook.php">
      <metrics loc="42" ncloc="17" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/DiscussionToolsHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\DiscussionToolsHooks" namespace="global">
        <metrics complexity="11" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="0" elements="29" coveredelements="0"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="32" type="method" name="onDiscussionToolsAddOverflowMenuItems" visibility="public" complexity="10" crap="110" 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="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="48" 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="57" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="60" 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="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"/>
      <metrics loc="77" ncloc="63" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="0" elements="29" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/DiscussionToolsTermsOfUseMessagesHook.php">
      <metrics loc="21" ncloc="11" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/EchoHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\EchoHooks" namespace="global">
        <metrics complexity="9" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="91" coveredstatements="0" elements="94" coveredelements="0"/>
      </class>
      <line num="35" type="method" name="onBeforeCreateEchoEvent" 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="45" 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="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="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="67" type="stmt" count="0"/>
      <line num="68" 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="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="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="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="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" 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="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="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="125" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="129" type="method" name="onEchoGetBundleRules" visibility="public" complexity="5" crap="30" 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="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="145" type="method" name="onEchoGetEventsForRevision" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <metrics loc="152" ncloc="135" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="91" coveredstatements="0" elements="94" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/HookRunner.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\HookRunner" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="14" elements="17" coveredelements="17"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="19" type="stmt" count="2"/>
      <line num="24" type="method" name="onDiscussionToolsTermsOfUseMessages" visibility="public" complexity="1" crap="1" 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="32" type="method" name="onDiscussionToolsAddOverflowMenuItems" visibility="public" complexity="1" crap="1" 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"/>
      <metrics loc="49" ncloc="41" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="14" elements="17" coveredelements="17"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/HookUtils.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\HookUtils" namespace="global">
        <metrics complexity="103" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="224" coveredstatements="0" elements="236" coveredelements="0"/>
      </class>
      <line num="98" type="method" name="hasPageProp" visibility="private" complexity="1" crap="2" 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="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="121" type="method" name="parseRevisionParsoidHtml" visibility="public" complexity="6" crap="42" 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="131" 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="143" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="168" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="177" 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="190" type="method" name="featureConflictsWithGadget" visibility="public" complexity="6" crap="42" count="0"/>
      <line num="191" type="stmt" count="0"/>
      <line num="192" type="stmt" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="199" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" 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="211" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="225" type="method" name="isFeatureAvailableToUser" visibility="public" complexity="10" crap="110" count="0"/>
      <line num="226" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="229" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="233" type="stmt" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="239" type="stmt" count="0"/>
      <line num="241" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="247" type="stmt" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="254" 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="0"/>
      <line num="274" type="method" name="isFeatureEnabledForUser" visibility="public" complexity="7" crap="56" count="0"/>
      <line num="275" type="stmt" count="0"/>
      <line num="276" 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="285" type="stmt" count="0"/>
      <line num="287" type="stmt" count="0"/>
      <line num="290" type="stmt" count="0"/>
      <line num="291" type="stmt" count="0"/>
      <line num="292" type="stmt" count="0"/>
      <line num="295" type="stmt" count="0"/>
      <line num="308" type="method" name="isAvailableForTitle" visibility="public" complexity="14" crap="210" count="0"/>
      <line num="310" type="stmt" count="0"/>
      <line num="311" type="stmt" count="0"/>
      <line num="315" type="stmt" count="0"/>
      <line num="316" type="stmt" count="0"/>
      <line num="318" type="stmt" count="0"/>
      <line num="319" type="stmt" count="0"/>
      <line num="323" type="stmt" count="0"/>
      <line num="324" type="stmt" count="0"/>
      <line num="327" type="stmt" count="0"/>
      <line num="328" type="stmt" count="0"/>
      <line num="330" type="stmt" count="0"/>
      <line num="333" type="stmt" count="0"/>
      <line num="335" type="stmt" count="0"/>
      <line num="336" type="stmt" count="0"/>
      <line num="338" type="stmt" count="0"/>
      <line num="340" type="stmt" count="0"/>
      <line num="341" type="stmt" count="0"/>
      <line num="342" type="stmt" count="0"/>
      <line num="343" type="stmt" count="0"/>
      <line num="344" type="stmt" count="0"/>
      <line num="345" type="stmt" count="0"/>
      <line num="346" type="stmt" count="0"/>
      <line num="347" type="stmt" count="0"/>
      <line num="348" type="stmt" count="0"/>
      <line num="349" type="stmt" count="0"/>
      <line num="353" type="stmt" count="0"/>
      <line num="356" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="359" type="stmt" count="0"/>
      <line num="369" type="method" name="isFeatureEnabledForOutput" visibility="public" complexity="22" crap="506" count="0"/>
      <line num="375" type="stmt" count="0"/>
      <line num="376" type="stmt" count="0"/>
      <line num="377" type="stmt" count="0"/>
      <line num="378" type="stmt" count="0"/>
      <line num="379" type="stmt" count="0"/>
      <line num="380" type="stmt" count="0"/>
      <line num="381" type="stmt" count="0"/>
      <line num="384" type="stmt" count="0"/>
      <line num="387" type="stmt" count="0"/>
      <line num="389" type="stmt" count="0"/>
      <line num="390" type="stmt" count="0"/>
      <line num="396" type="stmt" count="0"/>
      <line num="397" type="stmt" count="0"/>
      <line num="399" type="stmt" count="0"/>
      <line num="403" type="stmt" count="0"/>
      <line num="405" type="stmt" count="0"/>
      <line num="407" type="stmt" count="0"/>
      <line num="408" type="stmt" count="0"/>
      <line num="411" type="stmt" count="0"/>
      <line num="413" type="stmt" count="0"/>
      <line num="416" type="stmt" count="0"/>
      <line num="417" type="stmt" count="0"/>
      <line num="420" type="stmt" count="0"/>
      <line num="421" type="stmt" count="0"/>
      <line num="422" type="stmt" count="0"/>
      <line num="423" type="stmt" count="0"/>
      <line num="425" type="stmt" count="0"/>
      <line num="427" type="stmt" count="0"/>
      <line num="428" type="stmt" count="0"/>
      <line num="429" type="stmt" count="0"/>
      <line num="430" type="stmt" count="0"/>
      <line num="431" type="stmt" count="0"/>
      <line num="432" type="stmt" count="0"/>
      <line num="433" type="stmt" count="0"/>
      <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="443" type="stmt" count="0"/>
      <line num="449" type="method" name="shouldShowNewSectionTab" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="450" type="stmt" count="0"/>
      <line num="451" type="stmt" count="0"/>
      <line num="458" type="stmt" count="0"/>
      <line num="459" type="stmt" count="0"/>
      <line num="460" type="stmt" count="0"/>
      <line num="461" type="stmt" count="0"/>
      <line num="462" type="stmt" count="0"/>
      <line num="468" type="method" name="shouldOpenNewTopicTool" visibility="public" complexity="10" crap="110" 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="472" type="stmt" count="0"/>
      <line num="474" type="stmt" count="0"/>
      <line num="476" type="stmt" count="0"/>
      <line num="479" type="stmt" count="0"/>
      <line num="480" type="stmt" count="0"/>
      <line num="481" type="stmt" count="0"/>
      <line num="482" type="stmt" count="0"/>
      <line num="484" type="stmt" count="0"/>
      <line num="485" type="stmt" count="0"/>
      <line num="491" type="method" name="shouldDisplayEmptyState" visibility="public" complexity="11" crap="132" count="0"/>
      <line num="492" type="stmt" count="0"/>
      <line num="493" type="stmt" count="0"/>
      <line num="494" type="stmt" count="0"/>
      <line num="495" type="stmt" count="0"/>
      <line num="497" type="stmt" count="0"/>
      <line num="499" type="stmt" count="0"/>
      <line num="500" type="stmt" count="0"/>
      <line num="502" type="stmt" count="0"/>
      <line num="503" type="stmt" count="0"/>
      <line num="505" type="stmt" count="0"/>
      <line num="506" type="stmt" count="0"/>
      <line num="508" type="stmt" count="0"/>
      <line num="510" type="stmt" count="0"/>
      <line num="511" type="stmt" count="0"/>
      <line num="513" type="stmt" count="0"/>
      <line num="514" type="stmt" count="0"/>
      <line num="515" type="stmt" count="0"/>
      <line num="518" type="stmt" count="0"/>
      <line num="522" type="stmt" count="0"/>
      <line num="524" type="stmt" count="0"/>
      <line num="525" type="stmt" count="0"/>
      <line num="532" type="method" name="pageSubjectExists" visibility="private" complexity="6" crap="42" count="0"/>
      <line num="533" type="stmt" count="0"/>
      <line num="534" type="stmt" count="0"/>
      <line num="535" type="stmt" count="0"/>
      <line num="537" type="stmt" count="0"/>
      <line num="538" type="stmt" count="0"/>
      <line num="539" type="stmt" count="0"/>
      <line num="541" type="stmt" count="0"/>
      <line num="542" type="stmt" count="0"/>
      <line num="543" type="stmt" count="0"/>
      <line num="545" type="stmt" count="0"/>
      <line num="547" type="stmt" count="0"/>
      <line num="548" type="stmt" count="0"/>
      <line num="555" type="method" name="shouldAddAutoSubscription" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="562" type="stmt" count="0"/>
      <line num="563" type="stmt" count="0"/>
      <line num="568" type="stmt" count="0"/>
      <line num="569" type="stmt" count="0"/>
      <line num="570" type="stmt" count="0"/>
      <line num="571" type="stmt" count="0"/>
      <line num="572" type="stmt" count="0"/>
      <line num="576" type="stmt" count="0"/>
      <line num="577" type="stmt" count="0"/>
      <metrics loc="580" ncloc="424" classes="1" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="224" coveredstatements="0" elements="236" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/InstallerHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\InstallerHooks" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="11" coveredelements="0"/>
      </class>
      <line num="25" type="method" name="onLoadExtensionSchemaUpdates" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" 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"/>
      <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"/>
      <metrics loc="39" ncloc="25" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="11" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/PageHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\PageHooks" namespace="global">
        <metrics complexity="81" methods="12" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="278" coveredstatements="87" elements="290" coveredelements="90"/>
      </class>
      <line num="52" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="58" type="stmt" count="4"/>
      <line num="60" type="method" name="isMobile" visibility="private" complexity="2" crap="2" count="4"/>
      <line num="61" type="stmt" count="4"/>
      <line num="64" type="method" name="onArticleParserOptions" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="65" type="stmt" count="4"/>
      <line num="66" type="stmt" count="4"/>
      <line num="79" type="method" name="onBeforePageDisplay" visibility="public" complexity="21" crap="462" count="0"/>
      <line num="80" 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="86" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="111" type="stmt" 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="118" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="123" 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="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" 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="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="164" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="174" type="stmt" 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="188" type="stmt" count="0"/>
      <line num="189" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="191" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="197" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" 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="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="223" type="stmt" count="0"/>
      <line num="224" type="stmt" count="0"/>
      <line num="237" type="method" name="onOutputPageBeforeHTML" visibility="public" complexity="12" crap="14.92" count="4"/>
      <line num="247" type="stmt" count="4"/>
      <line num="250" type="stmt" count="4"/>
      <line num="251" type="stmt" count="4"/>
      <line num="254" type="stmt" count="4"/>
      <line num="255" type="stmt" count="4"/>
      <line num="256" type="stmt" count="4"/>
      <line num="258" type="stmt" count="4"/>
      <line num="260" type="stmt" count="0"/>
      <line num="261" type="stmt" count="0"/>
      <line num="262" type="stmt" count="0"/>
      <line num="263" type="stmt" count="0"/>
      <line num="265" type="stmt" count="4"/>
      <line num="268" type="stmt" count="4"/>
      <line num="269" type="stmt" count="4"/>
      <line num="270" type="stmt" count="4"/>
      <line num="271" type="stmt" count="4"/>
      <line num="272" type="stmt" count="4"/>
      <line num="274" type="stmt" count="0"/>
      <line num="277" type="stmt" count="4"/>
      <line num="278" type="stmt" count="4"/>
      <line num="279" type="stmt" count="4"/>
      <line num="281" type="stmt" count="0"/>
      <line num="284" type="stmt" count="4"/>
      <line num="285" type="stmt" count="4"/>
      <line num="288" type="stmt" count="0"/>
      <line num="290" type="stmt" count="4"/>
      <line num="292" type="stmt" count="4"/>
      <line num="293" type="stmt" count="4"/>
      <line num="294" type="stmt" count="4"/>
      <line num="295" type="stmt" count="0"/>
      <line num="297" type="stmt" count="0"/>
      <line num="298" type="stmt" count="0"/>
      <line num="300" type="stmt" count="4"/>
      <line num="302" type="stmt" count="0"/>
      <line num="306" type="stmt" count="4"/>
      <line num="307" type="stmt" count="0"/>
      <line num="312" type="stmt" count="4"/>
      <line num="314" type="stmt" count="2"/>
      <line num="315" type="stmt" count="2"/>
      <line num="316" type="stmt" count="2"/>
      <line num="317" type="stmt" count="2"/>
      <line num="318" type="stmt" count="2"/>
      <line num="319" type="stmt" count="2"/>
      <line num="320" type="stmt" count="2"/>
      <line num="332" type="method" name="onOutputPageParserOutput" visibility="public" complexity="11" crap="22.03" count="4"/>
      <line num="342" type="stmt" count="4"/>
      <line num="345" type="stmt" count="4"/>
      <line num="346" type="stmt" count="4"/>
      <line num="348" type="stmt" count="2"/>
      <line num="352" type="stmt" count="2"/>
      <line num="353" type="stmt" count="2"/>
      <line num="354" type="stmt" count="2"/>
      <line num="357" type="stmt" count="4"/>
      <line num="358" type="stmt" count="4"/>
      <line num="360" type="stmt" count="4"/>
      <line num="361" type="stmt" count="0"/>
      <line num="365" type="stmt" count="4"/>
      <line num="366" type="stmt" count="0"/>
      <line num="369" type="stmt" count="0"/>
      <line num="370" type="stmt" count="0"/>
      <line num="373" type="stmt" count="0"/>
      <line num="377" type="stmt" count="0"/>
      <line num="380" type="stmt" count="0"/>
      <line num="381" type="stmt" count="0"/>
      <line num="384" type="stmt" count="0"/>
      <line num="397" type="method" name="onGetActionName" visibility="public" complexity="4" crap="4.25" count="4"/>
      <line num="398" type="stmt" count="4"/>
      <line num="399" type="stmt" count="4"/>
      <line num="400" type="stmt" count="4"/>
      <line num="402" type="stmt" count="0"/>
      <line num="413" type="method" name="onBeforeDisplayNoArticleText" visibility="public" complexity="2" crap="2.00" count="2"/>
      <line num="415" type="stmt" count="2"/>
      <line num="416" type="stmt" count="2"/>
      <line num="421" type="stmt" count="0"/>
      <line num="424" type="stmt" count="2"/>
      <line num="425" type="stmt" count="2"/>
      <line num="426" type="stmt" count="2"/>
      <line num="428" type="stmt" count="2"/>
      <line num="430" type="stmt" count="2"/>
      <line num="432" type="stmt" count="2"/>
      <line num="433" type="stmt" count="2"/>
      <line num="434" type="stmt" count="2"/>
      <line num="436" type="stmt" count="2"/>
      <line num="445" type="method" name="getEmptyStateHtml" visibility="private" complexity="10" crap="26.79" count="4"/>
      <line num="446" type="stmt" count="4"/>
      <line num="448" type="stmt" count="4"/>
      <line num="449" type="stmt" count="4"/>
      <line num="450" type="stmt" count="4"/>
      <line num="451" type="stmt" count="4"/>
      <line num="453" type="stmt" count="0"/>
      <line num="454" type="stmt" count="0"/>
      <line num="455" type="stmt" count="0"/>
      <line num="457" type="stmt" count="0"/>
      <line num="458" type="stmt" count="0"/>
      <line num="460" type="stmt" count="0"/>
      <line num="461" type="stmt" count="0"/>
      <line num="464" type="stmt" count="0"/>
      <line num="465" 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="472" type="stmt" count="0"/>
      <line num="473" type="stmt" count="0"/>
      <line num="474" type="stmt" count="0"/>
      <line num="475" type="stmt" count="0"/>
      <line num="476" type="stmt" count="0"/>
      <line num="477" type="stmt" count="0"/>
      <line num="478" type="stmt" count="0"/>
      <line num="481" type="stmt" count="0"/>
      <line num="482" type="stmt" count="0"/>
      <line num="484" type="stmt" count="0"/>
      <line num="485" type="stmt" count="0"/>
      <line num="487" type="stmt" count="0"/>
      <line num="488" type="stmt" count="0"/>
      <line num="489" type="stmt" count="0"/>
      <line num="491" type="stmt" count="0"/>
      <line num="492" type="stmt" count="0"/>
      <line num="495" type="stmt" count="0"/>
      <line num="496" type="stmt" count="0"/>
      <line num="500" type="stmt" count="4"/>
      <line num="501" type="stmt" count="4"/>
      <line num="504" type="stmt" count="4"/>
      <line num="505" type="stmt" count="4"/>
      <line num="506" type="stmt" count="4"/>
      <line num="507" type="stmt" count="4"/>
      <line num="508" type="stmt" count="4"/>
      <line num="509" type="stmt" count="4"/>
      <line num="510" type="stmt" count="4"/>
      <line num="512" type="stmt" count="4"/>
      <line num="513" type="stmt" count="4"/>
      <line num="514" type="stmt" count="4"/>
      <line num="515" type="stmt" count="4"/>
      <line num="516" type="stmt" count="4"/>
      <line num="517" type="stmt" count="4"/>
      <line num="520" type="stmt" count="4"/>
      <line num="521" type="stmt" count="4"/>
      <line num="522" type="stmt" count="4"/>
      <line num="523" type="stmt" count="4"/>
      <line num="524" type="stmt" count="4"/>
      <line num="526" type="stmt" count="4"/>
      <line num="533" type="method" name="onSidebarBeforeOutput" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="534" type="stmt" count="0"/>
      <line num="536" type="stmt" count="0"/>
      <line num="537" type="stmt" count="0"/>
      <line num="539" type="stmt" count="0"/>
      <line num="540" type="stmt" count="0"/>
      <line num="541" type="stmt" count="0"/>
      <line num="542" type="stmt" count="0"/>
      <line num="543" type="stmt" count="0"/>
      <line num="544" type="stmt" count="0"/>
      <line num="545" type="stmt" count="0"/>
      <line num="546" type="stmt" count="0"/>
      <line num="547" type="stmt" count="0"/>
      <line num="548" type="stmt" count="0"/>
      <line num="556" type="method" name="onSkinTemplateNavigation__Universal" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="557" type="stmt" count="0"/>
      <line num="558" type="stmt" count="0"/>
      <line num="559" type="stmt" count="0"/>
      <line num="560" type="stmt" count="0"/>
      <line num="561" type="stmt" count="0"/>
      <line num="562" type="stmt" count="0"/>
      <line num="563" type="stmt" count="0"/>
      <line num="565" type="stmt" count="0"/>
      <line num="566" type="stmt" count="0"/>
      <line num="567" type="stmt" count="0"/>
      <line num="568" type="stmt" count="0"/>
      <line num="569" type="stmt" count="0"/>
      <line num="570" type="stmt" count="0"/>
      <line num="572" type="stmt" count="0"/>
      <line num="576" type="stmt" count="0"/>
      <line num="577" type="stmt" count="0"/>
      <line num="580" type="stmt" count="0"/>
      <line num="592" type="method" name="getNewTopicsSubscriptionButton" visibility="private" complexity="7" crap="56" count="0"/>
      <line num="595" type="stmt" count="0"/>
      <line num="596" type="stmt" count="0"/>
      <line num="597" type="stmt" count="0"/>
      <line num="598" type="stmt" count="0"/>
      <line num="599" type="stmt" count="0"/>
      <line num="600" type="stmt" count="0"/>
      <line num="602" type="stmt" count="0"/>
      <line num="603" type="stmt" count="0"/>
      <line num="604" type="stmt" count="0"/>
      <line num="605" type="stmt" count="0"/>
      <line num="606" type="stmt" count="0"/>
      <line num="607" type="stmt" count="0"/>
      <line num="608" type="stmt" count="0"/>
      <line num="609" type="stmt" count="0"/>
      <line num="610" type="stmt" count="0"/>
      <line num="611" type="stmt" count="0"/>
      <line num="612" type="stmt" count="0"/>
      <line num="613" type="stmt" count="0"/>
      <line num="614" type="stmt" count="0"/>
      <line num="615" type="stmt" count="0"/>
      <line num="616" type="stmt" count="0"/>
      <line num="617" type="stmt" count="0"/>
      <metrics loc="620" ncloc="476" classes="1" methods="12" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="278" coveredstatements="87" elements="290" coveredelements="90"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/ParserHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\ParserHooks" namespace="global">
        <metrics complexity="21" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="0" elements="46" coveredelements="0"/>
      </class>
      <line num="35" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="41" type="method" name="transformHtml" visibility="private" complexity="6" crap="42" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="70" 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="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="94" type="method" name="onParserOutputPostCacheTransform" visibility="public" complexity="8" crap="72" 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="103" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="116" 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="124" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="135" type="method" name="onParserAfterTidy" visibility="public" complexity="5" crap="30" 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="141" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="167" type="method" name="onGetDoubleUnderscoreIDs" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="168" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <metrics loc="172" ncloc="107" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="0" elements="46" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/PreferenceHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\PreferenceHooks" namespace="global">
        <metrics complexity="18" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="89" coveredstatements="0" elements="92" coveredelements="0"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="38" type="method" name="arrayRenameKey" visibility="private" complexity="3" crap="12" 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="42" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="55" type="method" name="onGetPreferences" visibility="public" complexity="14" crap="210" 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="61" type="stmt" count="0"/>
      <line num="62" 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="75" 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="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="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="113" type="stmt" count="0"/>
      <line num="114" type="stmt" 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="120" type="stmt" count="0"/>
      <line num="121" 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="132" 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="143" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" 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="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="168" type="stmt" 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="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="176" 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"/>
      <metrics loc="187" ncloc="143" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="89" coveredstatements="0" elements="92" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/RegistrationHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\RegistrationHooks" namespace="global">
        <metrics complexity="5" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="9" coveredelements="0"/>
      </class>
      <line num="15" type="method" name="onRegistration" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="17" type="stmt" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <metrics loc="37" ncloc="22" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="9" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Hooks/TagHooks.php">
      <class name="MediaWiki\Extension\DiscussionTools\Hooks\TagHooks" namespace="global">
        <metrics complexity="6" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="0" elements="15" coveredelements="0"/>
      </class>
      <line num="41" type="method" name="onChangeTagsListActive" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="51" type="method" name="onListDefinedTags" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="62" type="method" name="onRecentChange_save" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" 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="74" type="stmt" count="0"/>
      <line num="80" type="method" name="getDiscussionToolsTagsFromRequest" 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"/>
      <metrics loc="86" ncloc="54" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="0" elements="15" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ImmutableRange.php">
      <class name="MediaWiki\Extension\DiscussionTools\ImmutableRange" namespace="global">
        <metrics complexity="145" methods="15" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="401" coveredstatements="206" elements="416" coveredelements="212"/>
      </class>
      <line num="40" type="method" name="findCommonAncestorContainer" visibility="private" complexity="7" crap="7" count="28"/>
      <line num="41" type="stmt" count="28"/>
      <line num="42" type="stmt" count="28"/>
      <line num="44" type="stmt" count="28"/>
      <line num="47" type="stmt" count="28"/>
      <line num="48" type="stmt" count="28"/>
      <line num="50" type="stmt" count="28"/>
      <line num="51" type="stmt" count="28"/>
      <line num="53" type="stmt" count="28"/>
      <line num="56" type="stmt" count="28"/>
      <line num="57" type="stmt" count="28"/>
      <line num="59" type="stmt" count="28"/>
      <line num="60" type="stmt" count="28"/>
      <line num="62" type="stmt" count="18"/>
      <line num="65" type="stmt" count="18"/>
      <line num="66" type="stmt" count="18"/>
      <line num="67" type="stmt" count="18"/>
      <line num="69" type="stmt" count="18"/>
      <line num="72" type="stmt" count="18"/>
      <line num="73" type="stmt" count="0"/>
      <line num="76" type="stmt" count="18"/>
      <line num="82" type="method" name="getRootNode" visibility="private" complexity="2" crap="2" count="28"/>
      <line num="83" type="stmt" count="28"/>
      <line num="84" type="stmt" count="28"/>
      <line num="88" type="stmt" count="28"/>
      <line num="91" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="97" type="stmt" count="29"/>
      <line num="103" type="method" name="__get" visibility="public" complexity="10" crap="10.02" count="28"/>
      <line num="105" type="stmt" count="28"/>
      <line num="106" type="stmt" count="28"/>
      <line num="107" type="stmt" count="28"/>
      <line num="108" type="stmt" count="28"/>
      <line num="109" type="stmt" count="28"/>
      <line num="110" type="stmt" count="28"/>
      <line num="111" type="stmt" count="28"/>
      <line num="113" type="stmt" count="28"/>
      <line num="114" type="stmt" count="28"/>
      <line num="115" type="stmt" count="28"/>
      <line num="116" type="stmt" count="28"/>
      <line num="117" type="stmt" count="28"/>
      <line num="118" type="stmt" count="28"/>
      <line num="119" type="stmt" count="28"/>
      <line num="120" type="stmt" count="28"/>
      <line num="121" type="stmt" count="28"/>
      <line num="123" type="stmt" count="0"/>
      <line num="130" type="method" name="setStart" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="137" type="method" name="setEnd" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="138" type="stmt" count="16"/>
      <line num="151" type="method" name="setStartOrEnd" visibility="private" complexity="8" crap="14.29" count="16"/>
      <line num="152" type="stmt" count="16"/>
      <line num="153" type="stmt" count="0"/>
      <line num="157" type="stmt" count="16"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" 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="16"/>
      <line num="175" type="stmt" count="16"/>
      <line num="176" 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"/>
      <line num="181" type="stmt" count="16"/>
      <line num="183" type="stmt" count="1"/>
      <line num="184" type="stmt" count="1"/>
      <line num="187" type="stmt" count="16"/>
      <line num="188" type="stmt" count="16"/>
      <line num="189" type="stmt" count="16"/>
      <line num="201" type="method" name="isPartiallyContainedNode" visibility="private" complexity="1" crap="1" count="14"/>
      <line num="202" type="stmt" count="14"/>
      <line num="203" type="stmt" count="14"/>
      <line num="214" type="method" name="isFullyContainedNode" visibility="private" complexity="3" crap="3" count="16"/>
      <line num="215" type="stmt" count="16"/>
      <line num="216" type="stmt" count="16"/>
      <line num="217" type="stmt" count="16"/>
      <line num="219" type="stmt" count="16"/>
      <line num="220" type="stmt" count="16"/>
      <line num="221" type="stmt" count="16"/>
      <line num="231" type="method" name="extractContents" visibility="public" complexity="28" crap="812" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="238" 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="247" type="stmt" count="0"/>
      <line num="248" type="stmt" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="250" type="stmt" count="0"/>
      <line num="252" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" 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="260" type="stmt" count="0"/>
      <line num="261" type="stmt" count="0"/>
      <line num="262" type="stmt" count="0"/>
      <line num="263" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="268" type="stmt" count="0"/>
      <line num="271" type="stmt" count="0"/>
      <line num="272" type="stmt" count="0"/>
      <line num="274" 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="279" type="stmt" count="0"/>
      <line num="284" type="stmt" count="0"/>
      <line num="286" type="stmt" count="0"/>
      <line num="287" 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="296" type="stmt" count="0"/>
      <line num="300" type="stmt" count="0"/>
      <line num="302" type="stmt" count="0"/>
      <line num="303" type="stmt" count="0"/>
      <line num="304" type="stmt" count="0"/>
      <line num="305" type="stmt" count="0"/>
      <line num="308" type="stmt" count="0"/>
      <line num="312" type="stmt" count="0"/>
      <line num="313" type="stmt" count="0"/>
      <line num="314" type="stmt" count="0"/>
      <line num="316" type="stmt" count="0"/>
      <line num="317" type="stmt" count="0"/>
      <line num="319" type="stmt" count="0"/>
      <line num="320" type="stmt" count="0"/>
      <line num="321" type="stmt" count="0"/>
      <line num="326" type="stmt" count="0"/>
      <line num="327" type="stmt" count="0"/>
      <line num="328" 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="337" type="stmt" count="0"/>
      <line num="338" type="stmt" count="0"/>
      <line num="339" type="stmt" count="0"/>
      <line num="340" type="stmt" count="0"/>
      <line num="341" type="stmt" count="0"/>
      <line num="342" type="stmt" count="0"/>
      <line num="343" type="stmt" count="0"/>
      <line num="344" type="stmt" count="0"/>
      <line num="345" type="stmt" count="0"/>
      <line num="346" type="stmt" count="0"/>
      <line num="347" type="stmt" count="0"/>
      <line num="348" type="stmt" count="0"/>
      <line num="349" type="stmt" count="0"/>
      <line num="350" type="stmt" count="0"/>
      <line num="351" type="stmt" count="0"/>
      <line num="352" type="stmt" count="0"/>
      <line num="353" type="stmt" count="0"/>
      <line num="354" type="stmt" count="0"/>
      <line num="355" type="stmt" count="0"/>
      <line num="356" type="stmt" count="0"/>
      <line num="357" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="359" type="stmt" count="0"/>
      <line num="362" type="stmt" count="0"/>
      <line num="363" type="stmt" count="0"/>
      <line num="367" type="stmt" count="0"/>
      <line num="368" type="stmt" count="0"/>
      <line num="369" type="stmt" count="0"/>
      <line num="372" type="stmt" count="0"/>
      <line num="373" type="stmt" count="0"/>
      <line num="374" type="stmt" count="0"/>
      <line num="375" type="stmt" count="0"/>
      <line num="376" type="stmt" count="0"/>
      <line num="377" type="stmt" count="0"/>
      <line num="378" type="stmt" count="0"/>
      <line num="379" type="stmt" count="0"/>
      <line num="380" type="stmt" count="0"/>
      <line num="381" type="stmt" count="0"/>
      <line num="382" type="stmt" count="0"/>
      <line num="383" type="stmt" count="0"/>
      <line num="384" type="stmt" count="0"/>
      <line num="385" type="stmt" count="0"/>
      <line num="386" type="stmt" count="0"/>
      <line num="387" type="stmt" count="0"/>
      <line num="390" type="stmt" count="0"/>
      <line num="391" type="stmt" count="0"/>
      <line num="392" type="stmt" count="0"/>
      <line num="393" type="stmt" count="0"/>
      <line num="395" type="stmt" count="0"/>
      <line num="402" type="method" name="cloneContents" visibility="public" complexity="34" crap="54.14" count="16"/>
      <line num="403" type="stmt" count="16"/>
      <line num="404" type="stmt" count="16"/>
      <line num="406" type="stmt" count="16"/>
      <line num="407" type="stmt" count="16"/>
      <line num="409" type="stmt" count="9"/>
      <line num="412" type="stmt" count="16"/>
      <line num="413" type="stmt" count="16"/>
      <line num="414" type="stmt" count="16"/>
      <line num="415" type="stmt" count="16"/>
      <line num="417" type="stmt" count="16"/>
      <line num="418" type="stmt" count="16"/>
      <line num="419" type="stmt" count="16"/>
      <line num="420" type="stmt" count="16"/>
      <line num="422" type="stmt" count="0"/>
      <line num="423" type="stmt" count="0"/>
      <line num="424" type="stmt" count="0"/>
      <line num="425" type="stmt" count="0"/>
      <line num="426" type="stmt" count="0"/>
      <line num="427" type="stmt" count="0"/>
      <line num="429" type="stmt" count="0"/>
      <line num="432" type="stmt" count="16"/>
      <line num="433" type="stmt" count="16"/>
      <line num="434" type="stmt" count="16"/>
      <line num="435" type="stmt" count="16"/>
      <line num="436" type="stmt" count="16"/>
      <line num="438" type="stmt" count="16"/>
      <line num="439" type="stmt" count="14"/>
      <line num="440" type="stmt" count="14"/>
      <line num="441" type="stmt" count="14"/>
      <line num="442" type="stmt" count="14"/>
      <line num="447" type="stmt" count="16"/>
      <line num="452" type="stmt" count="16"/>
      <line num="453" type="stmt" count="14"/>
      <line num="455" type="stmt" count="14"/>
      <line num="456" type="stmt" count="14"/>
      <line num="457" type="stmt" count="14"/>
      <line num="458" type="stmt" count="14"/>
      <line num="463" type="stmt" count="16"/>
      <line num="464" type="stmt" count="16"/>
      <line num="466" type="stmt" count="16"/>
      <line num="467" type="stmt" count="16"/>
      <line num="468" type="stmt" count="16"/>
      <line num="469" type="stmt" count="16"/>
      <line num="470" type="stmt" count="16"/>
      <line num="474" type="stmt" count="16"/>
      <line num="475" type="stmt" count="16"/>
      <line num="476" type="stmt" count="15"/>
      <line num="477" type="stmt" count="14"/>
      <line num="478" type="stmt" count="14"/>
      <line num="481" type="stmt" count="16"/>
      <line num="482" type="stmt" count="16"/>
      <line num="486" type="stmt" count="16"/>
      <line num="487" type="stmt" count="14"/>
      <line num="488" type="stmt" count="0"/>
      <line num="492" type="stmt" count="16"/>
      <line num="493" type="stmt" count="16"/>
      <line num="494" type="stmt" count="16"/>
      <line num="496" type="stmt" count="0"/>
      <line num="497" type="stmt" count="0"/>
      <line num="498" type="stmt" count="0"/>
      <line num="499" type="stmt" count="0"/>
      <line num="500" type="stmt" count="0"/>
      <line num="501" type="stmt" count="0"/>
      <line num="502" type="stmt" count="0"/>
      <line num="503" type="stmt" count="0"/>
      <line num="504" type="stmt" count="0"/>
      <line num="505" type="stmt" count="0"/>
      <line num="506" type="stmt" count="16"/>
      <line num="507" type="stmt" count="14"/>
      <line num="508" type="stmt" count="14"/>
      <line num="509" type="stmt" count="14"/>
      <line num="510" type="stmt" count="14"/>
      <line num="511" type="stmt" count="14"/>
      <line num="513" type="stmt" count="14"/>
      <line num="514" type="stmt" count="14"/>
      <line num="515" type="stmt" count="14"/>
      <line num="516" type="stmt" count="14"/>
      <line num="517" type="stmt" count="14"/>
      <line num="522" type="stmt" count="16"/>
      <line num="523" type="stmt" count="14"/>
      <line num="524" type="stmt" count="14"/>
      <line num="527" type="stmt" count="16"/>
      <line num="528" type="stmt" count="16"/>
      <line num="529" type="stmt" count="16"/>
      <line num="532" type="stmt" count="16"/>
      <line num="533" type="stmt" count="16"/>
      <line num="534" type="stmt" count="16"/>
      <line num="536" type="stmt" count="0"/>
      <line num="537" type="stmt" count="0"/>
      <line num="538" type="stmt" count="0"/>
      <line num="539" type="stmt" count="0"/>
      <line num="540" type="stmt" count="0"/>
      <line num="541" type="stmt" count="0"/>
      <line num="542" type="stmt" count="0"/>
      <line num="543" type="stmt" count="0"/>
      <line num="544" type="stmt" count="0"/>
      <line num="545" type="stmt" count="0"/>
      <line num="546" type="stmt" count="16"/>
      <line num="547" type="stmt" count="14"/>
      <line num="548" type="stmt" count="14"/>
      <line num="549" type="stmt" count="14"/>
      <line num="550" type="stmt" count="14"/>
      <line num="551" type="stmt" count="14"/>
      <line num="552" type="stmt" count="14"/>
      <line num="553" type="stmt" count="14"/>
      <line num="554" type="stmt" count="14"/>
      <line num="555" type="stmt" count="14"/>
      <line num="559" type="stmt" count="16"/>
      <line num="571" type="method" name="insertNode" visibility="public" complexity="10" crap="110" count="0"/>
      <line num="572" type="stmt" count="0"/>
      <line num="573" type="stmt" count="0"/>
      <line num="574" type="stmt" count="0"/>
      <line num="575" type="stmt" count="0"/>
      <line num="577" type="stmt" count="0"/>
      <line num="580" type="stmt" count="0"/>
      <line num="582" type="stmt" count="0"/>
      <line num="583" type="stmt" count="0"/>
      <line num="585" type="stmt" count="0"/>
      <line num="586" type="stmt" count="0"/>
      <line num="587" type="stmt" count="0"/>
      <line num="588" type="stmt" count="0"/>
      <line num="591" type="stmt" count="0"/>
      <line num="592" type="stmt" count="0"/>
      <line num="593" type="stmt" count="0"/>
      <line num="597" type="stmt" count="0"/>
      <line num="598" type="stmt" count="0"/>
      <line num="601" type="stmt" count="0"/>
      <line num="602" type="stmt" count="0"/>
      <line num="605" type="stmt" count="0"/>
      <line num="606" type="stmt" count="0"/>
      <line num="613" type="stmt" count="0"/>
      <line num="625" type="method" name="surroundContents" visibility="public" complexity="9" crap="90" count="0"/>
      <line num="626" type="stmt" count="0"/>
      <line num="628" type="stmt" count="0"/>
      <line num="629" type="stmt" count="0"/>
      <line num="630" type="stmt" count="0"/>
      <line num="632" type="stmt" count="0"/>
      <line num="633" type="stmt" count="0"/>
      <line num="634" type="stmt" count="0"/>
      <line num="637" type="stmt" count="0"/>
      <line num="642" type="stmt" count="0"/>
      <line num="643" type="stmt" count="0"/>
      <line num="644" type="stmt" count="0"/>
      <line num="646" type="stmt" count="0"/>
      <line num="649" type="stmt" count="0"/>
      <line num="651" type="stmt" count="0"/>
      <line num="652" type="stmt" count="0"/>
      <line num="655" type="stmt" count="0"/>
      <line num="656" type="stmt" count="0"/>
      <line num="670" type="method" name="computePosition" visibility="private" complexity="19" crap="19" count="28"/>
      <line num="678" type="stmt" count="28"/>
      <line num="679" type="stmt" count="19"/>
      <line num="680" type="stmt" count="16"/>
      <line num="681" type="stmt" count="19"/>
      <line num="682" type="stmt" count="10"/>
      <line num="684" type="stmt" count="15"/>
      <line num="688" type="stmt" count="28"/>
      <line num="689" type="stmt" count="28"/>
      <line num="690" type="stmt" count="15"/>
      <line num="691" type="stmt" count="28"/>
      <line num="692" type="stmt" count="28"/>
      <line num="697" type="stmt" count="18"/>
      <line num="698" type="stmt" count="18"/>
      <line num="699" type="stmt" count="13"/>
      <line num="701" type="stmt" count="18"/>
      <line num="702" type="stmt" count="18"/>
      <line num="703" type="stmt" count="15"/>
      <line num="705" type="stmt" count="18"/>
      <line num="706" type="stmt" count="18"/>
      <line num="707" type="stmt" count="18"/>
      <line num="708" type="stmt" count="17"/>
      <line num="709" type="stmt" count="17"/>
      <line num="711" type="stmt" count="18"/>
      <line num="715" type="stmt" count="28"/>
      <line num="717" type="stmt" count="28"/>
      <line num="718" type="stmt" count="28"/>
      <line num="721" type="stmt" count="28"/>
      <line num="723" type="stmt" count="28"/>
      <line num="724" type="stmt" count="28"/>
      <line num="725" type="stmt" count="28"/>
      <line num="728" type="stmt" count="25"/>
      <line num="731" type="stmt" count="28"/>
      <line num="732" type="stmt" count="28"/>
      <line num="734" type="stmt" count="28"/>
      <line num="735" type="stmt" count="28"/>
      <line num="736" type="stmt" count="28"/>
      <line num="739" type="stmt" count="23"/>
      <line num="745" type="stmt" count="28"/>
      <line num="746" type="stmt" count="28"/>
      <line num="750" type="stmt" count="28"/>
      <line num="770" type="method" name="compareBoundaryPoints" visibility="public" complexity="11" crap="11.17" count="20"/>
      <line num="771" type="stmt" count="20"/>
      <line num="772" type="stmt" count="0"/>
      <line num="776" type="stmt" count="20"/>
      <line num="777" type="stmt" count="20"/>
      <line num="778" type="stmt" count="20"/>
      <line num="779" type="stmt" count="20"/>
      <line num="781" type="stmt" count="20"/>
      <line num="782" type="stmt" count="20"/>
      <line num="783" type="stmt" count="20"/>
      <line num="784" type="stmt" count="20"/>
      <line num="786" type="stmt" count="20"/>
      <line num="787" type="stmt" count="20"/>
      <line num="788" type="stmt" count="20"/>
      <line num="789" type="stmt" count="20"/>
      <line num="791" type="stmt" count="20"/>
      <line num="792" type="stmt" count="20"/>
      <line num="793" type="stmt" count="20"/>
      <line num="794" type="stmt" count="20"/>
      <line num="797" type="stmt" count="0"/>
      <line num="800" type="stmt" count="20"/>
      <line num="801" type="stmt" count="20"/>
      <line num="802" type="stmt" count="20"/>
      <line num="804" type="stmt" count="20"/>
      <line num="805" type="stmt" count="6"/>
      <line num="807" type="stmt" count="20"/>
      <line num="808" type="stmt" count="20"/>
      <line num="811" type="stmt" count="0"/>
      <metrics loc="815" ncloc="669" classes="1" methods="15" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="401" coveredstatements="206" elements="416" coveredelements="212"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/LanguageData.php">
      <class name="MediaWiki\Extension\DiscussionTools\LanguageData" namespace="global">
        <metrics complexity="39" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="110" coveredstatements="94" elements="113" coveredelements="95"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="28" type="stmt" count="5"/>
      <line num="33" type="method" name="getLocalData" visibility="public" complexity="9" crap="9" count="5"/>
      <line num="34" type="stmt" count="5"/>
      <line num="35" type="stmt" count="5"/>
      <line num="36" type="stmt" count="5"/>
      <line num="38" 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="44" 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="51" type="stmt" count="5"/>
      <line num="52" type="stmt" count="5"/>
      <line num="54" type="stmt" count="0"/>
      <line num="56" type="stmt" count="5"/>
      <line num="57" type="stmt" count="5"/>
      <line num="62" type="stmt" count="5"/>
      <line num="66" type="stmt" 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="71" type="stmt" count="5"/>
      <line num="76" type="stmt" count="5"/>
      <line num="77" type="stmt" count="5"/>
      <line num="83" type="stmt" count="0"/>
      <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="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="99" type="stmt" count="5"/>
      <line num="100" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <line num="105" type="stmt" count="4"/>
      <line num="107" type="stmt" count="1"/>
      <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="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="123" type="stmt" count="5"/>
      <line num="124" type="stmt" count="5"/>
      <line num="125" 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="135" type="stmt" count="5"/>
      <line num="142" type="method" name="convertDateFormat" visibility="private" complexity="29" crap="52.71" 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="152" type="stmt" count="5"/>
      <line num="153" type="stmt" count="5"/>
      <line num="154" type="stmt" count="2"/>
      <line num="156" type="stmt" count="5"/>
      <line num="157" type="stmt" count="1"/>
      <line num="164" type="stmt" count="5"/>
      <line num="165" type="stmt" count="5"/>
      <line num="166" type="stmt" count="5"/>
      <line num="167" type="stmt" count="5"/>
      <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="179" type="stmt" count="5"/>
      <line num="180" 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="186" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="189" type="stmt" count="0"/>
      <line num="191" type="stmt" count="0"/>
      <line num="192" type="stmt" count="5"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="207" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="212" type="stmt" count="5"/>
      <line num="216" type="stmt" count="5"/>
      <metrics loc="219" ncloc="176" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="110" coveredstatements="94" elements="113" coveredelements="95"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/NodeFilter.php">
      <class name="MediaWiki\Extension\DiscussionTools\NodeFilter" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="0" elements="7" coveredelements="0"/>
      </class>
      <line num="50" type="method" name="acceptNode" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <metrics loc="62" ncloc="44" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="0" elements="7" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Notifications/AddedTopicPresentationModel.php">
      <class name="MediaWiki\Extension\DiscussionTools\Notifications\AddedTopicPresentationModel" namespace="global">
        <metrics complexity="8" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="0" elements="30" coveredelements="0"/>
      </class>
      <line num="17" type="method" name="getPrimaryLink" visibility="public" complexity="2" crap="6" 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="27" type="method" name="getHeaderMessageKey" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="38" type="method" name="getHeaderMessage" visibility="public" complexity="2" crap="6" 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="43" type="stmt" 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="57" type="method" name="getCompactHeaderMessage" 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="61" type="stmt" count="0"/>
      <line num="67" type="method" name="getUnsubscribeConfirmationMessageKeys" visibility="protected" complexity="1" crap="2" 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"/>
      <metrics loc="74" ncloc="52" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="0" elements="30" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Notifications/CommentThanksPresentationModel.php">
      <class name="MediaWiki\Extension\DiscussionTools\Notifications\CommentThanksPresentationModel" namespace="global">
        <metrics complexity="18" methods="10" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="0" elements="51" coveredelements="0"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="38" type="method" name="getIconType" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="45" type="method" name="canRender" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="52" type="method" name="getPrimaryLink" visibility="public" complexity="2" crap="6" 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="64" type="method" name="getCommentLink" visibility="protected" complexity="3" crap="12" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" 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="81" type="method" name="getHeaderMessageKey" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="92" type="method" name="getHeaderMessage" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="97" 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="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="109" 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="120" type="method" name="getCompactHeaderMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="130" type="method" name="getBodyMessage" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="139" type="method" name="getSecondaryLinks" visibility="public" complexity="2" crap="6" 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="144" type="stmt" count="0"/>
      <metrics loc="148" ncloc="102" classes="1" methods="10" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="0" elements="51" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Notifications/DiscussionToolsEventTrait.php">
      <class name="MediaWiki\Extension\DiscussionTools\Notifications\DiscussionToolsEventTrait" namespace="global">
        <metrics complexity="13" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="0" elements="36" coveredelements="0"/>
      </class>
      <line num="54" type="method" name="getCommentLink" visibility="protected" complexity="6" crap="42" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" 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="65" type="stmt" count="0"/>
      <line num="66" 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="91" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="106" type="method" name="getContentSnippet" visibility="protected" complexity="3" crap="12" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" 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="116" type="stmt" count="0"/>
      <line num="128" type="method" name="addMarkAsRead" visibility="protected" complexity="4" crap="20" 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="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="143" type="stmt" count="0"/>
      <metrics loc="147" ncloc="80" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="0" elements="36" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Notifications/EnhancedEchoEditUserTalkPresentationModel.php">
      <class name="MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoEditUserTalkPresentationModel" namespace="global">
        <metrics complexity="7" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="0" elements="16" coveredelements="0"/>
      </class>
      <line num="24" type="method" name="getPrimaryLink" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="25" 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="31" type="stmt" count="0"/>
      <line num="37" type="method" name="getBodyMessage" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="53" type="method" name="jsonSerialize" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <metrics loc="61" ncloc="41" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="0" elements="16" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Notifications/EnhancedEchoMentionPresentationModel.php">
      <class name="MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoMentionPresentationModel" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="10" coveredelements="0"/>
      </class>
      <line num="22" type="method" name="getPrimaryLink" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="23" 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="29" type="stmt" count="0"/>
      <line num="36" type="method" name="jsonSerialize" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <metrics loc="44" ncloc="29" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="10" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Notifications/EventDispatcher.php">
      <class name="MediaWiki\Extension\DiscussionTools\Notifications\EventDispatcher" namespace="global">
        <metrics complexity="73" methods="12" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="231" coveredstatements="112" elements="243" coveredelements="114"/>
      </class>
      <line num="48" type="method" name="setAutosubscribe" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="52" type="method" name="getParsedRevision" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="56" type="method" name="generateEventsForRevision" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="100" type="method" name="groupCommentsByThreadAndName" visibility="private" complexity="9" crap="9" count="35"/>
      <line num="101" type="stmt" count="35"/>
      <line num="102" type="stmt" count="35"/>
      <line num="103" type="stmt" count="35"/>
      <line num="104" type="stmt" count="35"/>
      <line num="105" type="stmt" count="5"/>
      <line num="106" type="stmt" count="35"/>
      <line num="107" type="stmt" count="33"/>
      <line num="108" type="stmt" count="35"/>
      <line num="109" type="stmt" count="33"/>
      <line num="112" type="stmt" count="35"/>
      <line num="121" type="method" name="groupSubscribableHeadings" visibility="private" complexity="3" crap="3" count="35"/>
      <line num="122" type="stmt" count="35"/>
      <line num="123" type="stmt" count="35"/>
      <line num="124" type="stmt" count="35"/>
      <line num="125" type="stmt" count="33"/>
      <line num="128" type="stmt" count="35"/>
      <line num="138" type="method" name="findAddedItems" visibility="private" complexity="8" crap="8.23" count="35"/>
      <line num="139" type="stmt" count="35"/>
      <line num="147" type="stmt" count="33"/>
      <line num="148" type="stmt" count="33"/>
      <line num="150" type="stmt" count="33"/>
      <line num="153" type="stmt" count="25"/>
      <line num="154" type="stmt" count="25"/>
      <line num="155" type="stmt" count="25"/>
      <line num="156" type="stmt" count="25"/>
      <line num="159" type="stmt" count="25"/>
      <line num="160" type="stmt" count="25"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="165" type="stmt" count="25"/>
      <line num="173" type="method" name="generateEventsFromItemSets" visibility="protected" complexity="20" crap="21.48" count="35"/>
      <line num="181" type="stmt" count="35"/>
      <line num="182" type="stmt" count="35"/>
      <line num="183" type="stmt" count="35"/>
      <line num="184" type="stmt" count="35"/>
      <line num="185" type="stmt" count="33"/>
      <line num="186" type="stmt" count="33"/>
      <line num="187" type="stmt" count="22"/>
      <line num="188" type="stmt" count="22"/>
      <line num="192" type="stmt" count="35"/>
      <line num="193" type="stmt" count="35"/>
      <line num="195" type="stmt" count="35"/>
      <line num="196" type="stmt" count="35"/>
      <line num="197" type="stmt" count="4"/>
      <line num="198" type="stmt" count="4"/>
      <line num="201" type="stmt" count="35"/>
      <line num="203" type="stmt" count="35"/>
      <line num="204" type="stmt" count="4"/>
      <line num="205" type="stmt" count="4"/>
      <line num="208" type="stmt" count="35"/>
      <line num="209" type="stmt" count="35"/>
      <line num="210" type="stmt" count="0"/>
      <line num="214" type="stmt" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <line num="223" type="stmt" count="0"/>
      <line num="224" type="stmt" count="0"/>
      <line num="225" type="stmt" count="0"/>
      <line num="226" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="233" type="stmt" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="240" type="stmt" count="35"/>
      <line num="245" type="stmt" count="22"/>
      <line num="247" type="stmt" count="22"/>
      <line num="250" type="stmt" count="35"/>
      <line num="253" type="stmt" count="22"/>
      <line num="254" type="stmt" count="2"/>
      <line num="258" type="stmt" count="20"/>
      <line num="259" type="stmt" count="20"/>
      <line num="260" type="stmt" count="20"/>
      <line num="261" type="stmt" count="20"/>
      <line num="263" type="stmt" count="20"/>
      <line num="264" type="stmt" count="20"/>
      <line num="265" type="stmt" count="0"/>
      <line num="267" type="stmt" count="20"/>
      <line num="272" type="stmt" count="20"/>
      <line num="273" type="stmt" count="20"/>
      <line num="274" type="stmt" count="20"/>
      <line num="275" type="stmt" count="20"/>
      <line num="276" type="stmt" count="20"/>
      <line num="277" type="stmt" count="20"/>
      <line num="278" type="stmt" count="20"/>
      <line num="279" type="stmt" count="20"/>
      <line num="280" type="stmt" count="20"/>
      <line num="281" type="stmt" count="20"/>
      <line num="282" type="stmt" count="20"/>
      <line num="283" type="stmt" count="20"/>
      <line num="284" type="stmt" count="20"/>
      <line num="286" type="stmt" count="20"/>
      <line num="287" type="stmt" count="20"/>
      <line num="290" type="stmt" count="35"/>
      <line num="291" type="stmt" count="4"/>
      <line num="292" type="stmt" count="4"/>
      <line num="293" type="stmt" count="4"/>
      <line num="294" type="stmt" count="4"/>
      <line num="295" type="stmt" count="4"/>
      <line num="296" type="stmt" count="4"/>
      <line num="297" type="stmt" count="4"/>
      <line num="298" type="stmt" count="4"/>
      <line num="299" type="stmt" count="4"/>
      <line num="300" type="stmt" count="4"/>
      <line num="301" type="stmt" count="4"/>
      <line num="302" type="stmt" count="4"/>
      <line num="305" type="stmt" count="35"/>
      <line num="306" type="stmt" count="35"/>
      <line num="307" type="stmt" count="35"/>
      <line num="309" type="stmt" count="4"/>
      <line num="310" type="stmt" count="4"/>
      <line num="311" type="stmt" count="4"/>
      <line num="312" type="stmt" count="4"/>
      <line num="315" type="stmt" count="4"/>
      <line num="316" type="stmt" count="4"/>
      <line num="317" type="stmt" count="4"/>
      <line num="318" type="stmt" count="4"/>
      <line num="319" type="stmt" count="4"/>
      <line num="320" type="stmt" count="4"/>
      <line num="321" type="stmt" count="4"/>
      <line num="322" type="stmt" count="4"/>
      <line num="324" type="stmt" count="4"/>
      <line num="325" type="stmt" count="4"/>
      <line num="326" type="stmt" count="4"/>
      <line num="327" type="stmt" count="4"/>
      <line num="328" type="stmt" count="4"/>
      <line num="330" type="stmt" count="4"/>
      <line num="338" type="method" name="addCommentChangeTag" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="341" type="stmt" count="0"/>
      <line num="342" type="stmt" count="0"/>
      <line num="343" type="stmt" count="0"/>
      <line num="344" type="stmt" count="0"/>
      <line num="351" type="method" name="addAutoSubscription" visibility="protected" complexity="4" crap="20" count="0"/>
      <line num="353" type="stmt" count="0"/>
      <line num="354" type="stmt" count="0"/>
      <line num="357" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="369" type="method" name="locateSubscribedUsers" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="370" type="stmt" count="0"/>
      <line num="373" type="stmt" count="0"/>
      <line num="374" type="stmt" count="0"/>
      <line num="375" type="stmt" count="0"/>
      <line num="376" type="stmt" count="0"/>
      <line num="377" type="stmt" count="0"/>
      <line num="380" type="stmt" count="0"/>
      <line num="381" type="stmt" count="0"/>
      <line num="382" type="stmt" count="0"/>
      <line num="383" type="stmt" count="0"/>
      <line num="386" type="stmt" count="0"/>
      <line num="387" type="stmt" count="0"/>
      <line num="388" type="stmt" count="0"/>
      <line num="390" type="stmt" count="0"/>
      <line num="399" type="method" name="logAddedComments" visibility="protected" complexity="17" crap="246.42" count="22"/>
      <line num="406" type="stmt" count="22"/>
      <line num="407" type="stmt" count="22"/>
      <line num="412" type="stmt" count="22"/>
      <line num="413" type="stmt" count="22"/>
      <line num="415" type="stmt" count="0"/>
      <line num="416" type="stmt" count="0"/>
      <line num="418" type="stmt" count="0"/>
      <line num="419" type="stmt" count="0"/>
      <line num="420" type="stmt" count="0"/>
      <line num="422" type="stmt" count="0"/>
      <line num="423" type="stmt" count="0"/>
      <line num="425" type="stmt" count="0"/>
      <line num="426" type="stmt" count="0"/>
      <line num="428" type="stmt" count="0"/>
      <line num="429" type="stmt" count="0"/>
      <line num="430" type="stmt" count="0"/>
      <line num="431" type="stmt" count="0"/>
      <line num="434" type="stmt" count="0"/>
      <line num="435" type="stmt" count="0"/>
      <line num="436" 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="441" type="stmt" count="0"/>
      <line num="442" type="stmt" count="0"/>
      <line num="443" type="stmt" count="0"/>
      <line num="444" type="stmt" count="0"/>
      <line num="445" type="stmt" count="0"/>
      <line num="447" type="stmt" count="0"/>
      <line num="448" type="stmt" count="0"/>
      <line num="450" type="stmt" count="0"/>
      <line num="451" type="stmt" count="0"/>
      <line num="452" type="stmt" count="0"/>
      <line num="453" type="stmt" count="0"/>
      <line num="454" type="stmt" count="0"/>
      <line num="458" type="stmt" count="0"/>
      <line num="459" type="stmt" count="0"/>
      <line num="461" type="stmt" count="0"/>
      <line num="462" type="stmt" count="0"/>
      <line num="463" type="stmt" count="0"/>
      <line num="464" type="stmt" count="0"/>
      <line num="465" type="stmt" count="0"/>
      <line num="467" type="stmt" count="0"/>
      <line num="468" type="stmt" count="0"/>
      <line num="470" type="stmt" count="0"/>
      <line num="472" type="stmt" count="0"/>
      <line num="475" type="stmt" count="0"/>
      <line num="477" type="stmt" count="0"/>
      <line num="478" type="stmt" count="0"/>
      <line num="479" type="stmt" count="0"/>
      <line num="480" type="stmt" count="0"/>
      <line num="481" type="stmt" count="0"/>
      <line num="482" type="stmt" count="0"/>
      <line num="485" type="stmt" count="0"/>
      <line num="493" type="method" name="inEventSample" visibility="protected" complexity="4" crap="20" count="0"/>
      <line num="496" type="stmt" count="0"/>
      <line num="497" type="stmt" count="0"/>
      <line num="498" type="stmt" count="0"/>
      <line num="500" type="stmt" count="0"/>
      <line num="501" type="stmt" count="0"/>
      <line num="503" type="stmt" count="0"/>
      <line num="504" type="stmt" count="0"/>
      <line num="506" type="stmt" count="0"/>
      <line num="507" type="stmt" count="0"/>
      <line num="508" type="stmt" count="0"/>
      <line num="509" type="stmt" count="0"/>
      <metrics loc="513" ncloc="394" classes="1" methods="12" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="231" coveredstatements="112" elements="243" coveredelements="114"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Notifications/PlaintextEchoPresentationModelSection.php">
      <class name="MediaWiki\Extension\DiscussionTools\Notifications\PlaintextEchoPresentationModelSection" namespace="global">
        <metrics complexity="7" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="18" coveredelements="0"/>
      </class>
      <line num="28" type="method" name="getParsedSectionTitle" visibility="protected" complexity="2" crap="6" 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="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="40" type="method" name="getTitleWithSection" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" 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="49" type="stmt" count="0"/>
      <line num="58" type="method" name="getTruncatedSectionTitle" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <metrics loc="66" ncloc="40" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="18" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Notifications/RemovedTopicPresentationModel.php">
      <class name="MediaWiki\Extension\DiscussionTools\Notifications\RemovedTopicPresentationModel" namespace="global">
        <metrics complexity="18" methods="9" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="78" coveredstatements="0" elements="87" coveredelements="0"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="34" type="method" name="getIconType" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="41" type="method" name="canRender" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="48" type="method" name="getPrimaryLink" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="60" 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="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="75" type="method" name="getHeaderMessageKey" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="86" type="method" name="getHeaderMessage" visibility="public" complexity="2" crap="6" 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="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="103" type="method" name="getCompactHeaderMessage" visibility="public" complexity="1" crap="2" 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="113" type="method" name="getBodyMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="121" type="method" name="getSecondaryLinks" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="122" 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="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="146" type="stmt" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="168" type="stmt" 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="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <metrics loc="181" ncloc="142" classes="1" methods="9" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="78" coveredstatements="0" elements="87" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/Notifications/SubscribedNewCommentPresentationModel.php">
      <class name="MediaWiki\Extension\DiscussionTools\Notifications\SubscribedNewCommentPresentationModel" namespace="global">
        <metrics complexity="18" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="86" coveredstatements="0" elements="97" coveredelements="0"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="38" type="method" name="getIconType" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="45" type="method" name="canRender" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="52" type="method" name="getPrimaryLink" visibility="public" complexity="2" crap="6" 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="63" type="method" name="jsonSerialize" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="64" 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="70" type="stmt" count="0"/>
      <line num="76" type="method" name="getHeaderMessageKey" visibility="protected" complexity="2" crap="6" 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="87" type="method" name="getHeaderMessage" visibility="public" 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="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="97" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="106" type="method" name="getCompactHeaderMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="115" type="method" name="getBodyMessage" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="125" type="method" name="getSecondaryLinks" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="126" 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="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="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="146" 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="151" type="stmt" count="0"/>
      <line num="152" 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="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="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="168" type="stmt" 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="172" type="stmt" count="0"/>
      <line num="173" 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="177" type="stmt" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <line num="179" type="stmt" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="190" type="method" name="getUnsubscribeConfirmationMessageKeys" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="191" type="stmt" count="0"/>
      <line num="192" type="stmt" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <metrics loc="197" ncloc="152" classes="1" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="86" coveredstatements="0" elements="97" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/OverflowMenuItem.php">
      <class name="MediaWiki\Extension\DiscussionTools\OverflowMenuItem" namespace="global">
        <metrics complexity="7" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="0" elements="21" coveredelements="0"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="39" type="method" name="parseLabel" visibility="public" complexity="3" crap="12" 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="43" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="51" type="method" name="jsonSerialize" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="52" 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="62" type="method" name="getId" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="66" type="method" name="getWeight" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <metrics loc="70" ncloc="52" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="0" elements="21" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/PageNeverHadThreadsException.php">
      <class name="MediaWiki\Extension\DiscussionTools\PageNeverHadThreadsException" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="9" ncloc="9" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ResourceLoaderData.php">
      <class name="MediaWiki\Extension\DiscussionTools\ResourceLoaderData" namespace="global">
        <metrics complexity="24" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="0" elements="100" coveredelements="0"/>
      </class>
      <line num="27" type="method" name="getLocalData" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" 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="40" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="49" type="method" name="getContentLanguageMessages" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="50" 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="66" type="method" name="getTermsOfUseMessages" visibility="private" complexity="1" crap="2" 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="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="85" type="method" name="getTermsOfUseMessagesParsed" visibility="public" 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="92" type="stmt" count="0"/>
      <line num="99" type="method" name="getTermsOfUseMessagesVersion" visibility="public" complexity="2" crap="6" 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="107" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="127" type="method" name="addOptional" visibility="public" complexity="6" crap="42" count="0"/>
      <line num="128" 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="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="152" type="method" name="makeTestModule" visibility="public" complexity="10" crap="110" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="168" type="stmt" 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="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="177" type="stmt" 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="186" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="189" 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="193" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="197" type="stmt" count="0"/>
      <line num="198" type="stmt" 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="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <metrics loc="211" ncloc="159" classes="1" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="0" elements="100" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ServiceWiring.php">
      <metrics loc="58" ncloc="52" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/SpecialDiscussionToolsDebug.php">
      <class name="MediaWiki\Extension\DiscussionTools\SpecialDiscussionToolsDebug" namespace="global">
        <metrics complexity="15" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="79" coveredstatements="0" elements="87" coveredelements="0"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="34" type="method" name="getDescription" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="41" type="method" name="getFormFields" visibility="protected" 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="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="56" type="method" name="getSubpageField" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="63" type="method" name="getDisplayFormat" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="70" type="method" name="requiresPost" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="77" type="method" name="onSubmit" visibility="public" complexity="4" crap="20" 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="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="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="94" 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="100" 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="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" 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="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="134" type="method" name="formatComments" visibility="private" complexity="5" crap="30" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" 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="146" 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="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <metrics loc="170" ncloc="147" classes="1" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="79" coveredstatements="0" elements="87" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/SpecialFindComment.php">
      <class name="MediaWiki\Extension\DiscussionTools\SpecialFindComment" namespace="global">
        <metrics complexity="20" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="0" elements="58" coveredelements="0"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="18" type="stmt" count="0"/>
      <line num="24" type="method" name="getFormFields" visibility="protected" complexity="1" crap="2" 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="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="38" type="method" name="getSubpageField" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="45" type="method" name="getDisplayFormat" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="52" type="method" name="requiresPost" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="59" type="method" name="getShowAlways" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="66" type="method" name="alterForm" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="76" type="method" name="onSubmit" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="86" type="method" name="onSuccess" visibility="public" complexity="7" crap="56" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" 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="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="104" 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="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="122" type="method" name="displayItems" visibility="private" complexity="4" crap="20" count="0"/>
      <line num="123" 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="130" type="stmt" count="0"/>
      <line num="131" 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="144" type="method" name="getDescription" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <metrics loc="148" ncloc="113" classes="1" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="0" elements="58" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/SpecialGoToComment.php">
      <class name="MediaWiki\Extension\DiscussionTools\SpecialGoToComment" namespace="global">
        <metrics complexity="10" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="17" coveredelements="0"/>
      </class>
      <line num="11" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="14" type="stmt" count="0"/>
      <line num="20" type="method" name="getRedirect" visibility="public" complexity="9" crap="90" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="22" 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"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" 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="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <metrics loc="52" ncloc="44" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="17" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/SpecialTopicSubscriptions.php">
      <class name="MediaWiki\Extension\DiscussionTools\SpecialTopicSubscriptions" namespace="global">
        <metrics complexity="4" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="19" coveredstatements="0" elements="23" coveredelements="0"/>
      </class>
      <line num="13" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="26" type="method" name="execute" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="33" 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="40" type="stmt" count="0"/>
      <line num="41" type="stmt" 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="52" type="method" name="getDescription" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="59" type="method" name="getGroupName" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <metrics loc="63" ncloc="53" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="19" coveredstatements="0" elements="23" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/SubscriptionItem.php">
      <class name="MediaWiki\Extension\DiscussionTools\SubscriptionItem" namespace="global">
        <metrics complexity="8" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="16" coveredelements="0"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="31" type="method" name="getUserIdentity" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="35" type="method" name="getItemName" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="39" type="method" name="getLinkTarget" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="46" type="method" name="getCreatedTimestamp" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="53" type="method" name="getNotificationTimestamp" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="62" type="method" name="getState" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="69" type="method" name="isMuted" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <metrics loc="73" ncloc="47" classes="1" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="16" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/SubscriptionStore.php">
      <class name="MediaWiki\Extension\DiscussionTools\SubscriptionStore" namespace="global">
        <metrics complexity="32" methods="10" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="138" coveredstatements="0" elements="148" coveredelements="0"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="47" type="method" name="fetchSubscriptions" visibility="private" complexity="5" crap="30" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" 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="77" type="stmt" 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="90" type="method" name="getSubscriptionItemsForUser" visibility="public" complexity="6" crap="42" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="105" 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="115" type="stmt" count="0"/>
      <line num="116" 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"/>
      <line num="125" type="stmt" count="0"/>
      <line num="133" type="method" name="getSubscriptionItemsForTopic" visibility="public" complexity="4" crap="20" 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="142" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="146" 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="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="166" type="method" name="getSubscriptionItemFromRow" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="173" 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="177" type="stmt" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <line num="181" type="method" name="addSubscriptionForUser" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="189" type="stmt" count="0"/>
      <line num="192" type="stmt" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <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="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="223" type="method" name="removeSubscriptionForUser" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="239" type="stmt" count="0"/>
      <line num="240" type="stmt" count="0"/>
      <line num="241" type="stmt" count="0"/>
      <line num="242" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="244" type="stmt" count="0"/>
      <line num="247" type="method" name="addAutoSubscriptionForUser" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" 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="260" type="stmt" count="0"/>
      <line num="263" type="stmt" count="0"/>
      <line num="264" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="266" type="stmt" count="0"/>
      <line num="267" type="stmt" count="0"/>
      <line num="268" type="stmt" count="0"/>
      <line num="276" type="method" name="updateSubscriptionTimestamp" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="282" type="stmt" count="0"/>
      <line num="284" 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="290" type="stmt" count="0"/>
      <line num="291" 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"/>
      <line num="310" type="method" name="updateSubscriptionNotifiedTimestamp" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="314" type="stmt" count="0"/>
      <line num="315" type="stmt" count="0"/>
      <line num="316" type="stmt" count="0"/>
      <line num="317" type="stmt" count="0"/>
      <line num="318" type="stmt" count="0"/>
      <metrics loc="321" ncloc="277" classes="1" methods="10" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="138" coveredstatements="0" elements="148" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/CommentItem.php">
      <metrics loc="23" ncloc="14" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/CommentItemTrait.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItem\CommentItemTrait" namespace="global">
        <metrics complexity="12" methods="5" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="9" elements="34" coveredelements="10"/>
      </class>
      <line num="24" type="method" name="jsonSerialize" visibility="public" complexity="1" crap="2" 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="34" type="method" name="jsonSerializeForDiff" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="35" 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="42" type="stmt" count="0"/>
      <line num="59" type="method" name="getTimestampString" visibility="public" complexity="2" crap="2" count="28"/>
      <line num="60" type="stmt" count="28"/>
      <line num="61" type="stmt" count="28"/>
      <line num="62" type="stmt" count="28"/>
      <line num="64" type="stmt" count="28"/>
      <line num="65" type="stmt" count="28"/>
      <line num="66" type="stmt" count="28"/>
      <line num="67" type="stmt" count="28"/>
      <line num="68" type="stmt" count="26"/>
      <line num="70" type="stmt" count="2"/>
      <line num="77" type="method" name="getHeading" visibility="public" complexity="3" crap="12" 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="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="91" type="method" name="getSubscribableHeading" visibility="public" complexity="4" crap="20" 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="96" type="stmt" count="0"/>
      <metrics loc="99" ncloc="67" classes="1" methods="5" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="9" elements="34" coveredelements="10"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/ContentCommentItem.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItem\ContentCommentItem" namespace="global">
        <metrics complexity="28" methods="18" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="46" coveredstatements="24" elements="64" coveredelements="33"/>
      </class>
      <line num="37" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="45" type="stmt" count="29"/>
      <line num="51" type="method" name="jsonSerialize" visibility="public" complexity="2" crap="6" 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="56" type="stmt" count="0"/>
      <line num="66" type="method" name="getBodyFragment" visibility="private" complexity="6" crap="6" count="16"/>
      <line num="67" type="stmt" count="16"/>
      <line num="68" type="stmt" count="16"/>
      <line num="70" type="stmt" count="16"/>
      <line num="72" type="stmt" count="16"/>
      <line num="74" type="stmt" count="16"/>
      <line num="75" type="stmt" count="16"/>
      <line num="77" type="stmt" count="14"/>
      <line num="80" type="stmt" count="16"/>
      <line num="81" type="stmt" count="16"/>
      <line num="83" type="stmt" count="15"/>
      <line num="84" type="stmt" count="15"/>
      <line num="87" type="stmt" count="16"/>
      <line num="97" type="method" name="getBodyHTML" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="98" type="stmt" count="16"/>
      <line num="99" type="stmt" count="16"/>
      <line num="108" type="method" name="getBodyText" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="109" type="stmt" count="8"/>
      <line num="110" type="stmt" count="8"/>
      <line num="118" type="method" name="getMentions" visibility="public" complexity="5" crap="30" 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="130" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="140" type="method" name="getSignatureRanges" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="141" type="stmt" count="16"/>
      <line num="147" type="method" name="getTimestampRanges" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="154" type="method" name="getBodyRange" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="156" type="stmt" count="16"/>
      <line num="157" type="stmt" count="16"/>
      <line num="158" type="stmt" count="16"/>
      <line num="164" type="method" name="getTimestamp" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="165" type="stmt" count="29"/>
      <line num="171" type="method" name="getAuthor" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="172" type="stmt" count="29"/>
      <line num="178" type="method" name="getDisplayName" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="179" type="stmt" count="29"/>
      <line num="186" type="method" name="getHeading" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="193" type="method" name="getSubscribableHeading" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="200" type="method" name="addSignatureRange" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="207" type="method" name="setSignatureRanges" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="214" type="method" name="setTimestamp" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="221" type="method" name="setAuthor" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <metrics loc="225" ncloc="143" classes="1" methods="18" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="46" coveredstatements="24" elements="64" coveredelements="33"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/ContentHeadingItem.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItem\ContentHeadingItem" namespace="global">
        <metrics complexity="16" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="24" coveredstatements="0" elements="35" coveredelements="0"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="2" crap="6" 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="39" type="method" name="getLinkableTitle" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="40" type="stmt" 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="48" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="62" type="method" name="getLinkableId" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="73" type="method" name="getHeadlineNode" visibility="public" complexity="1" crap="2" 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="80" type="method" name="isUneditableSection" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="88" type="method" name="setUneditableSection" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="95" type="method" name="getHeadingLevel" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="102" type="method" name="setHeadingLevel" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="106" type="method" name="isPlaceholderHeading" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="110" type="method" name="setPlaceholderHeading" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="117" type="method" name="jsonSerialize" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <metrics loc="127" ncloc="83" classes="1" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="24" coveredstatements="0" elements="35" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/ContentThreadItem.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItem\ContentThreadItem" namespace="global">
        <metrics complexity="42" methods="30" coveredmethods="20" conditionals="0" coveredconditionals="0" statements="83" coveredstatements="71" elements="113" coveredelements="91"/>
      </class>
      <line num="43" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="49" type="stmt" count="29"/>
      <line num="54" type="method" name="calculateThreadSummary" visibility="private" complexity="10" crap="10" count="29"/>
      <line num="55" type="stmt" count="29"/>
      <line num="56" type="stmt" count="28"/>
      <line num="58" type="stmt" count="29"/>
      <line num="59" type="stmt" count="29"/>
      <line num="60" type="stmt" count="29"/>
      <line num="61" type="stmt" count="29"/>
      <line num="62" type="stmt" count="29"/>
      <line num="63" type="stmt" count="29"/>
      <line num="64" type="stmt" count="29"/>
      <line num="65" type="stmt" count="29"/>
      <line num="66" type="stmt" count="29"/>
      <line num="67" type="stmt" count="29"/>
      <line num="68" type="stmt" count="29"/>
      <line num="69" type="stmt" count="29"/>
      <line num="70" type="stmt" count="29"/>
      <line num="71" type="stmt" count="29"/>
      <line num="73" type="stmt" count="29"/>
      <line num="74" type="stmt" count="29"/>
      <line num="75" type="stmt" count="19"/>
      <line num="79" type="stmt" count="29"/>
      <line num="80" type="stmt" count="29"/>
      <line num="82" type="stmt" count="29"/>
      <line num="85" type="stmt" count="29"/>
      <line num="86" type="stmt" count="29"/>
      <line num="88" type="stmt" count="29"/>
      <line num="90" type="stmt" count="29"/>
      <line num="93" type="stmt" count="29"/>
      <line num="94" type="stmt" count="29"/>
      <line num="95" type="stmt" count="29"/>
      <line num="96" type="stmt" count="29"/>
      <line num="97" type="stmt" count="29"/>
      <line num="99" type="stmt" count="29"/>
      <line num="101" type="stmt" count="29"/>
      <line num="102" type="stmt" count="29"/>
      <line num="103" type="stmt" count="29"/>
      <line num="104" type="stmt" count="29"/>
      <line num="114" type="method" name="getAuthorsBelow" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="116" type="stmt" count="1"/>
      <line num="122" type="method" name="getCommentCount" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="130" type="method" name="getLatestReply" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="138" type="method" name="getOldestReply" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="139" type="stmt" count="28"/>
      <line num="140" type="stmt" count="28"/>
      <line num="148" type="method" name="getThreadItemsBelow" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="149" type="stmt" count="1"/>
      <line num="150" type="stmt" count="1"/>
      <line num="151" type="stmt" count="1"/>
      <line num="152" type="stmt" count="1"/>
      <line num="153" type="stmt" count="1"/>
      <line num="155" type="stmt" count="1"/>
      <line num="157" type="stmt" count="1"/>
      <line num="158" type="stmt" count="1"/>
      <line num="161" type="stmt" count="1"/>
      <line num="167" type="method" name="getTranscludedFrom" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="168" type="stmt" count="12"/>
      <line num="176" type="method" name="getHTML" visibility="public" complexity="2" crap="2.02" 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"/>
      <line num="181" type="stmt" count="0"/>
      <line num="183" type="stmt" count="16"/>
      <line num="191" type="method" name="getText" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="192" type="stmt" count="8"/>
      <line num="193" type="stmt" count="8"/>
      <line num="199" type="method" name="getType" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="206" type="method" name="getLevel" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="207" type="stmt" count="28"/>
      <line num="213" type="method" name="getParent" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="214" type="stmt" count="28"/>
      <line num="220" type="method" name="getRange" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="221" type="stmt" count="28"/>
      <line num="227" type="method" name="getRootNode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="234" type="method" name="getName" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="235" type="stmt" count="28"/>
      <line num="241" type="method" name="getId" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="242" type="stmt" count="29"/>
      <line num="248" type="method" name="getLegacyId" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="255" type="method" name="getReplies" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="256" type="stmt" count="29"/>
      <line num="262" type="method" name="getWarnings" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="263" type="stmt" count="0"/>
      <line num="269" type="method" name="setLevel" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="270" type="stmt" count="0"/>
      <line num="273" type="method" name="setParent" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="274" type="stmt" count="28"/>
      <line num="280" type="method" name="setRange" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="287" type="method" name="setRootNode" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="288" type="stmt" count="28"/>
      <line num="294" type="method" name="setName" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="295" type="stmt" count="28"/>
      <line num="301" type="method" name="setId" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="302" type="stmt" count="29"/>
      <line num="308" type="method" name="setLegacyId" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="309" type="stmt" count="0"/>
      <line num="312" type="method" name="addWarning" visibility="public" complexity="1" crap="1" count="18"/>
      <line num="313" type="stmt" count="18"/>
      <line num="319" type="method" name="addWarnings" visibility="public" complexity="1" crap="1" count="18"/>
      <line num="320" type="stmt" count="18"/>
      <line num="326" type="method" name="addReply" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="327" type="stmt" count="29"/>
      <metrics loc="330" ncloc="225" classes="1" methods="30" coveredmethods="20" conditionals="0" coveredconditionals="0" statements="83" coveredstatements="71" elements="113" coveredelements="91"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/DatabaseCommentItem.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItem\DatabaseCommentItem" namespace="global">
        <metrics complexity="5" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="10" coveredelements="0"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="39" type="method" name="getAuthor" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="46" type="method" name="getTimestamp" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="54" type="method" name="getHeading" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="61" type="method" name="getSubscribableHeading" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <metrics loc="65" ncloc="41" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="10" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/DatabaseHeadingItem.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItem\DatabaseHeadingItem" namespace="global">
        <metrics complexity="4" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="8" coveredelements="0"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="2" crap="6" 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="getHeadingLevel" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="47" type="method" name="isPlaceholderHeading" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <metrics loc="51" ncloc="34" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="8" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/DatabaseThreadItem.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItem\DatabaseThreadItem" namespace="global">
        <metrics complexity="13" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="0" elements="24" coveredelements="0"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="27" type="method" name="getPage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="31" type="method" name="getRevision" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="38" type="method" name="getName" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="45" type="method" name="addReply" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="52" type="method" name="getId" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="59" type="method" name="getType" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="67" type="method" name="getParent" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="75" type="method" name="getReplies" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="82" type="method" name="getTranscludedFrom" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="89" type="method" name="getLevel" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="97" type="method" name="isCanonicalPermalink" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <metrics loc="101" ncloc="70" classes="1" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="0" elements="24" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/HeadingItem.php">
      <metrics loc="13" ncloc="10" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/HeadingItemTrait.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItem\HeadingItemTrait" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="11" coveredelements="0"/>
      </class>
      <line num="18" type="method" name="jsonSerialize" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="30" type="method" name="isSubscribable" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <metrics loc="43" ncloc="25" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="11" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/ThreadItem.php">
      <metrics loc="54" ncloc="22" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItem/ThreadItemTrait.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItem\ThreadItemTrait" namespace="global">
        <metrics complexity="3" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="0" elements="12" coveredelements="0"/>
      </class>
      <line num="20" type="method" name="jsonSerialize" visibility="public" complexity="3" crap="12" 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="30" type="stmt" 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="36" type="stmt" count="0"/>
      <metrics loc="39" ncloc="27" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="0" elements="12" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItemFormatter.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItemFormatter" namespace="global">
        <metrics complexity="6" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="0" elements="17" coveredelements="0"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="18" type="stmt" count="0"/>
      <line num="23" type="method" name="makeLink" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="24" 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="31" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="39" type="method" name="formatLine" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="40" 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="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <metrics loc="56" ncloc="47" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="0" elements="17" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItemSet.php">
      <metrics loc="149" ncloc="28" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/ThreadItemStore.php">
      <class name="MediaWiki\Extension\DiscussionTools\ThreadItemStore" namespace="global">
        <metrics complexity="63" methods="13" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="427" coveredstatements="386" elements="440" coveredelements="393"/>
      </class>
      <line num="38" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="47" type="stmt" count="10"/>
      <line num="57" type="method" name="findNewestRevisionsByName" visibility="public" complexity="2" crap="2.03" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="63" type="stmt" count="0"/>
      <line num="66" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <line num="78" type="method" name="findNewestRevisionsById" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="79" type="stmt" count="2"/>
      <line num="83" type="stmt" count="2"/>
      <line num="84" type="stmt" count="2"/>
      <line num="85" type="stmt" count="2"/>
      <line num="86" type="stmt" count="2"/>
      <line num="87" type="stmt" count="2"/>
      <line num="88" type="stmt" count="2"/>
      <line num="95" type="stmt" count="2"/>
      <line num="96" type="stmt" count="2"/>
      <line num="97" type="stmt" count="2"/>
      <line num="99" type="stmt" count="2"/>
      <line num="115" type="method" name="findNewestRevisionsByHeading" visibility="public" complexity="5" crap="5.01" count="2"/>
      <line num="119" type="stmt" count="2"/>
      <line num="121" type="stmt" count="2"/>
      <line num="125" type="stmt" count="2"/>
      <line num="126" type="stmt" count="2"/>
      <line num="127" type="stmt" count="2"/>
      <line num="128" type="stmt" count="2"/>
      <line num="129" type="stmt" count="2"/>
      <line num="130" type="stmt" count="2"/>
      <line num="131" type="stmt" count="2"/>
      <line num="132" type="stmt" count="2"/>
      <line num="133" type="stmt" count="2"/>
      <line num="134" type="stmt" count="2"/>
      <line num="136" type="stmt" count="2"/>
      <line num="137" type="stmt" count="2"/>
      <line num="139" type="stmt" count="2"/>
      <line num="140" type="stmt" count="2"/>
      <line num="146" type="stmt" count="1"/>
      <line num="147" type="stmt" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="149" type="stmt" count="1"/>
      <line num="150" type="stmt" count="1"/>
      <line num="151" type="stmt" count="1"/>
      <line num="152" type="stmt" count="1"/>
      <line num="153" type="stmt" count="1"/>
      <line num="154" type="stmt" count="1"/>
      <line num="155" type="stmt" count="1"/>
      <line num="156" type="stmt" count="1"/>
      <line num="157" type="stmt" count="1"/>
      <line num="158" type="stmt" count="1"/>
      <line num="160" type="stmt" count="1"/>
      <line num="161" type="stmt" count="1"/>
      <line num="163" type="stmt" count="1"/>
      <line num="164" type="stmt" count="0"/>
      <line num="169" type="stmt" count="1"/>
      <line num="170" type="stmt" count="1"/>
      <line num="171" type="stmt" count="1"/>
      <line num="172" type="stmt" count="1"/>
      <line num="173" type="stmt" count="1"/>
      <line num="174" 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="178" type="stmt" count="1"/>
      <line num="181" type="stmt" count="1"/>
      <line num="182" type="stmt" count="1"/>
      <line num="183" 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="1"/>
      <line num="197" type="stmt" count="1"/>
      <line num="198" type="stmt" count="1"/>
      <line num="199" type="stmt" count="1"/>
      <line num="200" type="stmt" count="1"/>
      <line num="201" type="stmt" count="1"/>
      <line num="204" type="stmt" count="1"/>
      <line num="205" type="stmt" count="1"/>
      <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="212" type="stmt" count="1"/>
      <line num="221" type="method" name="findNewestRevisionsByQuery" visibility="private" complexity="2" crap="2" count="2"/>
      <line num="222" type="stmt" count="2"/>
      <line num="223" type="stmt" count="2"/>
      <line num="225" type="stmt" count="1"/>
      <line num="228" type="stmt" count="2"/>
      <line num="234" type="method" name="fetchItems" visibility="private" complexity="4" crap="4" count="2"/>
      <line num="235" type="stmt" count="2"/>
      <line num="236" type="stmt" count="2"/>
      <line num="238" type="stmt" count="2"/>
      <line num="239" type="stmt" count="2"/>
      <line num="242" type="stmt" count="2"/>
      <line num="243" 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="248" type="stmt" count="2"/>
      <line num="249" type="stmt" count="2"/>
      <line num="252" type="stmt" count="2"/>
      <line num="255" type="method" name="fetchItemsResultSet" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="256" type="stmt" count="2"/>
      <line num="257" type="stmt" count="2"/>
      <line num="258" type="stmt" count="2"/>
      <line num="259" type="stmt" count="2"/>
      <line num="260" type="stmt" count="2"/>
      <line num="261" type="stmt" count="2"/>
      <line num="262" type="stmt" count="2"/>
      <line num="263" type="stmt" count="2"/>
      <line num="264" type="stmt" count="2"/>
      <line num="265" type="stmt" count="2"/>
      <line num="266" type="stmt" count="2"/>
      <line num="267" type="stmt" count="2"/>
      <line num="268" type="stmt" count="2"/>
      <line num="269" type="stmt" count="2"/>
      <line num="270" type="stmt" count="2"/>
      <line num="271" type="stmt" count="2"/>
      <line num="272" type="stmt" count="2"/>
      <line num="273" type="stmt" count="2"/>
      <line num="274" type="stmt" count="2"/>
      <line num="275" type="stmt" count="2"/>
      <line num="276" type="stmt" count="2"/>
      <line num="277" type="stmt" count="2"/>
      <line num="278" type="stmt" count="2"/>
      <line num="279" type="stmt" count="2"/>
      <line num="280" type="stmt" count="2"/>
      <line num="281" type="stmt" count="2"/>
      <line num="282" type="stmt" count="2"/>
      <line num="283" type="stmt" count="2"/>
      <line num="284" type="stmt" count="2"/>
      <line num="285" type="stmt" count="2"/>
      <line num="286" type="stmt" count="2"/>
      <line num="288" type="stmt" count="2"/>
      <line num="294" type="method" name="fetchRevisionAndPageForItems" visibility="private" complexity="4" crap="4" count="2"/>
      <line num="298" type="stmt" count="2"/>
      <line num="299" type="stmt" count="2"/>
      <line num="300" type="stmt" count="2"/>
      <line num="302" type="stmt" count="2"/>
      <line num="303" type="stmt" count="2"/>
      <line num="304" type="stmt" count="2"/>
      <line num="305" type="stmt" count="2"/>
      <line num="306" type="stmt" count="2"/>
      <line num="307" type="stmt" count="2"/>
      <line num="308" type="stmt" count="2"/>
      <line num="309" type="stmt" count="2"/>
      <line num="311" type="stmt" count="2"/>
      <line num="314" type="method" name="getThreadItemFromRow" visibility="private" complexity="11" crap="11.41" count="2"/>
      <line num="317" type="stmt" count="2"/>
      <line num="322" type="stmt" count="0"/>
      <line num="325" type="stmt" count="2"/>
      <line num="326" type="stmt" count="2"/>
      <line num="327" type="stmt" count="2"/>
      <line num="328" type="stmt" count="2"/>
      <line num="331" type="stmt" count="0"/>
      <line num="334" type="stmt" count="2"/>
      <line num="335" type="stmt" count="0"/>
      <line num="337" type="stmt" count="2"/>
      <line num="340" type="stmt" count="2"/>
      <line num="341" type="stmt" count="0"/>
      <line num="342" type="stmt" count="0"/>
      <line num="344" type="stmt" count="2"/>
      <line num="347" type="stmt" count="2"/>
      <line num="348" type="stmt" count="2"/>
      <line num="350" type="stmt" count="2"/>
      <line num="351" type="stmt" count="2"/>
      <line num="352" type="stmt" count="2"/>
      <line num="353" type="stmt" count="2"/>
      <line num="354" type="stmt" count="2"/>
      <line num="355" type="stmt" count="2"/>
      <line num="356" type="stmt" count="2"/>
      <line num="357" type="stmt" count="2"/>
      <line num="358" type="stmt" count="2"/>
      <line num="359" type="stmt" count="2"/>
      <line num="360" type="stmt" count="2"/>
      <line num="362" type="stmt" count="2"/>
      <line num="363" type="stmt" count="2"/>
      <line num="364" type="stmt" count="2"/>
      <line num="365" type="stmt" count="2"/>
      <line num="366" type="stmt" count="2"/>
      <line num="367" type="stmt" count="2"/>
      <line num="368" type="stmt" count="2"/>
      <line num="369" type="stmt" count="2"/>
      <line num="370" type="stmt" count="2"/>
      <line num="371" type="stmt" count="2"/>
      <line num="374" type="stmt" count="2"/>
      <line num="375" type="stmt" count="0"/>
      <line num="377" type="stmt" count="2"/>
      <line num="384" type="method" name="findThreadItemsInCurrentRevision" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="385" type="stmt" count="0"/>
      <line num="386" type="stmt" count="0"/>
      <line num="387" type="stmt" count="0"/>
      <line num="388" type="stmt" count="0"/>
      <line num="389" type="stmt" count="0"/>
      <line num="391" type="stmt" count="0"/>
      <line num="392" type="stmt" count="0"/>
      <line num="394" type="stmt" count="0"/>
      <line num="395" type="stmt" count="0"/>
      <line num="396" type="stmt" count="0"/>
      <line num="397" type="stmt" count="0"/>
      <line num="398" type="stmt" count="0"/>
      <line num="399" type="stmt" count="0"/>
      <line num="402" type="stmt" count="0"/>
      <line num="405" type="method" name="getIdsNamesBuilder" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="406" type="stmt" count="2"/>
      <line num="408" type="stmt" count="2"/>
      <line num="409" type="stmt" count="2"/>
      <line num="410" type="stmt" count="2"/>
      <line num="411" type="stmt" count="2"/>
      <line num="412" type="stmt" count="2"/>
      <line num="414" type="stmt" count="2"/>
      <line num="415" type="stmt" count="2"/>
      <line num="416" type="stmt" count="2"/>
      <line num="418" type="stmt" count="2"/>
      <line num="428" type="method" name="findOrInsertId" visibility="private" complexity="4" crap="7.65" count="10"/>
      <line num="431" type="stmt" count="10"/>
      <line num="433" type="stmt" count="10"/>
      <line num="434" type="stmt" count="10"/>
      <line num="435" type="stmt" count="10"/>
      <line num="436" type="stmt" count="10"/>
      <line num="437" type="stmt" count="10"/>
      <line num="441" type="stmt" count="0"/>
      <line num="442" type="stmt" count="0"/>
      <line num="443" type="stmt" count="0"/>
      <line num="444" type="stmt" count="0"/>
      <line num="445" type="stmt" count="0"/>
      <line num="446" type="stmt" count="0"/>
      <line num="447" type="stmt" count="0"/>
      <line num="448" type="stmt" count="0"/>
      <line num="449" type="stmt" count="0"/>
      <line num="450" type="stmt" count="0"/>
      <line num="451" type="stmt" count="0"/>
      <line num="455" type="stmt" count="10"/>
      <line num="467" type="method" name="insertThreadItems" visibility="public" complexity="24" crap="24" count="10"/>
      <line num="468" type="stmt" count="10"/>
      <line num="469" type="stmt" count="0"/>
      <line num="472" type="stmt" count="10"/>
      <line num="473" type="stmt" count="10"/>
      <line num="474" type="stmt" count="10"/>
      <line num="477" type="stmt" count="10"/>
      <line num="480" type="stmt" count="10"/>
      <line num="486" type="stmt" count="10"/>
      <line num="487" type="stmt" count="10"/>
      <line num="488" type="stmt" count="10"/>
      <line num="489" type="stmt" count="10"/>
      <line num="490" type="stmt" count="10"/>
      <line num="498" type="stmt" count="0"/>
      <line num="500" type="stmt" count="10"/>
      <line num="501" type="stmt" count="10"/>
      <line num="502" type="stmt" count="10"/>
      <line num="503" type="stmt" count="10"/>
      <line num="504" type="stmt" count="10"/>
      <line num="505" type="stmt" count="10"/>
      <line num="506" type="stmt" count="10"/>
      <line num="507" type="stmt" count="10"/>
      <line num="508" type="stmt" count="10"/>
      <line num="509" type="stmt" count="10"/>
      <line num="510" type="stmt" count="10"/>
      <line num="511" type="stmt" count="10"/>
      <line num="512" type="stmt" count="10"/>
      <line num="513" type="stmt" count="10"/>
      <line num="514" type="stmt" count="10"/>
      <line num="515" type="stmt" count="10"/>
      <line num="516" type="stmt" count="10"/>
      <line num="517" type="stmt" count="10"/>
      <line num="518" type="stmt" count="10"/>
      <line num="519" type="stmt" count="10"/>
      <line num="525" type="stmt" count="10"/>
      <line num="526" type="stmt" count="10"/>
      <line num="527" type="stmt" count="10"/>
      <line num="528" type="stmt" count="10"/>
      <line num="529" type="stmt" count="10"/>
      <line num="530" type="stmt" count="10"/>
      <line num="531" type="stmt" count="10"/>
      <line num="532" type="stmt" count="10"/>
      <line num="533" type="stmt" count="10"/>
      <line num="534" type="stmt" count="10"/>
      <line num="535" type="stmt" count="10"/>
      <line num="536" type="stmt" count="10"/>
      <line num="537" type="stmt" count="10"/>
      <line num="538" type="stmt" count="10"/>
      <line num="539" type="stmt" count="10"/>
      <line num="540" type="stmt" count="10"/>
      <line num="541" type="stmt" count="10"/>
      <line num="542" type="stmt" count="10"/>
      <line num="543" type="stmt" count="10"/>
      <line num="544" type="stmt" count="10"/>
      <line num="545" type="stmt" count="10"/>
      <line num="546" type="stmt" count="10"/>
      <line num="547" type="stmt" count="10"/>
      <line num="548" type="stmt" count="10"/>
      <line num="549" type="stmt" count="10"/>
      <line num="550" type="stmt" count="10"/>
      <line num="551" type="stmt" count="10"/>
      <line num="552" type="stmt" count="10"/>
      <line num="553" type="stmt" count="10"/>
      <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="563" type="stmt" count="10"/>
      <line num="564" type="stmt" count="10"/>
      <line num="565" type="stmt" count="10"/>
      <line num="567" type="stmt" count="10"/>
      <line num="570" type="stmt" count="10"/>
      <line num="572" 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="10"/>
      <line num="594" type="stmt" count="10"/>
      <line num="595" type="stmt" count="10"/>
      <line num="596" type="stmt" count="10"/>
      <line num="597" type="stmt" count="10"/>
      <line num="598" type="stmt" count="10"/>
      <line num="599" type="stmt" count="10"/>
      <line num="600" type="stmt" count="10"/>
      <line num="601" type="stmt" count="10"/>
      <line num="602" type="stmt" count="10"/>
      <line num="603" type="stmt" count="10"/>
      <line num="604" type="stmt" count="10"/>
      <line num="606" type="stmt" count="7"/>
      <line num="607" type="stmt" count="7"/>
      <line num="608" type="stmt" count="7"/>
      <line num="610" type="stmt" count="7"/>
      <line num="611" type="stmt" count="7"/>
      <line num="612" type="stmt" count="7"/>
      <line num="614" type="stmt" count="7"/>
      <line num="615" type="stmt" count="7"/>
      <line num="616" type="stmt" count="0"/>
      <line num="617" type="stmt" count="7"/>
      <line num="618" type="stmt" count="7"/>
      <line num="620" type="stmt" count="7"/>
      <line num="621" type="stmt" count="7"/>
      <line num="622" type="stmt" count="7"/>
      <line num="623" type="stmt" count="7"/>
      <line num="624" type="stmt" count="7"/>
      <line num="625" type="stmt" count="7"/>
      <line num="626" type="stmt" count="7"/>
      <line num="627" type="stmt" count="7"/>
      <line num="630" type="stmt" count="6"/>
      <line num="637" type="stmt" count="10"/>
      <line num="638" type="stmt" count="10"/>
      <line num="639" type="stmt" count="10"/>
      <line num="640" type="stmt" count="10"/>
      <line num="641" type="stmt" count="10"/>
      <line num="642" type="stmt" count="10"/>
      <line num="643" type="stmt" count="10"/>
      <line num="644" type="stmt" count="10"/>
      <line num="646" type="stmt" count="10"/>
      <line num="647" type="stmt" count="10"/>
      <line num="648" type="stmt" count="10"/>
      <line num="649" type="stmt" count="0"/>
      <line num="650" type="stmt" count="10"/>
      <line num="651" type="stmt" count="10"/>
      <line num="652" type="stmt" count="10"/>
      <line num="653" type="stmt" count="10"/>
      <line num="654" type="stmt" count="10"/>
      <line num="655" type="stmt" count="10"/>
      <line num="656" type="stmt" count="10"/>
      <line num="658" type="stmt" count="10"/>
      <line num="659" type="stmt" count="10"/>
      <line num="660" type="stmt" count="10"/>
      <line num="661" type="stmt" count="10"/>
      <line num="662" type="stmt" count="10"/>
      <line num="663" type="stmt" count="10"/>
      <line num="664" type="stmt" count="10"/>
      <line num="665" type="stmt" count="10"/>
      <line num="666" type="stmt" count="10"/>
      <line num="667" type="stmt" count="10"/>
      <line num="668" type="stmt" count="10"/>
      <line num="669" type="stmt" count="10"/>
      <line num="670" type="stmt" count="10"/>
      <line num="671" type="stmt" count="10"/>
      <line num="672" type="stmt" count="6"/>
      <line num="673" type="stmt" count="6"/>
      <line num="674" type="stmt" count="6"/>
      <line num="675" type="stmt" count="6"/>
      <line num="676" type="stmt" count="6"/>
      <line num="680" type="stmt" count="6"/>
      <line num="681" type="stmt" count="6"/>
      <line num="682" type="stmt" count="6"/>
      <line num="683" type="stmt" count="6"/>
      <line num="684" type="stmt" count="6"/>
      <line num="688" type="stmt" count="10"/>
      <line num="689" type="stmt" count="6"/>
      <line num="690" type="stmt" count="6"/>
      <line num="691" type="stmt" count="6"/>
      <line num="692" type="stmt" count="6"/>
      <line num="693" type="stmt" count="6"/>
      <line num="694" type="stmt" count="6"/>
      <line num="695" type="stmt" count="6"/>
      <line num="696" type="stmt" count="6"/>
      <line num="698" type="stmt" count="10"/>
      <line num="699" type="stmt" count="10"/>
      <line num="700" type="stmt" count="10"/>
      <line num="701" type="stmt" count="10"/>
      <line num="702" type="stmt" count="10"/>
      <line num="703" type="stmt" count="10"/>
      <line num="704" type="stmt" count="10"/>
      <line num="705" type="stmt" count="10"/>
      <line num="706" type="stmt" count="10"/>
      <line num="707" type="stmt" count="10"/>
      <line num="708" type="stmt" count="10"/>
      <line num="709" type="stmt" count="10"/>
      <line num="710" type="stmt" count="10"/>
      <line num="711" type="stmt" count="10"/>
      <line num="712" type="stmt" count="10"/>
      <line num="713" type="stmt" count="10"/>
      <line num="714" type="stmt" count="10"/>
      <line num="715" type="stmt" count="10"/>
      <line num="716" type="stmt" count="10"/>
      <line num="717" type="stmt" count="10"/>
      <line num="718" type="stmt" count="10"/>
      <line num="719" type="stmt" count="10"/>
      <line num="720" type="stmt" count="10"/>
      <line num="721" type="stmt" count="10"/>
      <line num="722" type="stmt" count="10"/>
      <line num="723" type="stmt" count="10"/>
      <line num="724" type="stmt" count="10"/>
      <line num="725" type="stmt" count="10"/>
      <line num="726" type="stmt" count="10"/>
      <line num="730" type="stmt" count="10"/>
      <line num="732" type="stmt" count="10"/>
      <line num="734" type="stmt" count="10"/>
      <metrics loc="737" ncloc="603" classes="1" methods="13" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="427" coveredstatements="386" elements="440" coveredelements="393"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/TopicSubscriptionsPager.php">
      <class name="MediaWiki\Extension\DiscussionTools\TopicSubscriptionsPager" namespace="global">
        <metrics complexity="43" methods="13" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="120" coveredstatements="0" elements="133" coveredelements="0"/>
      </class>
      <line num="37" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="50" type="method" name="preprocessResults" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" 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="60" 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="72" type="method" name="getFieldNames" visibility="protected" complexity="1" crap="2" 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="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="85" type="method" name="formatValue" visibility="public" complexity="9" crap="90" count="0"/>
      <line num="87" 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="96" type="stmt" count="0"/>
      <line num="97" 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="110" 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="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"/>
      <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="129" type="stmt" count="0"/>
      <line num="138" type="method" name="maybeFormatAsList" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="140" 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="149" type="method" name="formatValuePage" visibility="private" complexity="6" crap="42" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="152" 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="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <line num="180" type="method" name="formatValueTopic" visibility="private" complexity="11" crap="132" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="189" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="199" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="220" type="stmt" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <line num="223" type="stmt" count="0"/>
      <line num="225" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="233" type="method" name="getCellAttrs" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="244" type="method" name="getQueryInfo" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="246" type="stmt" count="0"/>
      <line num="247" type="stmt" count="0"/>
      <line num="248" type="stmt" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <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="254" type="stmt" 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="260" type="stmt" count="0"/>
      <line num="261" type="stmt" count="0"/>
      <line num="262" type="stmt" count="0"/>
      <line num="268" type="method" name="getDefaultSort" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="269" type="stmt" count="0"/>
      <line num="275" type="method" name="getDefaultDirections" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="276" type="stmt" count="0"/>
      <line num="282" type="method" name="getIndexField" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="283" type="stmt" count="0"/>
      <line num="289" type="method" name="isFieldSortable" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="291" type="stmt" count="0"/>
      <metrics loc="294" ncloc="233" classes="1" methods="13" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="120" coveredstatements="0" elements="133" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/includes/TreeWalker.php">
      <class name="MediaWiki\Extension\DiscussionTools\TreeWalker" namespace="global">
        <metrics complexity="16" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="43" coveredstatements="0" elements="46" coveredelements="0"/>
      </class>
      <line num="29" type="method" name="__construct" visibility="public" complexity="1" crap="2" 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="45" type="method" name="nextNode" visibility="public" complexity="9" crap="90" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" 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="59" type="stmt" count="0"/>
      <line num="60" 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="66" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="74" 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="102" type="method" name="filterNode" visibility="private" complexity="6" crap="42" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="121" 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="137" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <metrics loc="142" ncloc="104" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="43" coveredstatements="0" elements="46" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/maintenance/FixTrailingWhitespaceIds.php">
      <class name="MediaWiki\Extension\DiscussionTools\Maintenance\FixTrailingWhitespaceIds" namespace="global">
        <metrics complexity="8" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="53" coveredstatements="0" elements="56" coveredelements="0"/>
      </class>
      <line num="10" type="stmt" count="0"/>
      <line num="11" type="stmt" count="0"/>
      <line num="12" type="stmt" count="0"/>
      <line num="14" type="stmt" count="0"/>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="2" 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="28" type="method" name="doDBUpdates" visibility="public" complexity="6" crap="42" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="50" 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="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="72" 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="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" 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="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="100" 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="107" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="115" type="method" name="getUpdateKey" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <metrics loc="122" ncloc="103" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="59" coveredstatements="0" elements="62" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/maintenance/NewTopicOptOutActiveUsers.php">
      <class name="MediaWiki\Extension\DiscussionTools\Maintenance\NewTopicOptOutActiveUsers" namespace="global">
        <metrics complexity="16" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="81" coveredstatements="0" elements="85" coveredelements="0"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="16" type="stmt" 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="24" type="method" name="execute" visibility="public" complexity="8" crap="72" 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="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" 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="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="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" 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="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="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="72" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="79" type="method" name="skipReason" visibility="private" complexity="6" crap="42" 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="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="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="109" 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="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="127" type="method" name="updatePrefs" visibility="private" complexity="1" crap="2" 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="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="144" type="stmt" count="0"/>
      <metrics loc="145" ncloc="135" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="82" coveredstatements="0" elements="86" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/DiscussionTools/maintenance/persistRevisionThreadItems.php">
      <class name="MediaWiki\Extension\DiscussionTools\Maintenance\PersistRevisionThreadItems" namespace="global">
        <metrics complexity="22" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="113" coveredstatements="0" elements="117" coveredelements="0"/>
      </class>
      <line num="18" type="stmt" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="31" type="method" name="__construct" visibility="public" 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="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="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="46" type="method" name="execute" visibility="public" complexity="9" crap="90" count="0"/>
      <line num="47" 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="54" type="stmt" count="0"/>
      <line num="56" 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="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="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="73" 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="80" 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="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="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" 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="116" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="122" type="method" name="process" visibility="private" complexity="9" crap="90" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="125" 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="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" 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="146" 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="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="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="175" 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="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="processRow" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <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="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="213" type="stmt" count="0"/>
      <metrics loc="214" ncloc="203" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="119" coveredstatements="0" elements="123" coveredelements="0"/>
    </file>
    <metrics files="77" loc="15422" ncloc="11746" classes="69" methods="509" coveredmethods="126" conditionals="0" coveredconditionals="0" statements="6262" coveredstatements="3038" elements="6771" coveredelements="3164"/>
  </project>
</coverage>
