<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1792050899">
  <project timestamp="1792050899">
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Api/ApiGlobalBlock.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Api\ApiGlobalBlock" namespace="global">
        <metrics complexity="25" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="148" coveredstatements="148" elements="156" coveredelements="156"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="26"/>
      <line num="24" type="stmt" count="26"/>
      <line num="27" type="method" name="execute" visibility="public" complexity="17" crap="17" count="23"/>
      <line num="28" type="stmt" count="23"/>
      <line num="31" type="stmt" count="23"/>
      <line num="32" type="stmt" count="23"/>
      <line num="33" type="stmt" count="23"/>
      <line num="34" type="stmt" count="23"/>
      <line num="36" type="stmt" count="23"/>
      <line num="38" type="stmt" count="23"/>
      <line num="40" type="stmt" count="23"/>
      <line num="42" type="stmt" count="16"/>
      <line num="43" type="stmt" count="16"/>
      <line num="44" type="stmt" count="2"/>
      <line num="45" type="stmt" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="47" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="50" type="stmt" count="2"/>
      <line num="52" type="stmt" count="2"/>
      <line num="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="60" type="stmt" count="15"/>
      <line num="62" type="stmt" count="15"/>
      <line num="63" type="stmt" count="3"/>
      <line num="66" type="stmt" count="15"/>
      <line num="67" type="stmt" count="6"/>
      <line num="70" type="stmt" count="15"/>
      <line num="71" type="stmt" count="3"/>
      <line num="74" type="stmt" count="15"/>
      <line num="75" type="stmt" count="6"/>
      <line num="78" type="stmt" count="15"/>
      <line num="79" type="stmt" count="3"/>
      <line num="82" type="stmt" count="15"/>
      <line num="83" type="stmt" count="6"/>
      <line num="84" type="stmt" count="6"/>
      <line num="85" type="stmt" count="6"/>
      <line num="86" type="stmt" count="6"/>
      <line num="87" type="stmt" count="6"/>
      <line num="88" type="stmt" count="6"/>
      <line num="89" type="stmt" count="6"/>
      <line num="91" type="stmt" count="9"/>
      <line num="94" type="stmt" count="15"/>
      <line num="95" type="stmt" count="15"/>
      <line num="96" type="stmt" count="15"/>
      <line num="97" type="stmt" count="15"/>
      <line num="98" type="stmt" count="15"/>
      <line num="99" type="stmt" count="15"/>
      <line num="100" type="stmt" count="15"/>
      <line num="101" type="stmt" count="15"/>
      <line num="103" type="stmt" count="15"/>
      <line num="104" type="stmt" count="8"/>
      <line num="106" type="stmt" count="7"/>
      <line num="107" type="stmt" count="7"/>
      <line num="108" type="stmt" count="7"/>
      <line num="109" type="stmt" count="3"/>
      <line num="111" type="stmt" count="7"/>
      <line num="112" type="stmt" count="3"/>
      <line num="114" type="stmt" count="7"/>
      <line num="115" type="stmt" count="1"/>
      <line num="117" type="stmt" count="7"/>
      <line num="118" type="stmt" count="7"/>
      <line num="120" type="stmt" count="7"/>
      <line num="121" type="stmt" count="3"/>
      <line num="124" type="stmt" count="7"/>
      <line num="125" type="stmt" count="7"/>
      <line num="126" type="stmt" count="7"/>
      <line num="127" type="stmt" count="7"/>
      <line num="128" type="stmt" count="7"/>
      <line num="129" type="stmt" count="7"/>
      <line num="131" type="stmt" count="7"/>
      <line num="132" type="stmt" count="3"/>
      <line num="134" type="stmt" count="4"/>
      <line num="135" type="stmt" count="4"/>
      <line num="146" type="method" name="addLegacyErrorsFromStatus" visibility="private" complexity="2" crap="2" count="11"/>
      <line num="149" type="stmt" count="11"/>
      <line num="150" type="stmt" count="11"/>
      <line num="151" type="stmt" count="11"/>
      <line num="152" type="stmt" count="11"/>
      <line num="153" type="stmt" count="11"/>
      <line num="154" type="stmt" count="11"/>
      <line num="155" type="stmt" count="11"/>
      <line num="156" type="stmt" count="11"/>
      <line num="157" type="stmt" count="11"/>
      <line num="158" type="stmt" count="11"/>
      <line num="159" type="stmt" count="11"/>
      <line num="161" type="stmt" count="11"/>
      <line num="162" type="stmt" count="11"/>
      <line num="166" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="1" count="25"/>
      <line num="167" type="stmt" count="25"/>
      <line num="168" type="stmt" count="25"/>
      <line num="169" type="stmt" count="25"/>
      <line num="170" type="stmt" count="25"/>
      <line num="171" type="stmt" count="25"/>
      <line num="172" type="stmt" count="25"/>
      <line num="173" type="stmt" count="25"/>
      <line num="174" type="stmt" count="25"/>
      <line num="175" type="stmt" count="25"/>
      <line num="176" type="stmt" count="25"/>
      <line num="177" type="stmt" count="25"/>
      <line num="178" type="stmt" count="25"/>
      <line num="179" type="stmt" count="25"/>
      <line num="180" type="stmt" count="25"/>
      <line num="181" type="stmt" count="25"/>
      <line num="182" type="stmt" count="25"/>
      <line num="183" type="stmt" count="25"/>
      <line num="184" type="stmt" count="25"/>
      <line num="185" type="stmt" count="25"/>
      <line num="186" type="stmt" count="25"/>
      <line num="187" type="stmt" count="25"/>
      <line num="188" type="stmt" count="25"/>
      <line num="189" type="stmt" count="25"/>
      <line num="190" type="stmt" count="25"/>
      <line num="191" type="stmt" count="25"/>
      <line num="192" type="stmt" count="25"/>
      <line num="193" type="stmt" count="25"/>
      <line num="194" type="stmt" count="25"/>
      <line num="195" type="stmt" count="25"/>
      <line num="196" type="stmt" count="25"/>
      <line num="197" type="stmt" count="25"/>
      <line num="198" type="stmt" count="25"/>
      <line num="199" type="stmt" count="25"/>
      <line num="200" type="stmt" count="25"/>
      <line num="201" type="stmt" count="25"/>
      <line num="202" type="stmt" count="25"/>
      <line num="203" type="stmt" count="25"/>
      <line num="204" type="stmt" count="25"/>
      <line num="205" type="stmt" count="25"/>
      <line num="206" type="stmt" count="25"/>
      <line num="207" type="stmt" count="25"/>
      <line num="208" type="stmt" count="25"/>
      <line num="209" type="stmt" count="25"/>
      <line num="210" type="stmt" count="25"/>
      <line num="211" type="stmt" count="25"/>
      <line num="212" type="stmt" count="25"/>
      <line num="213" type="stmt" count="25"/>
      <line num="214" type="stmt" count="25"/>
      <line num="215" type="stmt" count="25"/>
      <line num="216" type="stmt" count="25"/>
      <line num="217" type="stmt" count="25"/>
      <line num="218" type="stmt" count="25"/>
      <line num="219" type="stmt" count="25"/>
      <line num="226" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="227" type="stmt" count="1"/>
      <line num="228" type="stmt" count="1"/>
      <line num="229" type="stmt" count="1"/>
      <line num="230" type="stmt" count="1"/>
      <line num="234" type="method" name="mustBePosted" visibility="public" complexity="1" crap="1" count="23"/>
      <line num="235" type="stmt" count="23"/>
      <line num="239" type="method" name="isWriteMode" visibility="public" complexity="1" crap="1" count="23"/>
      <line num="240" type="stmt" count="23"/>
      <line num="244" type="method" name="needsToken" visibility="public" complexity="1" crap="1" count="25"/>
      <line num="245" type="stmt" count="25"/>
      <metrics loc="248" ncloc="231" classes="1" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="148" coveredstatements="148" elements="156" coveredelements="156"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Api/ApiQueryGlobalBlocks.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Api\ApiQueryGlobalBlocks" namespace="global">
        <metrics complexity="42" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="184" coveredstatements="184" elements="191" coveredelements="191"/>
      </class>
      <line num="52" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="34"/>
      <line num="60" type="stmt" count="34"/>
      <line num="61" type="stmt" count="34"/>
      <line num="64" type="method" name="getSummaryMessage" visibility="protected" complexity="2" crap="2" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="66" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="72" type="method" name="execute" visibility="public" complexity="35" crap="35" count="31"/>
      <line num="73" type="stmt" count="31"/>
      <line num="74" type="stmt" count="31"/>
      <line num="76" type="stmt" count="27"/>
      <line num="77" type="stmt" count="27"/>
      <line num="78" type="stmt" count="27"/>
      <line num="79" type="stmt" count="27"/>
      <line num="80" type="stmt" count="27"/>
      <line num="81" type="stmt" count="27"/>
      <line num="82" type="stmt" count="27"/>
      <line num="83" type="stmt" count="27"/>
      <line num="86" type="stmt" count="27"/>
      <line num="87" type="stmt" count="27"/>
      <line num="88" type="stmt" count="7"/>
      <line num="89" type="stmt" count="7"/>
      <line num="92" type="stmt" count="27"/>
      <line num="95" type="stmt" count="27"/>
      <line num="96" type="stmt" count="27"/>
      <line num="97" type="stmt" count="27"/>
      <line num="98" type="stmt" count="27"/>
      <line num="99" type="stmt" count="27"/>
      <line num="100" type="stmt" count="27"/>
      <line num="101" type="stmt" count="27"/>
      <line num="102" type="stmt" count="27"/>
      <line num="103" type="stmt" count="27"/>
      <line num="104" type="stmt" count="27"/>
      <line num="105" type="stmt" count="27"/>
      <line num="106" type="stmt" count="27"/>
      <line num="107" type="stmt" count="27"/>
      <line num="110" type="stmt" count="27"/>
      <line num="113" type="stmt" count="27"/>
      <line num="114" type="stmt" count="1"/>
      <line num="117" type="stmt" count="27"/>
      <line num="118" type="stmt" count="27"/>
      <line num="119" type="stmt" count="27"/>
      <line num="120" type="stmt" count="27"/>
      <line num="121" type="stmt" count="7"/>
      <line num="123" type="stmt" count="27"/>
      <line num="124" type="stmt" count="12"/>
      <line num="125" type="stmt" count="12"/>
      <line num="126" type="stmt" count="12"/>
      <line num="127" type="stmt" count="12"/>
      <line num="128" type="stmt" count="12"/>
      <line num="130" type="stmt" count="8"/>
      <line num="134" type="stmt" count="6"/>
      <line num="135" type="stmt" count="6"/>
      <line num="136" type="stmt" count="4"/>
      <line num="138" type="stmt" count="2"/>
      <line num="145" type="stmt" count="12"/>
      <line num="146" type="stmt" count="2"/>
      <line num="147" type="stmt" count="2"/>
      <line num="148" type="stmt" count="2"/>
      <line num="149" type="stmt" count="2"/>
      <line num="150" type="stmt" count="2"/>
      <line num="151" type="stmt" count="2"/>
      <line num="152" type="stmt" count="2"/>
      <line num="153" type="stmt" count="2"/>
      <line num="154" type="stmt" count="10"/>
      <line num="155" type="stmt" count="2"/>
      <line num="156" type="stmt" count="8"/>
      <line num="159" type="stmt" count="6"/>
      <line num="160" type="stmt" count="6"/>
      <line num="161" type="stmt" count="6"/>
      <line num="162" type="stmt" count="6"/>
      <line num="163" type="stmt" count="2"/>
      <line num="167" type="stmt" count="2"/>
      <line num="170" type="stmt" count="27"/>
      <line num="171" type="stmt" count="8"/>
      <line num="172" type="stmt" count="8"/>
      <line num="173" type="stmt" count="6"/>
      <line num="174" type="stmt" count="6"/>
      <line num="175" type="stmt" count="2"/>
      <line num="176" type="stmt" count="1"/>
      <line num="177" type="stmt" count="1"/>
      <line num="179" type="stmt" count="1"/>
      <line num="183" type="stmt" count="7"/>
      <line num="184" type="stmt" count="7"/>
      <line num="185" type="stmt" count="1"/>
      <line num="192" type="stmt" count="6"/>
      <line num="193" type="stmt" count="6"/>
      <line num="194" type="stmt" count="6"/>
      <line num="195" type="stmt" count="6"/>
      <line num="196" type="stmt" count="6"/>
      <line num="201" type="stmt" count="19"/>
      <line num="204" type="stmt" count="25"/>
      <line num="206" type="stmt" count="25"/>
      <line num="207" type="stmt" count="25"/>
      <line num="208" type="stmt" count="25"/>
      <line num="209" type="stmt" count="18"/>
      <line num="213" type="stmt" count="1"/>
      <line num="214" type="stmt" count="1"/>
      <line num="218" type="stmt" count="18"/>
      <line num="219" type="stmt" count="18"/>
      <line num="220" type="stmt" count="18"/>
      <line num="221" type="stmt" count="18"/>
      <line num="222" type="stmt" count="11"/>
      <line num="224" type="stmt" count="18"/>
      <line num="226" type="stmt" count="11"/>
      <line num="227" type="stmt" count="9"/>
      <line num="229" type="stmt" count="11"/>
      <line num="230" type="stmt" count="11"/>
      <line num="231" type="stmt" count="11"/>
      <line num="232" type="stmt" count="11"/>
      <line num="233" type="stmt" count="11"/>
      <line num="235" type="stmt" count="18"/>
      <line num="236" type="stmt" count="1"/>
      <line num="237" type="stmt" count="1"/>
      <line num="239" type="stmt" count="18"/>
      <line num="240" type="stmt" count="1"/>
      <line num="242" type="stmt" count="18"/>
      <line num="243" type="stmt" count="1"/>
      <line num="245" type="stmt" count="18"/>
      <line num="246" type="stmt" count="1"/>
      <line num="248" type="stmt" count="18"/>
      <line num="250" type="stmt" count="4"/>
      <line num="251" type="stmt" count="3"/>
      <line num="252" type="stmt" count="3"/>
      <line num="255" type="stmt" count="18"/>
      <line num="258" type="stmt" count="25"/>
      <line num="259" type="stmt" count="25"/>
      <line num="260" type="stmt" count="25"/>
      <line num="264" type="method" name="getCacheMode" visibility="public" complexity="1" crap="1" count="31"/>
      <line num="265" type="stmt" count="31"/>
      <line num="269" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="1" count="31"/>
      <line num="270" type="stmt" count="31"/>
      <line num="271" type="stmt" count="31"/>
      <line num="272" type="stmt" count="31"/>
      <line num="273" type="stmt" count="31"/>
      <line num="274" type="stmt" count="31"/>
      <line num="275" type="stmt" count="31"/>
      <line num="276" type="stmt" count="31"/>
      <line num="277" type="stmt" count="31"/>
      <line num="278" type="stmt" count="31"/>
      <line num="279" type="stmt" count="31"/>
      <line num="280" type="stmt" count="31"/>
      <line num="281" type="stmt" count="31"/>
      <line num="282" type="stmt" count="31"/>
      <line num="283" type="stmt" count="31"/>
      <line num="284" type="stmt" count="31"/>
      <line num="285" type="stmt" count="31"/>
      <line num="286" type="stmt" count="31"/>
      <line num="287" type="stmt" count="31"/>
      <line num="288" type="stmt" count="31"/>
      <line num="289" type="stmt" count="31"/>
      <line num="290" type="stmt" count="31"/>
      <line num="291" type="stmt" count="31"/>
      <line num="292" type="stmt" count="31"/>
      <line num="293" type="stmt" count="31"/>
      <line num="294" type="stmt" count="31"/>
      <line num="295" type="stmt" count="31"/>
      <line num="296" type="stmt" count="31"/>
      <line num="297" type="stmt" count="31"/>
      <line num="298" type="stmt" count="31"/>
      <line num="299" type="stmt" count="31"/>
      <line num="300" type="stmt" count="31"/>
      <line num="301" type="stmt" count="31"/>
      <line num="302" type="stmt" count="31"/>
      <line num="303" type="stmt" count="31"/>
      <line num="304" type="stmt" count="31"/>
      <line num="305" type="stmt" count="31"/>
      <line num="306" type="stmt" count="31"/>
      <line num="307" type="stmt" count="31"/>
      <line num="308" type="stmt" count="31"/>
      <line num="309" type="stmt" count="31"/>
      <line num="310" type="stmt" count="31"/>
      <line num="311" type="stmt" count="31"/>
      <line num="312" type="stmt" count="31"/>
      <line num="313" type="stmt" count="31"/>
      <line num="314" type="stmt" count="31"/>
      <line num="315" type="stmt" count="31"/>
      <line num="316" type="stmt" count="31"/>
      <line num="317" type="stmt" count="31"/>
      <line num="318" type="stmt" count="31"/>
      <line num="319" type="stmt" count="31"/>
      <line num="320" type="stmt" count="31"/>
      <line num="324" type="method" name="getDB" visibility="protected" complexity="1" crap="1" count="27"/>
      <line num="325" type="stmt" count="27"/>
      <line num="332" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="1" 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"/>
      <metrics loc="341" ncloc="278" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="184" coveredstatements="184" elements="191" coveredelements="191"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/CentralAuthHooks.php">
      <class name="MediaWiki\Extension\GlobalBlocking\CentralAuthHooks" namespace="global">
        <metrics complexity="6" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="21" elements="23" coveredelements="23"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="27" type="stmt" count="3"/>
      <line num="31" type="method" name="onCentralAuthInfoFields" visibility="public" complexity="5" crap="5" count="3"/>
      <line num="34" type="stmt" count="3"/>
      <line num="35" type="stmt" count="3"/>
      <line num="36" type="stmt" count="3"/>
      <line num="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="44" type="stmt" count="2"/>
      <line num="47" type="stmt" count="3"/>
      <line num="48" type="stmt" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="2"/>
      <line num="52" type="stmt" count="2"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="1"/>
      <line num="60" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <metrics loc="66" ncloc="58" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="21" elements="23" coveredelements="23"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/GlobalBlock.php">
      <class name="MediaWiki\Extension\GlobalBlocking\GlobalBlock" namespace="global">
        <metrics complexity="22" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="54" elements="65" coveredelements="65"/>
      </class>
      <line num="29" type="method" name="newFromRow" visibility="public" complexity="1" crap="1" count="26"/>
      <line num="30" type="stmt" count="26"/>
      <line num="31" type="stmt" count="26"/>
      <line num="32" type="stmt" count="26"/>
      <line num="33" type="stmt" count="26"/>
      <line num="34" type="stmt" count="26"/>
      <line num="35" type="stmt" count="26"/>
      <line num="36" type="stmt" count="26"/>
      <line num="37" type="stmt" count="26"/>
      <line num="38" type="stmt" count="26"/>
      <line num="39" type="stmt" count="26"/>
      <line num="40" type="stmt" count="26"/>
      <line num="41" type="stmt" count="26"/>
      <line num="42" type="stmt" count="26"/>
      <line num="43" type="stmt" count="26"/>
      <line num="44" type="stmt" count="26"/>
      <line num="45" type="stmt" count="26"/>
      <line num="46" type="stmt" count="26"/>
      <line num="47" type="stmt" count="26"/>
      <line num="65" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="26"/>
      <line num="68" type="stmt" count="26"/>
      <line num="70" type="stmt" count="26"/>
      <line num="72" type="stmt" count="26"/>
      <line num="73" type="stmt" count="26"/>
      <line num="75" type="stmt" count="26"/>
      <line num="76" type="stmt" count="26"/>
      <line num="77" type="stmt" count="26"/>
      <line num="78" type="stmt" count="26"/>
      <line num="79" type="stmt" count="26"/>
      <line num="80" type="stmt" count="26"/>
      <line num="86" type="method" name="getBy" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="87" type="stmt" count="2"/>
      <line num="88" type="stmt" count="2"/>
      <line num="94" type="method" name="getByName" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="95" type="stmt" count="2"/>
      <line num="101" type="method" name="getBlocker" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="102" type="stmt" count="4"/>
      <line num="108" type="method" name="getIdentifier" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="116" type="method" name="getId" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="117" type="stmt" count="2"/>
      <line num="120" type="method" name="getXff" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="121" type="stmt" count="2"/>
      <line num="129" type="method" name="isAutoblocking" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="130" type="stmt" count="2"/>
      <line num="134" type="method" name="getType" visibility="public" complexity="2" crap="2" count="26"/>
      <line num="135" type="stmt" count="26"/>
      <line num="141" type="method" name="setGlobalBlocker" visibility="private" complexity="8" crap="8" count="26"/>
      <line num="142" type="stmt" count="26"/>
      <line num="143" type="stmt" count="26"/>
      <line num="145" type="stmt" count="26"/>
      <line num="148" type="stmt" count="26"/>
      <line num="149" type="stmt" count="23"/>
      <line num="150" type="stmt" count="23"/>
      <line num="155" type="stmt" count="3"/>
      <line num="156" type="stmt" count="3"/>
      <line num="158" type="stmt" count="1"/>
      <line num="159" type="stmt" count="1"/>
      <line num="163" type="stmt" count="2"/>
      <line num="165" type="stmt" count="2"/>
      <line num="166" type="stmt" count="1"/>
      <line num="167" type="stmt" count="1"/>
      <line num="168" type="stmt" count="1"/>
      <line num="169" type="stmt" count="1"/>
      <line num="174" type="stmt" count="1"/>
      <metrics loc="177" ncloc="121" classes="1" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="54" elements="65" coveredelements="65"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/GlobalBlockLogFormatter.php">
      <class name="MediaWiki\Extension\GlobalBlocking\GlobalBlockLogFormatter" namespace="global">
        <metrics complexity="31" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="97" coveredstatements="97" elements="102" coveredelements="102"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="29"/>
      <line num="33" type="stmt" count="29"/>
      <line num="36" type="method" name="getMessageKey" visibility="protected" complexity="8" crap="8" count="27"/>
      <line num="37" type="stmt" count="27"/>
      <line num="39" type="stmt" count="27"/>
      <line num="40" type="stmt" count="2"/>
      <line num="41" type="stmt" count="25"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="24"/>
      <line num="44" type="stmt" count="2"/>
      <line num="45" type="stmt" count="22"/>
      <line num="49" type="stmt" count="16"/>
      <line num="50" type="stmt" count="6"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="5"/>
      <line num="53" type="stmt" count="4"/>
      <line num="54" type="stmt" count="1"/>
      <line num="56" type="stmt" count="3"/>
      <line num="59" type="stmt" count="1"/>
      <line num="62" type="stmt" count="26"/>
      <line num="85" type="method" name="getMessageParameters" visibility="protected" complexity="17" crap="17" count="26"/>
      <line num="86" type="stmt" count="26"/>
      <line num="88" type="stmt" count="26"/>
      <line num="89" type="stmt" count="26"/>
      <line num="90" type="stmt" count="7"/>
      <line num="94" type="stmt" count="7"/>
      <line num="95" type="stmt" count="7"/>
      <line num="96" type="stmt" count="5"/>
      <line num="98" type="stmt" count="2"/>
      <line num="99" type="stmt" count="3"/>
      <line num="101" type="stmt" count="2"/>
      <line num="104" type="stmt" count="5"/>
      <line num="105" type="stmt" count="5"/>
      <line num="106" type="stmt" count="3"/>
      <line num="110" type="stmt" count="5"/>
      <line num="111" type="stmt" count="5"/>
      <line num="113" type="stmt" count="5"/>
      <line num="114" type="stmt" count="5"/>
      <line num="115" type="stmt" count="5"/>
      <line num="116" type="stmt" count="5"/>
      <line num="118" type="stmt" count="2"/>
      <line num="119" type="stmt" count="2"/>
      <line num="120" type="stmt" count="2"/>
      <line num="124" type="stmt" count="2"/>
      <line num="125" type="stmt" count="2"/>
      <line num="126" type="stmt" count="2"/>
      <line num="129" type="stmt" count="19"/>
      <line num="130" type="stmt" count="14"/>
      <line num="131" type="stmt" count="14"/>
      <line num="132" type="stmt" count="14"/>
      <line num="133" type="stmt" count="14"/>
      <line num="134" type="stmt" count="14"/>
      <line num="136" type="stmt" count="14"/>
      <line num="137" type="stmt" count="14"/>
      <line num="138" type="stmt" count="1"/>
      <line num="142" type="stmt" count="14"/>
      <line num="143" type="stmt" count="10"/>
      <line num="149" type="stmt" count="14"/>
      <line num="150" type="stmt" count="14"/>
      <line num="152" type="stmt" count="11"/>
      <line num="154" type="stmt" count="14"/>
      <line num="155" type="stmt" count="1"/>
      <line num="158" type="stmt" count="14"/>
      <line num="159" type="stmt" count="12"/>
      <line num="160" type="stmt" count="12"/>
      <line num="161" type="stmt" count="12"/>
      <line num="162" type="stmt" count="12"/>
      <line num="164" type="stmt" count="2"/>
      <line num="168" type="stmt" count="26"/>
      <line num="169" type="stmt" count="26"/>
      <line num="170" type="stmt" count="26"/>
      <line num="172" type="stmt" count="26"/>
      <line num="175" type="stmt" count="2"/>
      <line num="176" type="stmt" count="2"/>
      <line num="177" type="stmt" count="2"/>
      <line num="178" type="stmt" count="2"/>
      <line num="179" type="stmt" count="2"/>
      <line num="180" type="stmt" count="2"/>
      <line num="182" type="stmt" count="24"/>
      <line num="185" type="stmt" count="1"/>
      <line num="189" type="stmt" count="23"/>
      <line num="190" type="stmt" count="23"/>
      <line num="191" type="stmt" count="23"/>
      <line num="193" type="stmt" count="24"/>
      <line num="196" type="stmt" count="26"/>
      <line num="205" type="method" name="getActionLinks" visibility="public" complexity="3" crap="3" count="9"/>
      <line num="206" type="stmt" count="9"/>
      <line num="208" type="stmt" count="9"/>
      <line num="209" type="stmt" count="9"/>
      <line num="210" type="stmt" count="9"/>
      <line num="211" type="stmt" count="9"/>
      <line num="214" type="stmt" count="4"/>
      <line num="217" type="stmt" count="5"/>
      <line num="218" type="stmt" count="5"/>
      <line num="219" type="stmt" count="5"/>
      <line num="227" type="method" name="getUserIdentityForTarget" visibility="private" complexity="2" crap="2" count="28"/>
      <line num="228" type="stmt" count="28"/>
      <line num="229" type="stmt" count="28"/>
      <line num="230" type="stmt" count="28"/>
      <line num="235" type="stmt" count="4"/>
      <line num="237" type="stmt" count="28"/>
      <line num="238" type="stmt" count="28"/>
      <metrics loc="241" ncloc="174" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="97" coveredstatements="97" elements="102" coveredelements="102"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/GlobalBlockStatus.php">
      <class name="MediaWiki\Extension\GlobalBlocking\GlobalBlockStatus" namespace="global">
        <metrics complexity="11" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="17" coveredelements="17"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="27" type="stmt" count="4"/>
      <line num="28" type="stmt" count="2"/>
      <line num="29" type="stmt" count="2"/>
      <line num="31" type="stmt" count="4"/>
      <line num="32" type="stmt" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="44" type="method" name="withLocalStatus" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="45" type="stmt" count="2"/>
      <line num="53" type="method" name="isGlobalBlockOK" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="54" type="stmt" count="4"/>
      <line num="63" type="method" name="isLocalBlockOK" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="64" type="stmt" count="4"/>
      <line num="73" type="method" name="hasLocalBlockError" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="74" type="stmt" count="4"/>
      <line num="81" type="method" name="getGlobalStatus" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="82" type="stmt" count="4"/>
      <metrics loc="85" ncloc="43" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="17" coveredelements="17"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/GlobalBlockingHooks.php">
      <class name="MediaWiki\Extension\GlobalBlocking\GlobalBlockingHooks" namespace="global">
        <metrics complexity="39" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="169" coveredstatements="169" elements="179" coveredelements="179"/>
      </class>
      <line num="51" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="50"/>
      <line num="65" type="stmt" count="50"/>
      <line num="76" type="method" name="onGetUserBlock" visibility="public" complexity="4" crap="4" count="12"/>
      <line num="77" type="stmt" count="12"/>
      <line num="78" type="stmt" count="1"/>
      <line num="81" type="stmt" count="11"/>
      <line num="82" type="stmt" count="11"/>
      <line num="83" type="stmt" count="4"/>
      <line num="86" type="stmt" count="7"/>
      <line num="87" type="stmt" count="6"/>
      <line num="88" type="stmt" count="6"/>
      <line num="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="97" type="stmt" count="1"/>
      <line num="98" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="109" type="method" name="onGetBlockErrorMessageKey" visibility="public" complexity="8" crap="8" count="8"/>
      <line num="110" type="stmt" count="8"/>
      <line num="111" type="stmt" count="7"/>
      <line num="112" type="stmt" count="2"/>
      <line num="113" type="stmt" count="2"/>
      <line num="115" type="stmt" count="1"/>
      <line num="117" type="stmt" count="5"/>
      <line num="118" type="stmt" count="1"/>
      <line num="119" type="stmt" count="4"/>
      <line num="120" type="stmt" count="1"/>
      <line num="121" type="stmt" count="3"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="2"/>
      <line num="124" type="stmt" count="1"/>
      <line num="126" type="stmt" count="1"/>
      <line num="128" type="stmt" count="7"/>
      <line num="130" type="stmt" count="1"/>
      <line num="140" type="method" name="onOtherBlockLogLink" visibility="public" complexity="4" crap="4" count="10"/>
      <line num="141" type="stmt" count="10"/>
      <line num="143" type="stmt" count="10"/>
      <line num="144" type="stmt" count="10"/>
      <line num="145" type="stmt" count="10"/>
      <line num="146" type="stmt" count="4"/>
      <line num="147" type="stmt" count="6"/>
      <line num="150" type="stmt" count="1"/>
      <line num="152" type="stmt" count="5"/>
      <line num="158" type="stmt" count="9"/>
      <line num="159" type="stmt" count="9"/>
      <line num="160" type="stmt" count="9"/>
      <line num="161" type="stmt" count="9"/>
      <line num="163" type="stmt" count="4"/>
      <line num="164" type="stmt" count="4"/>
      <line num="165" type="stmt" count="4"/>
      <line num="166" type="stmt" count="4"/>
      <line num="167" type="stmt" count="4"/>
      <line num="170" type="stmt" count="9"/>
      <line num="181" type="method" name="onSpecialContributionsBeforeMainOutput" visibility="public" complexity="6" crap="6" count="12"/>
      <line num="182" type="stmt" count="12"/>
      <line num="184" type="stmt" count="12"/>
      <line num="185" type="stmt" count="1"/>
      <line num="188" type="stmt" count="11"/>
      <line num="189" type="stmt" count="5"/>
      <line num="190" type="stmt" count="5"/>
      <line num="191" type="stmt" count="6"/>
      <line num="192" type="stmt" count="6"/>
      <line num="193" type="stmt" count="6"/>
      <line num="195" type="stmt" count="1"/>
      <line num="197" type="stmt" count="5"/>
      <line num="198" type="stmt" count="5"/>
      <line num="202" type="stmt" count="10"/>
      <line num="203" type="stmt" count="10"/>
      <line num="204" type="stmt" count="10"/>
      <line num="206" type="stmt" count="10"/>
      <line num="208" type="stmt" count="5"/>
      <line num="209" type="stmt" count="5"/>
      <line num="210" type="stmt" count="5"/>
      <line num="211" type="stmt" count="5"/>
      <line num="212" type="stmt" count="5"/>
      <line num="213" type="stmt" count="5"/>
      <line num="217" type="stmt" count="5"/>
      <line num="218" type="stmt" count="1"/>
      <line num="219" type="stmt" count="1"/>
      <line num="220" type="stmt" count="1"/>
      <line num="221" type="stmt" count="1"/>
      <line num="224" type="stmt" count="5"/>
      <line num="225" type="stmt" count="5"/>
      <line num="226" type="stmt" count="5"/>
      <line num="227" type="stmt" count="5"/>
      <line num="228" type="stmt" count="5"/>
      <line num="231" type="stmt" count="10"/>
      <line num="242" type="method" name="hasMultipleGlobalBlockLogs" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="243" type="stmt" count="5"/>
      <line num="244" type="stmt" count="5"/>
      <line num="245" type="stmt" count="5"/>
      <line num="246" type="stmt" count="5"/>
      <line num="247" type="stmt" count="5"/>
      <line num="248" type="stmt" count="5"/>
      <line num="249" type="stmt" count="5"/>
      <line num="250" type="stmt" count="5"/>
      <line num="251" type="stmt" count="5"/>
      <line num="252" type="stmt" count="5"/>
      <line num="253" type="stmt" count="5"/>
      <line num="254" type="stmt" count="5"/>
      <line num="255" type="stmt" count="5"/>
      <line num="258" type="method" name="getMockLogLineFromActiveGlobalBlock" visibility="private" complexity="2" crap="2" count="5"/>
      <line num="259" type="stmt" count="5"/>
      <line num="262" type="stmt" count="5"/>
      <line num="263" 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="273" type="stmt" count="5"/>
      <line num="274" type="stmt" count="5"/>
      <line num="275" type="stmt" count="5"/>
      <line num="276" type="stmt" count="5"/>
      <line num="277" type="stmt" count="5"/>
      <line num="278" type="stmt" count="5"/>
      <line num="280" type="stmt" count="5"/>
      <line num="282" type="stmt" count="5"/>
      <line num="283" type="stmt" count="5"/>
      <line num="284" type="stmt" count="5"/>
      <line num="285" type="stmt" count="5"/>
      <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="290" type="stmt" count="5"/>
      <line num="291" type="stmt" count="5"/>
      <line num="292" type="stmt" count="5"/>
      <line num="293" type="stmt" count="5"/>
      <line num="294" type="stmt" count="5"/>
      <line num="296" type="stmt" count="5"/>
      <line num="308" type="method" name="onContributionsToolLinks" visibility="public" complexity="7" crap="7" count="10"/>
      <line num="311" type="stmt" count="10"/>
      <line num="312" type="stmt" count="10"/>
      <line num="313" type="stmt" count="1"/>
      <line num="314" type="stmt" count="9"/>
      <line num="315" type="stmt" count="4"/>
      <line num="316" type="stmt" count="5"/>
      <line num="317" type="stmt" count="5"/>
      <line num="318" type="stmt" count="5"/>
      <line num="322" type="stmt" count="1"/>
      <line num="324" type="stmt" count="4"/>
      <line num="327" type="stmt" count="9"/>
      <line num="329" type="stmt" count="1"/>
      <line num="332" type="stmt" count="8"/>
      <line num="333" type="stmt" count="8"/>
      <line num="334" type="stmt" count="7"/>
      <line num="335" type="stmt" count="3"/>
      <line num="336" type="stmt" count="3"/>
      <line num="337" type="stmt" count="3"/>
      <line num="338" type="stmt" count="3"/>
      <line num="340" type="stmt" count="4"/>
      <line num="341" type="stmt" count="4"/>
      <line num="342" type="stmt" count="4"/>
      <line num="343" type="stmt" count="4"/>
      <line num="345" type="stmt" count="4"/>
      <line num="346" type="stmt" count="4"/>
      <line num="347" type="stmt" count="4"/>
      <line num="348" type="stmt" count="4"/>
      <line num="352" type="stmt" count="8"/>
      <line num="353" type="stmt" count="8"/>
      <line num="354" type="stmt" count="8"/>
      <line num="355" type="stmt" count="8"/>
      <line num="356" type="stmt" count="8"/>
      <line num="357" type="stmt" count="8"/>
      <line num="358" type="stmt" count="8"/>
      <line num="366" type="method" name="onGetLogTypesOnUser" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="367" type="stmt" count="1"/>
      <line num="369" type="stmt" count="1"/>
      <line num="373" type="method" name="onSpreadAnyEditBlock" visibility="public" complexity="5" crap="5" count="4"/>
      <line num="379" type="stmt" count="4"/>
      <line num="380" type="stmt" count="4"/>
      <line num="381" type="stmt" count="3"/>
      <line num="385" type="stmt" count="1"/>
      <line num="388" type="stmt" count="1"/>
      <line num="389" type="stmt" count="1"/>
      <line num="390" type="stmt" count="1"/>
      <metrics loc="394" ncloc="305" classes="1" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="169" coveredstatements="169" elements="179" coveredelements="179"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/GlobalBlockingSchemaHooks.php">
      <class name="MediaWiki\Extension\GlobalBlocking\GlobalBlockingSchemaHooks" namespace="global">
        <metrics complexity="4" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="123" ncloc="113" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/GlobalBlockingServices.php">
      <class name="MediaWiki\Extension\GlobalBlocking\GlobalBlockingServices" namespace="global">
        <metrics complexity="14" methods="14" coveredmethods="14" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="14" elements="28" coveredelements="28"/>
      </class>
      <line num="43" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="44" type="stmt" count="12"/>
      <line num="51" type="method" name="wrap" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="52" type="stmt" count="12"/>
      <line num="55" type="method" name="getReasonFormatter" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="59" type="method" name="getGlobalBlockingConnectionProvider" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="60" type="stmt" count="8"/>
      <line num="63" type="method" name="getGlobalBlockingBlockPurger" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="64" type="stmt" count="3"/>
      <line num="67" type="method" name="getGlobalBlockLocalStatusLookup" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="68" type="stmt" count="7"/>
      <line num="71" type="method" name="getGlobalBlockLocalStatusManager" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="75" type="method" name="getGlobalBlockLookup" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="76" type="stmt" count="6"/>
      <line num="79" type="method" name="getGlobalBlockManager" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="83" type="method" name="getGlobalBlockingLinkBuilder" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="84" type="stmt" count="2"/>
      <line num="87" type="method" name="getGlobalBlockingUserVisibilityLookup" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="88" type="stmt" count="2"/>
      <line num="91" type="method" name="getGlobalAutoblockExemptionListProvider" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="92" type="stmt" count="2"/>
      <line num="95" type="method" name="getGlobalBlockDetailsRenderer" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="99" type="method" name="getGlobalBlockingExpirySelectorBuilder" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <metrics loc="103" ncloc="77" classes="1" methods="14" coveredmethods="14" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="14" elements="28" coveredelements="28"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Hooks/GlobalBlockingGetRetroactiveAutoblockIPsHook.php">
      <metrics loc="24" 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/GlobalBlocking/includes/Hooks/GlobalBlockingGlobalBlockAuditHook.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/GlobalBlocking/includes/Hooks/GlobalBlockingGlobalBlockLocalStatusChangeAuditHook.php">
      <metrics loc="23" ncloc="13" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Hooks/GlobalBlockingGlobalUnblockAuditHook.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/GlobalBlocking/includes/Hooks/HookRunner.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Hooks\HookRunner" namespace="global">
        <metrics complexity="5" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="23" coveredelements="23"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="17" type="stmt" count="4"/>
      <line num="20" type="method" name="onGlobalBlockingGetRetroactiveAutoblockIPs" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="28" type="method" name="onGlobalBlockingGlobalBlockAudit" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="36" type="method" name="onGlobalBlockingGlobalBlockLocalStatusChangeAudit" visibility="public" complexity="1" crap="1" 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="47" type="method" name="onGlobalBlockingGlobalUnblockAudit" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <metrics loc="54" ncloc="50" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="23" coveredelements="23"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/ServiceWiring.php">
      <metrics loc="180" ncloc="175" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockLocalStatusLookup.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockLocalStatusLookup" namespace="global">
        <metrics complexity="14" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="56" coveredstatements="56" elements="61" coveredelements="61"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="31" type="stmt" count="14"/>
      <line num="44" type="method" name="isGlobalBlockLocallyDisabledForBlockApplication" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="47" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="50" type="stmt" count="2"/>
      <line num="51" type="stmt" count="2"/>
      <line num="52" type="stmt" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="55" type="stmt" count="2"/>
      <line num="56" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="64" type="stmt" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="86" type="method" name="getLocalStatusInfo" visibility="public" complexity="3" crap="3" count="6"/>
      <line num="87" type="stmt" count="6"/>
      <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="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="96" type="stmt" count="5"/>
      <line num="97" type="stmt" count="5"/>
      <line num="98" type="stmt" count="5"/>
      <line num="99" type="stmt" count="5"/>
      <line num="100" type="stmt" count="5"/>
      <line num="101" type="stmt" count="5"/>
      <line num="102" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <line num="106" type="stmt" count="3"/>
      <line num="109" type="stmt" count="2"/>
      <line num="123" type="method" name="getLocallyDisabledGlobalBlockIds" visibility="public" complexity="3" crap="3" count="7"/>
      <line num="124" type="stmt" count="7"/>
      <line num="125" type="stmt" count="2"/>
      <line num="128" type="stmt" count="5"/>
      <line num="129" type="stmt" count="2"/>
      <line num="132" type="stmt" count="3"/>
      <line num="133" type="stmt" count="3"/>
      <line num="134" type="stmt" count="3"/>
      <line num="135" type="stmt" count="3"/>
      <line num="136" type="stmt" count="3"/>
      <line num="137" type="stmt" count="3"/>
      <line num="138" type="stmt" count="3"/>
      <line num="139" type="stmt" count="3"/>
      <line num="151" type="method" name="doGlobalBlocksApplyOnWiki" visibility="public" complexity="4" crap="4" count="13"/>
      <line num="152" type="stmt" count="13"/>
      <line num="153" type="stmt" count="11"/>
      <line num="155" type="stmt" count="2"/>
      <line num="156" type="stmt" count="2"/>
      <line num="157" type="stmt" count="2"/>
      <line num="158" type="stmt" count="2"/>
      <line num="159" type="stmt" count="2"/>
      <line num="160" type="stmt" count="2"/>
      <metrics loc="164" ncloc="112" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="56" coveredstatements="56" elements="61" coveredelements="61"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockLocalStatusManager.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockLocalStatusManager" namespace="global">
        <metrics complexity="14" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="62" coveredstatements="62" elements="69" coveredelements="69"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="13"/>
      <line num="28" type="stmt" count="13"/>
      <line num="35" type="method" name="getNonExistentTargetMessageKey" visibility="private" complexity="2" crap="2" count="5"/>
      <line num="36" type="stmt" count="5"/>
      <line num="37" type="stmt" count="5"/>
      <line num="39" type="stmt" count="2"/>
      <line num="41" type="stmt" count="5"/>
      <line num="55" type="method" name="locallyDisableBlock" visibility="public" complexity="3" crap="3" count="10"/>
      <line num="60" type="stmt" count="10"/>
      <line num="63" type="stmt" count="10"/>
      <line num="64" type="stmt" count="10"/>
      <line num="65" type="stmt" count="3"/>
      <line num="69" type="stmt" count="7"/>
      <line num="70" type="stmt" count="7"/>
      <line num="71" type="stmt" count="7"/>
      <line num="72" type="stmt" count="1"/>
      <line num="77" type="stmt" count="7"/>
      <line num="78" type="stmt" count="7"/>
      <line num="79" type="stmt" count="7"/>
      <line num="80" type="stmt" count="7"/>
      <line num="81" type="stmt" count="7"/>
      <line num="82" type="stmt" count="7"/>
      <line num="84" type="stmt" count="7"/>
      <line num="85" type="stmt" count="7"/>
      <line num="86" type="stmt" count="7"/>
      <line num="87" type="stmt" count="7"/>
      <line num="88" type="stmt" count="7"/>
      <line num="89" type="stmt" count="7"/>
      <line num="90" type="stmt" count="7"/>
      <line num="91" type="stmt" count="7"/>
      <line num="92" type="stmt" count="7"/>
      <line num="93" type="stmt" count="7"/>
      <line num="94" type="stmt" count="7"/>
      <line num="96" type="stmt" count="7"/>
      <line num="97" type="stmt" count="7"/>
      <line num="98" type="stmt" count="7"/>
      <line num="110" type="method" name="locallyEnableBlock" visibility="public" complexity="3" crap="3" count="7"/>
      <line num="114" type="stmt" count="7"/>
      <line num="115" type="stmt" count="7"/>
      <line num="116" type="stmt" count="2"/>
      <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="2"/>
      <line num="127" type="stmt" count="3"/>
      <line num="128" type="stmt" count="3"/>
      <line num="129" type="stmt" count="3"/>
      <line num="130" type="stmt" count="3"/>
      <line num="131" type="stmt" count="3"/>
      <line num="133" type="stmt" count="3"/>
      <line num="134" type="stmt" count="3"/>
      <line num="135" type="stmt" count="3"/>
      <line num="138" type="method" name="runLocalStatusChangeHook" visibility="private" complexity="2" crap="2" count="7"/>
      <line num="141" type="stmt" count="7"/>
      <line num="142" type="stmt" count="7"/>
      <line num="143" type="stmt" count="7"/>
      <line num="144" type="stmt" count="7"/>
      <line num="145" type="stmt" count="7"/>
      <line num="155" type="method" name="getTargetForLogEntry" visibility="private" complexity="2" crap="2" count="7"/>
      <line num="158" type="stmt" count="7"/>
      <line num="159" type="stmt" count="2"/>
      <line num="161" type="stmt" count="5"/>
      <line num="172" type="method" name="addLogEntry" visibility="protected" complexity="1" crap="1" count="7"/>
      <line num="173" type="stmt" count="7"/>
      <line num="174" type="stmt" count="7"/>
      <line num="175" type="stmt" count="7"/>
      <line num="176" type="stmt" count="7"/>
      <line num="177" type="stmt" count="7"/>
      <line num="178" type="stmt" count="7"/>
      <metrics loc="181" ncloc="132" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="62" coveredstatements="62" elements="69" coveredelements="69"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockLookup.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockLookup" namespace="global">
        <metrics complexity="86" methods="20" coveredmethods="20" conditionals="0" coveredconditionals="0" statements="227" coveredstatements="227" elements="247" coveredelements="247"/>
      </class>
      <line num="57" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="92"/>
      <line num="66" type="stmt" count="92"/>
      <line num="80" type="method" name="getUserBlock" visibility="public" complexity="4" crap="4" count="44"/>
      <line num="81" type="stmt" count="44"/>
      <line num="83" type="stmt" count="44"/>
      <line num="84" type="stmt" count="21"/>
      <line num="86" type="stmt" count="21"/>
      <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="3"/>
      <line num="103" type="stmt" count="21"/>
      <line num="106" type="stmt" count="23"/>
      <line num="120" type="method" name="getAutoblockReason" visibility="public" complexity="4" crap="4" count="7"/>
      <line num="123" type="stmt" count="7"/>
      <line num="124" type="stmt" count="7"/>
      <line num="125" type="stmt" count="5"/>
      <line num="127" type="stmt" count="2"/>
      <line num="130" type="stmt" count="7"/>
      <line num="131" type="stmt" count="1"/>
      <line num="133" type="stmt" count="6"/>
      <line num="135" type="stmt" count="7"/>
      <line num="145" type="method" name="getUserBlockDetailsCacheKey" visibility="private" complexity="1" crap="1" count="44"/>
      <line num="146" type="stmt" count="44"/>
      <line num="157" type="method" name="addToUserBlockDetailsCache" visibility="private" complexity="1" crap="1" count="44"/>
      <line num="158" type="stmt" count="44"/>
      <line num="159" type="stmt" count="44"/>
      <line num="169" type="method" name="getUserBlockDetailsCacheResult" visibility="protected" complexity="1" crap="1" count="44"/>
      <line num="170" type="stmt" count="44"/>
      <line num="185" type="method" name="getUserBlockDetails" visibility="private" complexity="15" crap="15" count="44"/>
      <line num="187" type="stmt" count="44"/>
      <line num="188" type="stmt" count="44"/>
      <line num="189" type="stmt" count="1"/>
      <line num="192" type="stmt" count="44"/>
      <line num="193" type="stmt" count="44"/>
      <line num="194" type="stmt" count="44"/>
      <line num="199" type="stmt" count="44"/>
      <line num="200" type="stmt" count="44"/>
      <line num="201" type="stmt" count="3"/>
      <line num="204" type="stmt" count="44"/>
      <line num="205" type="stmt" count="44"/>
      <line num="207" type="stmt" count="7"/>
      <line num="209" type="stmt" count="44"/>
      <line num="211" type="stmt" count="28"/>
      <line num="214" type="stmt" count="44"/>
      <line num="215" type="stmt" count="44"/>
      <line num="216" type="stmt" count="28"/>
      <line num="219" type="stmt" count="44"/>
      <line num="220" type="stmt" count="44"/>
      <line num="221" type="stmt" count="10"/>
      <line num="227" type="stmt" count="34"/>
      <line num="228" type="stmt" count="34"/>
      <line num="230" type="stmt" count="34"/>
      <line num="231" type="stmt" count="34"/>
      <line num="233" type="stmt" count="19"/>
      <line num="234" type="stmt" count="19"/>
      <line num="235" type="stmt" count="19"/>
      <line num="238" type="stmt" count="19"/>
      <line num="239" type="stmt" count="19"/>
      <line num="240" type="stmt" count="19"/>
      <line num="241" type="stmt" count="11"/>
      <line num="247" type="stmt" count="23"/>
      <line num="256" type="method" name="getTargetType" visibility="private" complexity="4" crap="4" count="28"/>
      <line num="257" type="stmt" count="28"/>
      <line num="258" type="stmt" count="9"/>
      <line num="261" type="stmt" count="23"/>
      <line num="262" type="stmt" count="23"/>
      <line num="263" type="stmt" count="10"/>
      <line num="264" type="stmt" count="16"/>
      <line num="265" type="stmt" count="13"/>
      <line num="267" type="stmt" count="5"/>
      <line num="285" type="method" name="chooseMostSpecificBlock" visibility="private" complexity="9" crap="9" count="51"/>
      <line num="288" type="stmt" count="51"/>
      <line num="291" type="stmt" count="51"/>
      <line num="292" type="stmt" count="51"/>
      <line num="295" type="stmt" count="29"/>
      <line num="296" type="stmt" count="29"/>
      <line num="297" type="stmt" count="29"/>
      <line num="299" type="stmt" count="3"/>
      <line num="301" type="stmt" count="28"/>
      <line num="302" type="stmt" count="28"/>
      <line num="303" type="stmt" count="28"/>
      <line num="306" type="stmt" count="13"/>
      <line num="307" type="stmt" count="13"/>
      <line num="308" type="stmt" count="13"/>
      <line num="311" type="stmt" count="13"/>
      <line num="313" type="stmt" count="21"/>
      <line num="320" type="stmt" count="28"/>
      <line num="321" type="stmt" count="24"/>
      <line num="324" type="stmt" count="28"/>
      <line num="325" type="stmt" count="28"/>
      <line num="326" type="stmt" count="28"/>
      <line num="330" type="stmt" count="51"/>
      <line num="346" type="method" name="getGlobalBlockingBlock" visibility="public" complexity="2" crap="2" count="54"/>
      <line num="347" type="stmt" count="54"/>
      <line num="348" type="stmt" count="54"/>
      <line num="350" type="stmt" count="3"/>
      <line num="353" type="stmt" count="51"/>
      <line num="354" type="stmt" count="51"/>
      <line num="355" type="stmt" count="51"/>
      <line num="356" type="stmt" count="51"/>
      <line num="357" type="stmt" count="51"/>
      <line num="358" type="stmt" count="51"/>
      <line num="359" type="stmt" count="51"/>
      <line num="360" type="stmt" count="51"/>
      <line num="363" type="stmt" count="51"/>
      <line num="380" type="method" name="getGlobalBlocksForCentralIds" visibility="public" complexity="4" crap="4" count="4"/>
      <line num="381" type="stmt" count="4"/>
      <line num="382" type="stmt" count="4"/>
      <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="4"/>
      <line num="391" type="stmt" count="1"/>
      <line num="395" type="stmt" count="3"/>
      <line num="396" type="stmt" count="3"/>
      <line num="397" type="stmt" count="3"/>
      <line num="398" type="stmt" count="3"/>
      <line num="399" type="stmt" count="3"/>
      <line num="400" type="stmt" count="3"/>
      <line num="401" type="stmt" count="3"/>
      <line num="402" type="stmt" count="3"/>
      <line num="403" type="stmt" count="3"/>
      <line num="404" type="stmt" count="3"/>
      <line num="405" type="stmt" count="3"/>
      <line num="416" type="method" name="excludeLocallyDisabledGlobalBlockRows" visibility="private" complexity="2" crap="2" count="3"/>
      <line num="417" type="stmt" count="3"/>
      <line num="418" type="stmt" count="1"/>
      <line num="420" type="stmt" count="2"/>
      <line num="421" type="stmt" count="2"/>
      <line num="422" type="stmt" count="2"/>
      <line num="424" type="stmt" count="2"/>
      <line num="425" type="stmt" count="2"/>
      <line num="426" type="stmt" count="2"/>
      <line num="427" type="stmt" count="2"/>
      <line num="436" type="method" name="getGlobalBlockObjectsFromRows" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="437" type="stmt" count="3"/>
      <line num="452" type="method" name="getGlobalBlockLookupConditions" visibility="public" complexity="18" crap="18" count="73"/>
      <line num="453" type="stmt" count="73"/>
      <line num="454" type="stmt" count="73"/>
      <line num="455" type="stmt" count="73"/>
      <line num="457" type="stmt" count="73"/>
      <line num="458" type="stmt" count="64"/>
      <line num="459" type="stmt" count="64"/>
      <line num="461" type="stmt" count="2"/>
      <line num="462" type="stmt" count="2"/>
      <line num="463" type="stmt" count="2"/>
      <line num="467" type="stmt" count="62"/>
      <line num="470" type="stmt" count="71"/>
      <line num="471" type="stmt" count="61"/>
      <line num="472" type="stmt" count="61"/>
      <line num="473" type="stmt" count="1"/>
      <line num="476" type="stmt" count="1"/>
      <line num="477" type="stmt" count="1"/>
      <line num="482" type="stmt" count="71"/>
      <line num="485" type="stmt" count="53"/>
      <line num="486" type="stmt" count="53"/>
      <line num="487" type="stmt" count="53"/>
      <line num="488" type="stmt" count="53"/>
      <line num="489" type="stmt" count="53"/>
      <line num="491" type="stmt" count="53"/>
      <line num="494" type="stmt" count="23"/>
      <line num="497" type="stmt" count="53"/>
      <line num="498" type="stmt" count="2"/>
      <line num="502" type="stmt" count="71"/>
      <line num="505" type="stmt" count="33"/>
      <line num="509" type="stmt" count="71"/>
      <line num="512" type="stmt" count="19"/>
      <line num="513" type="stmt" count="57"/>
      <line num="515" type="stmt" count="14"/>
      <line num="516" type="stmt" count="44"/>
      <line num="518" type="stmt" count="39"/>
      <line num="522" type="stmt" count="5"/>
      <line num="526" type="stmt" count="66"/>
      <line num="527" type="stmt" count="65"/>
      <line num="528" type="stmt" count="65"/>
      <line num="530" type="stmt" count="66"/>
      <line num="543" type="method" name="getIpFragment" visibility="private" complexity="2" crap="2" count="53"/>
      <line num="544" type="stmt" count="53"/>
      <line num="545" type="stmt" count="53"/>
      <line num="546" type="stmt" count="3"/>
      <line num="548" type="stmt" count="50"/>
      <line num="563" type="method" name="checkIpsForBlock" visibility="private" complexity="6" crap="6" count="19"/>
      <line num="564" type="stmt" count="19"/>
      <line num="566" type="stmt" count="5"/>
      <line num="569" type="stmt" count="14"/>
      <line num="570" type="stmt" count="14"/>
      <line num="571" type="stmt" count="14"/>
      <line num="572" type="stmt" count="14"/>
      <line num="573" type="stmt" count="12"/>
      <line num="574" type="stmt" count="12"/>
      <line num="575" type="stmt" count="12"/>
      <line num="580" type="stmt" count="14"/>
      <line num="582" type="stmt" count="2"/>
      <line num="584" type="stmt" count="12"/>
      <line num="585" type="stmt" count="12"/>
      <line num="586" type="stmt" count="12"/>
      <line num="587" type="stmt" count="12"/>
      <line num="588" type="stmt" count="12"/>
      <line num="589" type="stmt" count="12"/>
      <line num="605" type="method" name="getGlobalBlockId" visibility="public" complexity="6" crap="6" count="13"/>
      <line num="606" type="stmt" count="13"/>
      <line num="607" type="stmt" count="2"/>
      <line num="609" type="stmt" count="12"/>
      <line num="612" type="stmt" count="13"/>
      <line num="613" type="stmt" count="13"/>
      <line num="614" type="stmt" count="13"/>
      <line num="616" type="stmt" count="13"/>
      <line num="617" type="stmt" count="13"/>
      <line num="620" type="stmt" count="13"/>
      <line num="621" type="stmt" count="13"/>
      <line num="622" type="stmt" count="2"/>
      <line num="623" type="stmt" count="11"/>
      <line num="624" type="stmt" count="8"/>
      <line num="626" type="stmt" count="3"/>
      <line num="627" type="stmt" count="3"/>
      <line num="630" type="stmt" count="1"/>
      <line num="632" type="stmt" count="2"/>
      <line num="635" type="stmt" count="12"/>
      <line num="636" type="stmt" count="12"/>
      <line num="637" type="stmt" count="12"/>
      <line num="650" type="method" name="isAGlobalBlockId" visibility="public" complexity="2" crap="2" count="17"/>
      <line num="651" type="stmt" count="17"/>
      <line num="652" type="stmt" count="17"/>
      <line num="653" type="stmt" count="3"/>
      <line num="655" type="stmt" count="14"/>
      <line num="664" type="method" name="newFromId" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="665" type="stmt" count="2"/>
      <line num="666" type="stmt" count="2"/>
      <line num="667" type="stmt" count="2"/>
      <line num="668" type="stmt" count="2"/>
      <line num="669" type="stmt" count="2"/>
      <line num="670" type="stmt" count="2"/>
      <line num="671" type="stmt" count="2"/>
      <line num="672" type="stmt" count="2"/>
      <line num="674" type="stmt" count="2"/>
      <line num="680" type="method" name="selectFields" visibility="public" complexity="1" crap="1" 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"/>
      <metrics loc="688" ncloc="439" classes="1" methods="20" coveredmethods="20" conditionals="0" coveredconditionals="0" statements="227" coveredstatements="227" elements="247" coveredelements="247"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockManager.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockManager" namespace="global">
        <metrics complexity="72" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="344" coveredstatements="344" elements="354" coveredelements="354"/>
      </class>
      <line num="49" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="48"/>
      <line num="62" type="stmt" count="48"/>
      <line num="63" type="stmt" count="48"/>
      <line num="77" type="method" name="insertBlockAfterChecks" visibility="private" complexity="11" crap="11" count="39"/>
      <line num="78" type="stmt" count="39"/>
      <line num="79" type="stmt" count="39"/>
      <line num="80" type="stmt" count="39"/>
      <line num="81" type="stmt" count="39"/>
      <line num="82" type="stmt" count="39"/>
      <line num="83" type="stmt" count="39"/>
      <line num="84" type="stmt" count="39"/>
      <line num="85" type="stmt" count="39"/>
      <line num="86" type="stmt" count="39"/>
      <line num="87" type="stmt" count="39"/>
      <line num="88" type="stmt" count="39"/>
      <line num="89" type="stmt" count="39"/>
      <line num="90" type="stmt" count="39"/>
      <line num="91" type="stmt" count="39"/>
      <line num="92" type="stmt" count="39"/>
      <line num="93" type="stmt" count="39"/>
      <line num="94" type="stmt" count="39"/>
      <line num="96" type="stmt" count="39"/>
      <line num="97" type="stmt" count="39"/>
      <line num="98" type="stmt" count="10"/>
      <line num="99" type="stmt" count="10"/>
      <line num="100" type="stmt" count="10"/>
      <line num="101" type="stmt" count="10"/>
      <line num="102" type="stmt" count="10"/>
      <line num="103" type="stmt" count="10"/>
      <line num="104" type="stmt" count="10"/>
      <line num="105" type="stmt" count="10"/>
      <line num="108" type="stmt" count="39"/>
      <line num="109" type="stmt" count="39"/>
      <line num="110" type="stmt" count="39"/>
      <line num="111" type="stmt" count="39"/>
      <line num="112" type="stmt" count="39"/>
      <line num="113" type="stmt" count="39"/>
      <line num="114" type="stmt" count="39"/>
      <line num="115" type="stmt" count="39"/>
      <line num="119" type="stmt" count="39"/>
      <line num="121" type="stmt" count="1"/>
      <line num="126" type="stmt" count="39"/>
      <line num="127" type="stmt" count="8"/>
      <line num="128" type="stmt" count="8"/>
      <line num="129" type="stmt" count="8"/>
      <line num="130" type="stmt" count="8"/>
      <line num="131" type="stmt" count="8"/>
      <line num="137" type="stmt" count="39"/>
      <line num="138" type="stmt" count="39"/>
      <line num="139" type="stmt" count="39"/>
      <line num="140" type="stmt" count="39"/>
      <line num="141" type="stmt" count="39"/>
      <line num="142" type="stmt" count="39"/>
      <line num="143" type="stmt" count="39"/>
      <line num="145" type="stmt" count="39"/>
      <line num="148" type="stmt" count="10"/>
      <line num="151" type="stmt" count="2"/>
      <line num="152" type="stmt" count="2"/>
      <line num="153" type="stmt" count="2"/>
      <line num="154" type="stmt" count="2"/>
      <line num="155" type="stmt" count="2"/>
      <line num="156" type="stmt" count="2"/>
      <line num="157" type="stmt" count="2"/>
      <line num="160" type="stmt" count="2"/>
      <line num="161" type="stmt" count="2"/>
      <line num="162" type="stmt" count="2"/>
      <line num="163" type="stmt" count="2"/>
      <line num="164" type="stmt" count="2"/>
      <line num="165" type="stmt" count="2"/>
      <line num="166" type="stmt" count="2"/>
      <line num="167" type="stmt" count="2"/>
      <line num="172" type="stmt" count="10"/>
      <line num="175" type="stmt" count="10"/>
      <line num="176" type="stmt" count="10"/>
      <line num="177" type="stmt" count="10"/>
      <line num="178" type="stmt" count="10"/>
      <line num="179" type="stmt" count="10"/>
      <line num="180" type="stmt" count="10"/>
      <line num="181" type="stmt" count="10"/>
      <line num="182" type="stmt" count="10"/>
      <line num="185" type="stmt" count="10"/>
      <line num="186" type="stmt" count="1"/>
      <line num="191" type="stmt" count="39"/>
      <line num="193" type="stmt" count="39"/>
      <line num="194" type="stmt" count="39"/>
      <line num="195" type="stmt" count="39"/>
      <line num="220" type="method" name="block" visibility="public" complexity="25" crap="25" count="42"/>
      <line num="224" type="stmt" count="42"/>
      <line num="225" type="stmt" count="40"/>
      <line num="226" type="stmt" count="2"/>
      <line num="227" type="stmt" count="1"/>
      <line num="229" type="stmt" count="1"/>
      <line num="231" type="stmt" count="41"/>
      <line num="232" type="stmt" count="41"/>
      <line num="233" type="stmt" count="2"/>
      <line num="236" type="stmt" count="40"/>
      <line num="238" type="stmt" count="40"/>
      <line num="239" type="stmt" count="4"/>
      <line num="242" type="stmt" count="40"/>
      <line num="244" type="stmt" count="40"/>
      <line num="245" type="stmt" count="40"/>
      <line num="246" type="stmt" count="40"/>
      <line num="247" type="stmt" count="40"/>
      <line num="248" type="stmt" count="40"/>
      <line num="252" type="stmt" count="40"/>
      <line num="254" type="stmt" count="40"/>
      <line num="256" type="stmt" count="1"/>
      <line num="259" type="stmt" count="39"/>
      <line num="261" type="stmt" count="1"/>
      <line num="262" type="stmt" count="1"/>
      <line num="266" type="stmt" count="39"/>
      <line num="267" type="stmt" count="39"/>
      <line num="268" type="stmt" count="1"/>
      <line num="271" type="stmt" count="39"/>
      <line num="272" type="stmt" count="39"/>
      <line num="273" type="stmt" count="39"/>
      <line num="274" type="stmt" count="39"/>
      <line num="275" type="stmt" count="39"/>
      <line num="276" type="stmt" count="39"/>
      <line num="277" type="stmt" count="39"/>
      <line num="278" type="stmt" count="39"/>
      <line num="279" type="stmt" count="39"/>
      <line num="280" type="stmt" count="39"/>
      <line num="281" type="stmt" count="39"/>
      <line num="282" type="stmt" count="39"/>
      <line num="284" type="stmt" count="39"/>
      <line num="285" type="stmt" count="39"/>
      <line num="288" type="stmt" count="11"/>
      <line num="289" type="stmt" count="1"/>
      <line num="290" type="stmt" count="1"/>
      <line num="291" type="stmt" count="1"/>
      <line num="294" type="stmt" count="10"/>
      <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="303" type="stmt" count="39"/>
      <line num="304" type="stmt" count="1"/>
      <line num="309" type="stmt" count="39"/>
      <line num="310" type="stmt" count="39"/>
      <line num="311" type="stmt" count="39"/>
      <line num="312" type="stmt" count="39"/>
      <line num="313" type="stmt" count="39"/>
      <line num="314" type="stmt" count="39"/>
      <line num="315" type="stmt" count="39"/>
      <line num="316" type="stmt" count="39"/>
      <line num="317" type="stmt" count="39"/>
      <line num="318" type="stmt" count="39"/>
      <line num="319" type="stmt" count="39"/>
      <line num="320" type="stmt" count="39"/>
      <line num="322" type="stmt" count="39"/>
      <line num="323" type="stmt" count="1"/>
      <line num="326" type="stmt" count="39"/>
      <line num="329" type="stmt" count="39"/>
      <line num="331" type="stmt" count="39"/>
      <line num="332" type="stmt" count="39"/>
      <line num="333" type="stmt" count="39"/>
      <line num="334" type="stmt" count="39"/>
      <line num="336" type="stmt" count="39"/>
      <line num="337" type="stmt" count="39"/>
      <line num="338" type="stmt" count="20"/>
      <line num="340" type="stmt" count="39"/>
      <line num="341" type="stmt" count="6"/>
      <line num="343" type="stmt" count="39"/>
      <line num="344" type="stmt" count="10"/>
      <line num="346" type="stmt" count="39"/>
      <line num="347" type="stmt" count="2"/>
      <line num="351" type="stmt" count="39"/>
      <line num="352" type="stmt" count="39"/>
      <line num="354" type="stmt" count="39"/>
      <line num="355" type="stmt" count="39"/>
      <line num="356" type="stmt" count="39"/>
      <line num="357" type="stmt" count="39"/>
      <line num="358" type="stmt" count="39"/>
      <line num="361" type="stmt" count="39"/>
      <line num="362" type="stmt" count="4"/>
      <line num="363" type="stmt" count="3"/>
      <line num="365" type="stmt" count="1"/>
      <line num="368" type="stmt" count="4"/>
      <line num="369" type="stmt" count="2"/>
      <line num="370" type="stmt" count="2"/>
      <line num="371" type="stmt" count="2"/>
      <line num="373" type="stmt" count="4"/>
      <line num="374" type="stmt" count="4"/>
      <line num="375" type="stmt" count="4"/>
      <line num="378" type="stmt" count="4"/>
      <line num="379" type="stmt" count="4"/>
      <line num="382" type="stmt" count="39"/>
      <line num="393" type="method" name="findLocalBlock" visibility="private" complexity="6" crap="6" count="4"/>
      <line num="394" type="stmt" count="4"/>
      <line num="395" type="stmt" count="4"/>
      <line num="396" type="stmt" count="4"/>
      <line num="398" type="stmt" count="3"/>
      <line num="399" type="stmt" count="1"/>
      <line num="400" type="stmt" count="1"/>
      <line num="401" type="stmt" count="1"/>
      <line num="403" type="stmt" count="1"/>
      <line num="406" type="stmt" count="2"/>
      <line num="408" type="stmt" count="1"/>
      <line num="420" type="method" name="isCloseTimestamp" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="421" type="stmt" count="1"/>
      <line num="422" type="stmt" count="1"/>
      <line num="423" type="stmt" count="1"/>
      <line num="433" type="method" name="autoblock" visibility="public" complexity="11" crap="11" count="15"/>
      <line num="434" type="stmt" count="15"/>
      <line num="436" type="stmt" count="15"/>
      <line num="439" type="stmt" count="2"/>
      <line num="442" type="stmt" count="13"/>
      <line num="443" type="stmt" count="1"/>
      <line num="448" type="stmt" count="12"/>
      <line num="449" type="stmt" count="12"/>
      <line num="450" type="stmt" count="12"/>
      <line num="451" type="stmt" count="12"/>
      <line num="452" type="stmt" count="12"/>
      <line num="453" type="stmt" count="12"/>
      <line num="454" type="stmt" count="12"/>
      <line num="456" type="stmt" count="12"/>
      <line num="459" type="stmt" count="1"/>
      <line num="460" type="stmt" count="1"/>
      <line num="461" type="stmt" count="1"/>
      <line num="462" type="stmt" count="1"/>
      <line num="463" type="stmt" count="1"/>
      <line num="467" type="stmt" count="11"/>
      <line num="468" type="stmt" count="1"/>
      <line num="473" type="stmt" count="10"/>
      <line num="474" type="stmt" count="10"/>
      <line num="475" type="stmt" count="10"/>
      <line num="476" type="stmt" count="10"/>
      <line num="477" type="stmt" count="10"/>
      <line num="478" type="stmt" count="10"/>
      <line num="479" type="stmt" count="10"/>
      <line num="480" type="stmt" count="10"/>
      <line num="483" type="stmt" count="10"/>
      <line num="484" type="stmt" count="3"/>
      <line num="485" type="stmt" count="3"/>
      <line num="488" type="stmt" count="2"/>
      <line num="490" type="stmt" count="2"/>
      <line num="491" type="stmt" count="2"/>
      <line num="494" type="stmt" count="1"/>
      <line num="495" type="stmt" count="1"/>
      <line num="496" type="stmt" count="1"/>
      <line num="497" type="stmt" count="1"/>
      <line num="498" type="stmt" count="1"/>
      <line num="499" type="stmt" count="1"/>
      <line num="500" type="stmt" count="1"/>
      <line num="501" type="stmt" count="1"/>
      <line num="502" type="stmt" count="1"/>
      <line num="505" type="stmt" count="3"/>
      <line num="510" type="stmt" count="9"/>
      <line num="511" type="stmt" count="9"/>
      <line num="512" type="stmt" count="9"/>
      <line num="513" type="stmt" count="9"/>
      <line num="514" type="stmt" count="9"/>
      <line num="515" type="stmt" count="9"/>
      <line num="516" type="stmt" count="9"/>
      <line num="517" type="stmt" count="9"/>
      <line num="518" type="stmt" count="9"/>
      <line num="519" type="stmt" count="9"/>
      <line num="520" type="stmt" count="9"/>
      <line num="522" type="stmt" count="9"/>
      <line num="523" type="stmt" count="9"/>
      <line num="525" type="stmt" count="9"/>
      <line num="527" type="stmt" count="9"/>
      <line num="528" type="stmt" count="9"/>
      <line num="529" type="stmt" count="9"/>
      <line num="544" type="method" name="getAutoblockExpiry" visibility="private" complexity="3" crap="3" count="9"/>
      <line num="545" type="stmt" count="9"/>
      <line num="546" type="stmt" count="9"/>
      <line num="547" type="stmt" count="9"/>
      <line num="548" type="stmt" count="2"/>
      <line num="550" type="stmt" count="9"/>
      <line num="559" type="method" name="getTargetForLogEntry" visibility="private" complexity="2" crap="2" count="39"/>
      <line num="562" type="stmt" count="39"/>
      <line num="563" type="stmt" count="5"/>
      <line num="565" type="stmt" count="39"/>
      <line num="580" type="method" name="unblock" visibility="public" complexity="3" crap="3" count="9"/>
      <line num="581" type="stmt" count="9"/>
      <line num="583" type="stmt" count="9"/>
      <line num="584" type="stmt" count="2"/>
      <line num="587" type="stmt" count="7"/>
      <line num="589" type="stmt" count="7"/>
      <line num="590" type="stmt" count="7"/>
      <line num="591" type="stmt" count="2"/>
      <line num="594" type="stmt" count="5"/>
      <line num="597" type="stmt" count="5"/>
      <line num="598" type="stmt" count="5"/>
      <line num="599" type="stmt" count="5"/>
      <line num="600" type="stmt" count="5"/>
      <line num="601" type="stmt" count="5"/>
      <line num="602" type="stmt" count="5"/>
      <line num="603" type="stmt" count="5"/>
      <line num="605" type="stmt" count="5"/>
      <line num="606" type="stmt" count="5"/>
      <line num="607" type="stmt" count="5"/>
      <line num="608" type="stmt" count="5"/>
      <line num="609" type="stmt" count="5"/>
      <line num="611" type="stmt" count="5"/>
      <line num="612" type="stmt" count="5"/>
      <line num="613" type="stmt" count="5"/>
      <line num="614" type="stmt" count="5"/>
      <line num="615" type="stmt" count="5"/>
      <line num="616" type="stmt" count="5"/>
      <line num="617" type="stmt" count="5"/>
      <line num="619" type="stmt" count="5"/>
      <line num="621" type="stmt" count="5"/>
      <line num="638" type="method" name="validateGlobalBlockTarget" visibility="public" complexity="9" crap="9" count="42"/>
      <line num="639" type="stmt" count="42"/>
      <line num="640" type="stmt" count="42"/>
      <line num="642" type="stmt" count="42"/>
      <line num="645" type="stmt" count="8"/>
      <line num="646" type="stmt" count="8"/>
      <line num="647" type="stmt" count="8"/>
      <line num="648" type="stmt" count="8"/>
      <line num="649" type="stmt" count="8"/>
      <line num="650" type="stmt" count="8"/>
      <line num="651" type="stmt" count="8"/>
      <line num="653" type="stmt" count="8"/>
      <line num="654" type="stmt" count="2"/>
      <line num="657" type="stmt" count="6"/>
      <line num="658" type="stmt" count="6"/>
      <line num="661" type="stmt" count="41"/>
      <line num="662" type="stmt" count="22"/>
      <line num="663" type="stmt" count="22"/>
      <line num="664" type="stmt" count="22"/>
      <line num="665" type="stmt" count="22"/>
      <line num="666" type="stmt" count="22"/>
      <line num="667" type="stmt" count="3"/>
      <line num="669" type="stmt" count="19"/>
      <line num="670" type="stmt" count="19"/>
      <line num="671" type="stmt" count="19"/>
      <line num="672" type="stmt" count="19"/>
      <line num="673" type="stmt" count="19"/>
      <line num="676" type="stmt" count="19"/>
      <line num="677" type="stmt" count="19"/>
      <line num="678" type="stmt" count="19"/>
      <line num="682" type="stmt" count="25"/>
      <line num="685" type="stmt" count="25"/>
      <line num="686" type="stmt" count="2"/>
      <line num="687" type="stmt" count="2"/>
      <line num="688" type="stmt" count="2"/>
      <line num="689" type="stmt" count="2"/>
      <line num="690" type="stmt" count="1"/>
      <line num="691" type="stmt" count="1"/>
      <line num="692" type="stmt" count="1"/>
      <line num="699" type="stmt" count="25"/>
      <line num="700" type="stmt" count="25"/>
      <line num="701" type="stmt" count="25"/>
      <line num="703" type="stmt" count="25"/>
      <line num="705" type="stmt" count="25"/>
      <line num="706" type="stmt" count="1"/>
      <line num="708" type="stmt" count="25"/>
      <line num="711" type="stmt" count="25"/>
      <line num="713" type="stmt" count="25"/>
      <metrics loc="716" ncloc="551" classes="1" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="344" coveredstatements="344" elements="354" coveredelements="354"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockReasonFormatter.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockReasonFormatter" namespace="global">
        <metrics complexity="9" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="61" coveredstatements="61" elements="64" coveredelements="64"/>
      </class>
      <line num="43" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="49" type="stmt" count="7"/>
      <line num="57" type="method" name="format" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="58" type="stmt" count="6"/>
      <line num="59" type="stmt" count="6"/>
      <line num="60" type="stmt" count="6"/>
      <line num="61" type="stmt" count="6"/>
      <line num="62" type="stmt" count="6"/>
      <line num="63" type="stmt" count="6"/>
      <line num="64" type="stmt" count="6"/>
      <line num="68" type="stmt" count="6"/>
      <line num="69" type="stmt" count="6"/>
      <line num="70" type="stmt" count="6"/>
      <line num="71" type="stmt" count="6"/>
      <line num="72" type="stmt" count="6"/>
      <line num="73" type="stmt" count="6"/>
      <line num="74" type="stmt" count="6"/>
      <line num="75" type="stmt" count="6"/>
      <line num="83" type="method" name="expandRemoteTemplates" visibility="private" complexity="7" crap="7" count="6"/>
      <line num="84" type="stmt" count="6"/>
      <line num="86" type="stmt" count="6"/>
      <line num="88" type="stmt" count="1"/>
      <line num="91" type="stmt" count="5"/>
      <line num="92" type="stmt" count="5"/>
      <line num="93" type="stmt" count="5"/>
      <line num="94" type="stmt" count="5"/>
      <line num="95" type="stmt" count="5"/>
      <line num="96" type="stmt" count="5"/>
      <line num="97" type="stmt" count="5"/>
      <line num="98" type="stmt" count="5"/>
      <line num="99" type="stmt" count="5"/>
      <line num="100" type="stmt" count="5"/>
      <line num="101" type="stmt" count="5"/>
      <line num="102" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <line num="105" type="stmt" count="5"/>
      <line num="106" type="stmt" count="5"/>
      <line num="107" type="stmt" count="5"/>
      <line num="108" type="stmt" count="5"/>
      <line num="109" type="stmt" count="5"/>
      <line num="110" type="stmt" count="5"/>
      <line num="112" type="stmt" count="5"/>
      <line num="114" type="stmt" count="5"/>
      <line num="115" type="stmt" count="5"/>
      <line num="116" type="stmt" count="1"/>
      <line num="117" type="stmt" count="1"/>
      <line num="118" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="122" type="stmt" count="5"/>
      <line num="123" type="stmt" count="4"/>
      <line num="124" type="stmt" count="4"/>
      <line num="127" type="stmt" count="4"/>
      <line num="128" type="stmt" count="4"/>
      <line num="129" type="stmt" count="4"/>
      <line num="131" type="stmt" count="3"/>
      <line num="134" type="stmt" count="1"/>
      <line num="135" type="stmt" count="1"/>
      <line num="136" type="stmt" count="1"/>
      <line num="137" type="stmt" count="1"/>
      <line num="139" type="stmt" 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="146" type="stmt" count="2"/>
      <metrics loc="149" ncloc="114" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="61" coveredstatements="61" elements="64" coveredelements="64"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockingBlockPurger.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockingBlockPurger" namespace="global">
        <metrics complexity="9" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="52" coveredstatements="52" elements="54" coveredelements="54"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="30" type="stmt" count="9"/>
      <line num="45" type="method" name="purgeExpiredBlocks" visibility="public" complexity="8" crap="8" count="9"/>
      <line num="46" type="stmt" count="9"/>
      <line num="47" type="stmt" count="9"/>
      <line num="50" type="stmt" count="7"/>
      <line num="51" type="stmt" count="7"/>
      <line num="52" type="stmt" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="54" type="stmt" count="2"/>
      <line num="56" type="stmt" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="58" type="stmt" count="2"/>
      <line num="59" type="stmt" count="2"/>
      <line num="60" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <line num="70" type="stmt" count="7"/>
      <line num="71" type="stmt" count="5"/>
      <line num="72" type="stmt" count="5"/>
      <line num="73" type="stmt" count="5"/>
      <line num="74" type="stmt" count="5"/>
      <line num="75" type="stmt" count="5"/>
      <line num="76" type="stmt" count="5"/>
      <line num="77" type="stmt" count="5"/>
      <line num="78" type="stmt" count="5"/>
      <line num="79" type="stmt" count="5"/>
      <line num="80" type="stmt" count="4"/>
      <line num="81" type="stmt" count="4"/>
      <line num="82" type="stmt" count="4"/>
      <line num="83" type="stmt" count="4"/>
      <line num="84" type="stmt" count="4"/>
      <line num="85" type="stmt" count="4"/>
      <line num="90" type="stmt" count="9"/>
      <line num="91" type="stmt" count="9"/>
      <line num="97" type="stmt" count="7"/>
      <line num="98" type="stmt" count="7"/>
      <line num="99" type="stmt" count="7"/>
      <line num="100" type="stmt" count="7"/>
      <line num="101" type="stmt" count="7"/>
      <line num="102" type="stmt" count="7"/>
      <line num="103" type="stmt" count="7"/>
      <line num="104" type="stmt" count="7"/>
      <line num="105" type="stmt" count="7"/>
      <line num="106" type="stmt" count="5"/>
      <line num="107" type="stmt" count="5"/>
      <line num="108" type="stmt" count="5"/>
      <line num="109" type="stmt" count="5"/>
      <line num="110" type="stmt" count="5"/>
      <line num="111" type="stmt" count="5"/>
      <metrics loc="116" ncloc="92" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="52" coveredstatements="52" elements="54" coveredelements="54"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockingConnectionProvider.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockingConnectionProvider" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="6" coveredelements="6"/>
      </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="21" type="method" name="getPrimaryGlobalBlockingDatabase" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="25" type="method" name="getReplicaGlobalBlockingDatabase" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <metrics loc="29" ncloc="23" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="6" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockingExpirySelectorBuilder.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockingExpirySelectorBuilder" namespace="global">
        <metrics complexity="3" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="5" coveredelements="5"/>
      </class>
      <line num="24" type="method" name="buildExpirySelector" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="25" type="stmt" count="4"/>
      <line num="26" type="stmt" count="4"/>
      <line num="27" type="stmt" count="2"/>
      <line num="29" type="stmt" count="4"/>
      <metrics loc="33" ncloc="20" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="5" coveredelements="5"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockingGlobalAutoblockExemptionListProvider.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockingGlobalAutoblockExemptionListProvider" namespace="global">
        <metrics complexity="21" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="75" coveredstatements="75" elements="84" coveredelements="84"/>
      </class>
      <line num="34" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="43" type="stmt" count="16"/>
      <line num="52" type="method" name="isExempt" visibility="public" complexity="3" crap="3" count="8"/>
      <line num="53" type="stmt" count="8"/>
      <line num="54" type="stmt" count="6"/>
      <line num="55" type="stmt" count="4"/>
      <line num="59" type="stmt" count="4"/>
      <line num="70" type="method" name="getExemptIPAddresses" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="71" type="stmt" count="14"/>
      <line num="72" type="stmt" count="14"/>
      <line num="73" type="stmt" count="14"/>
      <line num="74" type="stmt" count="14"/>
      <line num="86" type="method" name="getOnWikiExemptIPAddresses" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="87" type="stmt" count="6"/>
      <line num="88" type="stmt" count="6"/>
      <line num="89" type="stmt" count="6"/>
      <line num="90" type="stmt" count="6"/>
      <line num="91" type="stmt" count="6"/>
      <line num="92" type="stmt" count="6"/>
      <line num="97" type="stmt" count="6"/>
      <line num="98" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="102" type="stmt" count="5"/>
      <line num="110" type="method" name="clearCache" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="111" type="stmt" count="1"/>
      <line num="114" type="method" name="getCacheKey" visibility="private" complexity="1" crap="1" count="6"/>
      <line num="115" type="stmt" count="6"/>
      <line num="116" type="stmt" count="6"/>
      <line num="117" type="stmt" count="6"/>
      <line num="118" type="stmt" count="6"/>
      <line num="119" type="stmt" count="6"/>
      <line num="127" type="method" name="getForeignAPIQueryUrl" visibility="private" complexity="3" crap="3" count="8"/>
      <line num="128" type="stmt" count="8"/>
      <line num="129" type="stmt" count="8"/>
      <line num="130" type="stmt" count="2"/>
      <line num="132" type="stmt" count="6"/>
      <line num="133" type="stmt" count="6"/>
      <line num="134" type="stmt" count="1"/>
      <line num="136" type="stmt" count="5"/>
      <line num="137" type="stmt" count="5"/>
      <line num="138" type="stmt" count="5"/>
      <line num="139" type="stmt" count="5"/>
      <line num="140" type="stmt" count="5"/>
      <line num="141" type="stmt" count="5"/>
      <line num="142" type="stmt" count="5"/>
      <line num="143" type="stmt" count="5"/>
      <line num="152" type="method" name="parseIPAddressList" visibility="private" complexity="3" crap="3" count="6"/>
      <line num="153" type="stmt" count="6"/>
      <line num="154" type="stmt" count="6"/>
      <line num="155" type="stmt" count="6"/>
      <line num="157" type="stmt" count="6"/>
      <line num="158" type="stmt" count="6"/>
      <line num="161" type="stmt" count="4"/>
      <line num="163" type="stmt" count="6"/>
      <line num="171" type="method" name="fetchExemptIPAddresses" visibility="private" complexity="6" crap="6" count="6"/>
      <line num="174" type="stmt" count="6"/>
      <line num="175" type="stmt" count="6"/>
      <line num="176" type="stmt" count="2"/>
      <line num="177" type="stmt" count="2"/>
      <line num="178" type="stmt" count="2"/>
      <line num="181" type="stmt" count="4"/>
      <line num="182" type="stmt" count="4"/>
      <line num="183" type="stmt" count="4"/>
      <line num="184" type="stmt" count="4"/>
      <line num="185" type="stmt" count="4"/>
      <line num="187" type="stmt" count="4"/>
      <line num="189" type="stmt" count="4"/>
      <line num="190" type="stmt" count="4"/>
      <line num="191" type="stmt" count="1"/>
      <line num="192" type="stmt" count="1"/>
      <line num="193" type="stmt" count="1"/>
      <line num="196" type="stmt" count="4"/>
      <line num="197" type="stmt" count="3"/>
      <line num="198" type="stmt" count="3"/>
      <line num="200" type="stmt" count="3"/>
      <line num="201" type="stmt" count="3"/>
      <line num="202" type="stmt" count="3"/>
      <line num="205" type="stmt" count="3"/>
      <line num="206" type="stmt" count="3"/>
      <line num="213" type="stmt" count="1"/>
      <line num="214" type="stmt" count="1"/>
      <line num="215" type="stmt" count="1"/>
      <line num="216" type="stmt" count="1"/>
      <metrics loc="219" ncloc="159" classes="1" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="75" coveredstatements="75" elements="84" coveredelements="84"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockingGlobalBlockDetailsRenderer.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockingGlobalBlockDetailsRenderer" namespace="global">
        <metrics complexity="20" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="66" coveredstatements="66" elements="71" coveredelements="71"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="15"/>
      <line num="28" type="stmt" count="15"/>
      <line num="38" type="method" name="formatTargetForDisplay" visibility="public" complexity="6" crap="6" count="7"/>
      <line num="41" type="stmt" count="7"/>
      <line num="42" type="stmt" count="1"/>
      <line num="45" type="stmt" count="6"/>
      <line num="48" type="stmt" count="6"/>
      <line num="50" type="stmt" count="5"/>
      <line num="51" type="stmt" count="5"/>
      <line num="52" type="stmt" count="5"/>
      <line num="53" type="stmt" count="5"/>
      <line num="54" type="stmt" count="1"/>
      <line num="58" type="stmt" count="5"/>
      <line num="59" type="stmt" count="5"/>
      <line num="60" type="stmt" count="5"/>
      <line num="61" type="stmt" count="5"/>
      <line num="62" type="stmt" count="5"/>
      <line num="65" type="stmt" count="1"/>
      <line num="66" type="stmt" count="1"/>
      <line num="67" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="69" type="stmt" count="1"/>
      <line num="72" type="stmt" count="6"/>
      <line num="84" type="method" name="getTargetUsername" visibility="public" complexity="4" crap="4" count="7"/>
      <line num="86" type="stmt" count="7"/>
      <line num="87" type="stmt" count="1"/>
      <line num="92" type="stmt" count="6"/>
      <line num="96" type="stmt" count="2"/>
      <line num="97" type="stmt" count="2"/>
      <line num="98" type="stmt" count="2"/>
      <line num="99" type="stmt" count="2"/>
      <line num="100" type="stmt" count="2"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="1"/>
      <line num="107" type="stmt" count="4"/>
      <line num="108" type="stmt" count="4"/>
      <line num="111" type="stmt" count="6"/>
      <line num="121" type="method" name="getBlockOptionsForDisplay" visibility="public" complexity="8" crap="8" count="13"/>
      <line num="123" type="stmt" count="13"/>
      <line num="125" type="stmt" count="13"/>
      <line num="126" type="stmt" count="13"/>
      <line num="127" type="stmt" count="5"/>
      <line num="129" type="stmt" count="5"/>
      <line num="130" type="stmt" count="3"/>
      <line num="131" type="stmt" count="3"/>
      <line num="132" type="stmt" count="3"/>
      <line num="133" type="stmt" count="3"/>
      <line num="134" type="stmt" count="3"/>
      <line num="136" type="stmt" count="2"/>
      <line num="137" type="stmt" count="2"/>
      <line num="138" type="stmt" count="2"/>
      <line num="139" type="stmt" count="2"/>
      <line num="144" type="stmt" count="13"/>
      <line num="145" type="stmt" count="3"/>
      <line num="149" type="stmt" count="13"/>
      <line num="150" type="stmt" count="7"/>
      <line num="154" type="stmt" count="13"/>
      <line num="155" type="stmt" count="1"/>
      <line num="159" type="stmt" count="13"/>
      <line num="160" type="stmt" count="1"/>
      <line num="163" type="stmt" count="13"/>
      <line num="173" type="method" name="getPerformerForDisplay" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="176" type="stmt" count="7"/>
      <line num="177" type="stmt" count="7"/>
      <line num="178" type="stmt" count="7"/>
      <line num="179" type="stmt" count="7"/>
      <line num="180" type="stmt" count="7"/>
      <line num="182" type="stmt" count="7"/>
      <line num="183" type="stmt" count="7"/>
      <line num="184" type="stmt" count="7"/>
      <line num="185" type="stmt" count="7"/>
      <metrics loc="188" ncloc="131" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="66" coveredstatements="66" elements="71" coveredelements="71"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockingLinkBuilder.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockingLinkBuilder" namespace="global">
        <metrics complexity="33" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="91" coveredstatements="91" elements="98" coveredelements="98"/>
      </class>
      <line num="29" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="19"/>
      <line num="34" type="stmt" count="19"/>
      <line num="44" type="method" name="buildSubtitleLinks" visibility="public" complexity="13" crap="13" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <line num="51" type="stmt" count="4"/>
      <line num="52" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="55" type="stmt" count="4"/>
      <line num="56" type="stmt" count="4"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="62" type="stmt" count="4"/>
      <line num="63" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <line num="68" type="stmt" count="4"/>
      <line num="69" type="stmt" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="73" type="stmt" count="4"/>
      <line num="74" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <line num="76" type="stmt" count="1"/>
      <line num="78" type="stmt" count="4"/>
      <line num="79" type="stmt" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="87" type="stmt" count="4"/>
      <line num="88" type="stmt" count="3"/>
      <line num="89" type="stmt" count="3"/>
      <line num="90" type="stmt" count="3"/>
      <line num="92" type="stmt" count="1"/>
      <line num="103" type="method" name="maybeLinkUserpage" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="104" type="stmt" count="2"/>
      <line num="106" type="stmt" count="2"/>
      <line num="107" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="120" type="method" name="getForeignURL" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="130" type="method" name="getCentralUrl" visibility="private" complexity="3" crap="3" count="8"/>
      <line num="131" type="stmt" count="8"/>
      <line num="132" type="stmt" count="8"/>
      <line num="133" type="stmt" count="5"/>
      <line num="135" type="stmt" count="3"/>
      <line num="136" type="stmt" count="3"/>
      <line num="137" type="stmt" count="3"/>
      <line num="138" type="stmt" count="3"/>
      <line num="139" type="stmt" count="3"/>
      <line num="140" type="stmt" count="1"/>
      <line num="142" type="stmt" count="2"/>
      <line num="154" type="method" name="getLinkToCentralWikiSpecialPage" visibility="public" complexity="2" crap="2" count="8"/>
      <line num="157" type="stmt" count="8"/>
      <line num="158" type="stmt" count="8"/>
      <line num="159" type="stmt" count="2"/>
      <line num="160" type="stmt" count="2"/>
      <line num="162" type="stmt" count="6"/>
      <line num="163" type="stmt" count="6"/>
      <line num="164" type="stmt" count="6"/>
      <line num="180" type="method" name="getActionLinks" visibility="public" complexity="11" crap="11" count="9"/>
      <line num="183" type="stmt" count="9"/>
      <line num="184" type="stmt" count="9"/>
      <line num="185" type="stmt" count="9"/>
      <line num="186" type="stmt" count="6"/>
      <line num="188" type="stmt" count="3"/>
      <line num="191" type="stmt" count="9"/>
      <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="200" type="stmt" count="9"/>
      <line num="201" type="stmt" count="9"/>
      <line num="204" type="stmt" count="3"/>
      <line num="205" type="stmt" count="3"/>
      <line num="206" type="stmt" count="3"/>
      <line num="207" type="stmt" count="3"/>
      <line num="208" type="stmt" count="3"/>
      <line num="209" type="stmt" count="3"/>
      <line num="215" type="stmt" count="9"/>
      <line num="216" type="stmt" count="3"/>
      <line num="217" type="stmt" count="3"/>
      <line num="218" type="stmt" count="3"/>
      <line num="219" type="stmt" count="3"/>
      <line num="220" type="stmt" count="3"/>
      <line num="221" type="stmt" count="3"/>
      <line num="224" type="stmt" count="9"/>
      <line num="225" type="stmt" count="7"/>
      <line num="226" type="stmt" count="7"/>
      <line num="227" type="stmt" count="7"/>
      <line num="229" type="stmt" count="2"/>
      <metrics loc="232" ncloc="170" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="91" coveredstatements="91" elements="98" coveredelements="98"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Services/GlobalBlockingUserVisibilityLookup.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Services\GlobalBlockingUserVisibilityLookup" namespace="global">
        <metrics complexity="8" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="13" coveredelements="13"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="21" type="stmt" count="6"/>
      <line num="31" type="method" name="checkAuthorityCanSeeUser" visibility="public" complexity="7" crap="7" count="6"/>
      <line num="32" type="stmt" count="6"/>
      <line num="33" type="stmt" count="6"/>
      <line num="35" type="stmt" count="1"/>
      <line num="39" type="stmt" count="5"/>
      <line num="42" type="stmt" count="5"/>
      <line num="43" type="stmt" count="2"/>
      <line num="48" type="stmt" count="5"/>
      <line num="49" type="stmt" count="4"/>
      <line num="50" type="stmt" count="4"/>
      <line num="53" type="stmt" count="5"/>
      <metrics loc="56" ncloc="38" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="13" coveredelements="13"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Special/GlobalBlockListPager.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Special\GlobalBlockListPager" namespace="global">
        <metrics complexity="24" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="83" coveredstatements="83" elements="92" coveredelements="92"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="35"/>
      <line num="40" type="stmt" count="35"/>
      <line num="41" type="stmt" count="35"/>
      <line num="42" type="stmt" count="35"/>
      <line num="44" type="stmt" count="35"/>
      <line num="45" type="stmt" count="35"/>
      <line num="49" type="method" name="getFieldNames" visibility="protected" complexity="1" crap="1" count="35"/>
      <line num="50" type="stmt" count="35"/>
      <line num="51" type="stmt" count="35"/>
      <line num="52" type="stmt" count="35"/>
      <line num="53" type="stmt" count="35"/>
      <line num="54" type="stmt" count="35"/>
      <line num="55" type="stmt" count="35"/>
      <line num="56" type="stmt" count="35"/>
      <line num="57" type="stmt" count="35"/>
      <line num="65" type="method" name="formatValue" visibility="public" complexity="9" crap="9" count="25"/>
      <line num="66" type="stmt" count="25"/>
      <line num="69" type="stmt" count="25"/>
      <line num="72" type="stmt" count="24"/>
      <line num="73" type="stmt" count="24"/>
      <line num="74" type="stmt" count="24"/>
      <line num="75" type="stmt" count="24"/>
      <line num="76" type="stmt" count="24"/>
      <line num="77" type="stmt" count="24"/>
      <line num="78" type="stmt" count="25"/>
      <line num="79" type="stmt" count="24"/>
      <line num="80" type="stmt" count="25"/>
      <line num="81" type="stmt" count="24"/>
      <line num="82" type="stmt" count="24"/>
      <line num="83" type="stmt" count="7"/>
      <line num="85" type="stmt" count="24"/>
      <line num="86" type="stmt" count="24"/>
      <line num="87" type="stmt" count="24"/>
      <line num="88" type="stmt" count="24"/>
      <line num="89" type="stmt" count="24"/>
      <line num="90" type="stmt" count="24"/>
      <line num="91" type="stmt" count="24"/>
      <line num="92" type="stmt" count="24"/>
      <line num="93" type="stmt" count="24"/>
      <line num="94" type="stmt" count="24"/>
      <line num="95" type="stmt" count="24"/>
      <line num="96" type="stmt" count="25"/>
      <line num="97" type="stmt" count="24"/>
      <line num="98" type="stmt" count="25"/>
      <line num="99" type="stmt" count="24"/>
      <line num="100" type="stmt" count="25"/>
      <line num="101" type="stmt" count="24"/>
      <line num="104" type="stmt" count="24"/>
      <line num="105" type="stmt" count="23"/>
      <line num="106" type="stmt" count="24"/>
      <line num="108" type="stmt" count="24"/>
      <line num="110" type="stmt" count="1"/>
      <line num="115" type="method" name="getQueryInfo" visibility="public" complexity="1" crap="1" count="25"/>
      <line num="116" type="stmt" count="25"/>
      <line num="117" type="stmt" count="25"/>
      <line num="118" type="stmt" count="25"/>
      <line num="119" type="stmt" count="25"/>
      <line num="120" type="stmt" count="25"/>
      <line num="124" type="method" name="doBatchLookups" visibility="protected" complexity="8" crap="8" count="17"/>
      <line num="125" type="stmt" count="17"/>
      <line num="128" type="stmt" count="17"/>
      <line num="129" type="stmt" count="17"/>
      <line num="131" type="stmt" count="17"/>
      <line num="132" type="stmt" count="6"/>
      <line num="135" type="stmt" count="17"/>
      <line num="136" type="stmt" count="9"/>
      <line num="138" type="stmt" count="14"/>
      <line num="142" type="stmt" count="17"/>
      <line num="143" type="stmt" count="9"/>
      <line num="144" type="stmt" count="9"/>
      <line num="145" type="stmt" count="9"/>
      <line num="146" type="stmt" count="9"/>
      <line num="148" type="stmt" count="9"/>
      <line num="151" type="stmt" count="9"/>
      <line num="152" type="stmt" count="9"/>
      <line num="153" type="stmt" count="9"/>
      <line num="154" type="stmt" count="9"/>
      <line num="156" type="stmt" count="9"/>
      <line num="157" type="stmt" count="9"/>
      <line num="158" type="stmt" count="9"/>
      <line num="159" type="stmt" count="9"/>
      <line num="162" type="stmt" count="9"/>
      <line num="163" type="stmt" count="1"/>
      <line num="168" type="stmt" count="17"/>
      <line num="172" type="method" name="getIndexField" visibility="public" complexity="1" crap="1" count="35"/>
      <line num="173" type="stmt" count="35"/>
      <line num="177" type="method" name="getTableClass" visibility="protected" complexity="1" crap="1" count="17"/>
      <line num="178" type="stmt" count="17"/>
      <line num="182" type="method" name="getDefaultSort" visibility="public" complexity="1" crap="1" count="35"/>
      <line num="183" type="stmt" count="35"/>
      <line num="187" type="method" name="isFieldSortable" visibility="protected" complexity="1" crap="1" count="17"/>
      <line num="188" type="stmt" count="17"/>
      <metrics loc="191" ncloc="170" classes="1" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="83" coveredstatements="83" elements="92" coveredelements="92"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Special/SpecialGlobalBlock.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Special\SpecialGlobalBlock" namespace="global">
        <metrics complexity="46" methods="12" coveredmethods="12" conditionals="0" coveredconditionals="0" statements="234" coveredstatements="234" elements="246" coveredelements="246"/>
      </class>
      <line num="36" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="26"/>
      <line num="45" type="stmt" count="26"/>
      <line num="49" type="method" name="getRestriction" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="50" type="stmt" count="11"/>
      <line num="62" type="method" name="execute" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="63" type="stmt" count="9"/>
      <line num="64" type="stmt" count="9"/>
      <line num="65" type="stmt" count="9"/>
      <line num="66" type="stmt" count="9"/>
      <line num="67" type="stmt" count="9"/>
      <line num="68" type="stmt" count="9"/>
      <line num="75" type="method" name="setParameter" visibility="protected" complexity="7" crap="7" count="24"/>
      <line num="76" type="stmt" count="24"/>
      <line num="78" type="stmt" count="12"/>
      <line num="80" type="stmt" count="12"/>
      <line num="83" type="stmt" count="24"/>
      <line num="84" type="stmt" count="1"/>
      <line num="85" type="stmt" count="23"/>
      <line num="86" type="stmt" count="12"/>
      <line num="88" type="stmt" count="11"/>
      <line num="89" type="stmt" count="11"/>
      <line num="90" type="stmt" count="7"/>
      <line num="93" type="stmt" count="4"/>
      <line num="97" type="stmt" count="24"/>
      <line num="99" type="stmt" count="24"/>
      <line num="100" type="stmt" count="19"/>
      <line num="111" type="method" name="loadExistingBlock" visibility="protected" complexity="6" crap="6" count="18"/>
      <line num="112" type="stmt" count="18"/>
      <line num="113" type="stmt" count="18"/>
      <line num="114" type="stmt" count="16"/>
      <line num="115" type="stmt" count="16"/>
      <line num="116" type="stmt" count="16"/>
      <line num="117" type="stmt" count="16"/>
      <line num="118" type="stmt" count="16"/>
      <line num="119" type="stmt" count="16"/>
      <line num="120" type="stmt" count="16"/>
      <line num="121" type="stmt" count="16"/>
      <line num="122" type="stmt" count="16"/>
      <line num="123" type="stmt" count="16"/>
      <line num="124" type="stmt" count="16"/>
      <line num="125" type="stmt" count="16"/>
      <line num="127" type="stmt" count="10"/>
      <line num="128" type="stmt" count="10"/>
      <line num="129" type="stmt" count="10"/>
      <line num="131" type="stmt" count="6"/>
      <line num="132" type="stmt" count="6"/>
      <line num="133" type="stmt" count="2"/>
      <line num="135" type="stmt" count="4"/>
      <line num="137" type="stmt" count="14"/>
      <line num="138" type="stmt" count="14"/>
      <line num="139" type="stmt" count="14"/>
      <line num="140" type="stmt" count="14"/>
      <line num="141" type="stmt" count="14"/>
      <line num="142" type="stmt" count="8"/>
      <line num="144" type="stmt" count="8"/>
      <line num="145" type="stmt" count="8"/>
      <line num="146" type="stmt" count="8"/>
      <line num="147" type="stmt" count="8"/>
      <line num="148" type="stmt" count="8"/>
      <line num="149" type="stmt" count="8"/>
      <line num="150" type="stmt" count="7"/>
      <line num="151" type="stmt" count="1"/>
      <line num="155" type="stmt" count="16"/>
      <line num="161" type="method" name="getFormFields" visibility="protected" complexity="6" crap="6" count="9"/>
      <line num="162" type="stmt" count="9"/>
      <line num="163" type="stmt" count="9"/>
      <line num="164" type="stmt" count="9"/>
      <line num="165" type="stmt" count="9"/>
      <line num="166" type="stmt" count="9"/>
      <line num="167" type="stmt" count="9"/>
      <line num="168" type="stmt" count="9"/>
      <line num="169" type="stmt" count="9"/>
      <line num="170" type="stmt" count="9"/>
      <line num="171" type="stmt" count="9"/>
      <line num="172" type="stmt" count="9"/>
      <line num="173" type="stmt" count="9"/>
      <line num="174" type="stmt" count="9"/>
      <line num="175" type="stmt" count="9"/>
      <line num="176" type="stmt" count="9"/>
      <line num="177" type="stmt" count="9"/>
      <line num="178" type="stmt" count="9"/>
      <line num="179" type="stmt" count="9"/>
      <line num="180" type="stmt" count="9"/>
      <line num="181" type="stmt" count="9"/>
      <line num="182" type="stmt" count="9"/>
      <line num="183" type="stmt" count="9"/>
      <line num="184" type="stmt" count="9"/>
      <line num="185" type="stmt" count="9"/>
      <line num="186" type="stmt" count="9"/>
      <line num="187" type="stmt" count="9"/>
      <line num="188" type="stmt" count="9"/>
      <line num="189" type="stmt" count="9"/>
      <line num="190" type="stmt" count="9"/>
      <line num="191" type="stmt" count="9"/>
      <line num="192" type="stmt" count="9"/>
      <line num="193" type="stmt" count="9"/>
      <line num="194" type="stmt" count="9"/>
      <line num="195" type="stmt" count="9"/>
      <line num="196" type="stmt" count="9"/>
      <line num="197" type="stmt" count="9"/>
      <line num="198" type="stmt" count="9"/>
      <line num="199" type="stmt" count="9"/>
      <line num="200" type="stmt" count="9"/>
      <line num="201" type="stmt" count="9"/>
      <line num="202" type="stmt" count="9"/>
      <line num="203" type="stmt" count="9"/>
      <line num="204" type="stmt" count="9"/>
      <line num="205" type="stmt" count="9"/>
      <line num="206" type="stmt" count="9"/>
      <line num="207" type="stmt" count="9"/>
      <line num="208" type="stmt" count="9"/>
      <line num="209" type="stmt" count="9"/>
      <line num="210" type="stmt" count="9"/>
      <line num="211" type="stmt" count="9"/>
      <line num="212" type="stmt" count="9"/>
      <line num="213" type="stmt" count="9"/>
      <line num="214" type="stmt" count="9"/>
      <line num="215" type="stmt" count="9"/>
      <line num="216" type="stmt" count="9"/>
      <line num="217" type="stmt" count="9"/>
      <line num="218" type="stmt" count="9"/>
      <line num="219" type="stmt" count="9"/>
      <line num="220" type="stmt" count="9"/>
      <line num="221" type="stmt" count="9"/>
      <line num="222" type="stmt" count="9"/>
      <line num="223" type="stmt" count="9"/>
      <line num="224" type="stmt" count="9"/>
      <line num="225" type="stmt" count="9"/>
      <line num="228" type="stmt" count="9"/>
      <line num="229" type="stmt" count="9"/>
      <line num="230" type="stmt" count="2"/>
      <line num="231" type="stmt" count="2"/>
      <line num="232" type="stmt" count="2"/>
      <line num="233" type="stmt" count="2"/>
      <line num="234" type="stmt" count="2"/>
      <line num="235" type="stmt" count="2"/>
      <line num="236" type="stmt" count="2"/>
      <line num="238" type="stmt" count="2"/>
      <line num="242" type="stmt" count="9"/>
      <line num="243" type="stmt" count="3"/>
      <line num="244" type="stmt" count="3"/>
      <line num="245" type="stmt" count="3"/>
      <line num="246" type="stmt" count="3"/>
      <line num="247" type="stmt" count="3"/>
      <line num="248" type="stmt" count="3"/>
      <line num="249" type="stmt" count="3"/>
      <line num="250" type="stmt" count="3"/>
      <line num="251" type="stmt" count="3"/>
      <line num="252" type="stmt" count="3"/>
      <line num="253" type="stmt" count="3"/>
      <line num="254" type="stmt" count="3"/>
      <line num="255" type="stmt" count="3"/>
      <line num="256" type="stmt" count="3"/>
      <line num="257" type="stmt" count="3"/>
      <line num="258" type="stmt" count="3"/>
      <line num="259" type="stmt" count="3"/>
      <line num="261" type="stmt" count="3"/>
      <line num="262" type="stmt" count="3"/>
      <line num="263" type="stmt" count="3"/>
      <line num="264" type="stmt" count="3"/>
      <line num="265" type="stmt" count="3"/>
      <line num="266" type="stmt" count="3"/>
      <line num="267" type="stmt" count="3"/>
      <line num="269" type="stmt" count="3"/>
      <line num="270" type="stmt" count="3"/>
      <line num="271" type="stmt" count="3"/>
      <line num="272" type="stmt" count="3"/>
      <line num="273" type="stmt" count="3"/>
      <line num="274" type="stmt" count="3"/>
      <line num="275" type="stmt" count="3"/>
      <line num="278" type="stmt" count="9"/>
      <line num="281" type="method" name="alterForm" visibility="protected" complexity="4" crap="4" count="9"/>
      <line num="282" type="stmt" count="9"/>
      <line num="284" type="stmt" count="9"/>
      <line num="287" type="stmt" count="1"/>
      <line num="288" type="stmt" count="1"/>
      <line num="291" type="stmt" count="9"/>
      <line num="292" type="stmt" count="9"/>
      <line num="293" type="stmt" count="9"/>
      <line num="294" type="stmt" count="9"/>
      <line num="295" type="stmt" count="9"/>
      <line num="302" type="method" name="postHtml" visibility="protected" complexity="2" crap="2" count="9"/>
      <line num="303" type="stmt" count="9"/>
      <line num="304" type="stmt" count="9"/>
      <line num="305" type="stmt" count="9"/>
      <line num="306" type="stmt" count="7"/>
      <line num="307" type="stmt" count="7"/>
      <line num="308" type="stmt" count="7"/>
      <line num="309" type="stmt" count="7"/>
      <line num="310" type="stmt" count="7"/>
      <line num="311" type="stmt" count="7"/>
      <line num="312" type="stmt" count="7"/>
      <line num="313" type="stmt" count="7"/>
      <line num="314" type="stmt" count="7"/>
      <line num="315" type="stmt" count="7"/>
      <line num="316" type="stmt" count="7"/>
      <line num="318" type="stmt" count="9"/>
      <line num="322" type="method" name="onSubmit" visibility="public" complexity="12" crap="12" count="6"/>
      <line num="323" type="stmt" count="6"/>
      <line num="324" type="stmt" count="6"/>
      <line num="326" type="stmt" count="6"/>
      <line num="327" type="stmt" count="1"/>
      <line num="330" type="stmt" count="6"/>
      <line num="331" type="stmt" count="5"/>
      <line num="334" type="stmt" count="6"/>
      <line num="335" type="stmt" count="1"/>
      <line num="338" type="stmt" count="6"/>
      <line num="339" type="stmt" count="1"/>
      <line num="342" type="stmt" count="6"/>
      <line num="345" type="stmt" count="6"/>
      <line num="347" type="stmt" count="1"/>
      <line num="350" type="stmt" count="6"/>
      <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="359" type="stmt" count="4"/>
      <line num="363" type="stmt" count="6"/>
      <line num="365" type="stmt" count="6"/>
      <line num="366" type="stmt" count="6"/>
      <line num="367" type="stmt" count="6"/>
      <line num="368" type="stmt" count="6"/>
      <line num="369" type="stmt" count="6"/>
      <line num="370" type="stmt" count="6"/>
      <line num="371" type="stmt" count="6"/>
      <line num="374" type="stmt" count="6"/>
      <line num="375" type="stmt" count="1"/>
      <line num="377" type="stmt" count="6"/>
      <line num="378" type="stmt" count="1"/>
      <line num="381" type="stmt" count="5"/>
      <line num="384" type="method" name="onSuccess" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="385" type="stmt" count="5"/>
      <line num="386" type="stmt" count="5"/>
      <line num="390" type="stmt" count="5"/>
      <line num="392" type="stmt" count="5"/>
      <line num="393" type="stmt" count="5"/>
      <line num="394" type="stmt" count="5"/>
      <line num="395" type="stmt" count="5"/>
      <line num="396" type="stmt" count="5"/>
      <line num="408" type="method" name="getDisplayFormat" visibility="protected" complexity="1" crap="1" count="9"/>
      <line num="409" type="stmt" count="9"/>
      <line num="413" type="method" name="getDescription" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="414" type="stmt" count="9"/>
      <metrics loc="417" ncloc="366" classes="1" methods="12" coveredmethods="12" conditionals="0" coveredconditionals="0" statements="234" coveredstatements="234" elements="246" coveredelements="246"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Special/SpecialGlobalBlockList.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Special\SpecialGlobalBlockList" namespace="global">
        <metrics complexity="38" methods="12" coveredmethods="12" conditionals="0" coveredconditionals="0" statements="132" coveredstatements="132" elements="144" coveredelements="144"/>
      </class>
      <line num="33" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="45" type="stmt" count="28"/>
      <line num="52" type="method" name="execute" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="53" type="stmt" count="28"/>
      <line num="54" type="stmt" count="28"/>
      <line num="56" type="stmt" count="28"/>
      <line num="57" type="stmt" count="28"/>
      <line num="58" type="stmt" count="28"/>
      <line num="59" type="stmt" count="28"/>
      <line num="65" type="method" name="setParameter" visibility="protected" complexity="4" crap="4" count="28"/>
      <line num="66" type="stmt" count="28"/>
      <line num="69" type="stmt" count="28"/>
      <line num="71" type="stmt" count="28"/>
      <line num="72" type="stmt" count="4"/>
      <line num="73" type="stmt" count="24"/>
      <line num="74" type="stmt" count="5"/>
      <line num="76" type="stmt" count="19"/>
      <line num="78" type="stmt" count="28"/>
      <line num="80" type="stmt" count="28"/>
      <line num="84" type="method" name="getFormFields" visibility="protected" complexity="2" crap="2" count="28"/>
      <line num="85" type="stmt" count="28"/>
      <line num="86" type="stmt" count="28"/>
      <line num="87" type="stmt" count="28"/>
      <line num="88" type="stmt" count="28"/>
      <line num="89" type="stmt" count="28"/>
      <line num="90" type="stmt" count="28"/>
      <line num="91" type="stmt" count="28"/>
      <line num="92" type="stmt" count="28"/>
      <line num="94" type="stmt" count="28"/>
      <line num="95" type="stmt" count="28"/>
      <line num="98" type="stmt" count="28"/>
      <line num="99" type="stmt" count="28"/>
      <line num="100" type="stmt" count="28"/>
      <line num="101" type="stmt" count="28"/>
      <line num="102" type="stmt" count="28"/>
      <line num="103" type="stmt" count="28"/>
      <line num="104" type="stmt" 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="112" type="stmt" count="28"/>
      <line num="113" type="stmt" count="28"/>
      <line num="114" type="stmt" count="28"/>
      <line num="118" type="method" name="alterForm" visibility="protected" complexity="1" crap="1" count="28"/>
      <line num="119" type="stmt" count="28"/>
      <line num="121" type="stmt" count="28"/>
      <line num="122" type="stmt" count="28"/>
      <line num="123" type="stmt" count="28"/>
      <line num="124" type="stmt" count="28"/>
      <line num="125" type="stmt" count="28"/>
      <line num="129" type="method" name="onSubmit" visibility="public" complexity="20" crap="20" count="28"/>
      <line num="130" type="stmt" count="28"/>
      <line num="132" type="stmt" count="28"/>
      <line num="134" type="stmt" count="28"/>
      <line num="135" type="stmt" count="28"/>
      <line num="136" type="stmt" count="14"/>
      <line num="137" type="stmt" count="14"/>
      <line num="138" type="stmt" count="2"/>
      <line num="140" type="stmt" count="12"/>
      <line num="141" type="stmt" count="9"/>
      <line num="142" type="stmt" count="9"/>
      <line num="144" type="stmt" count="3"/>
      <line num="145" type="stmt" count="3"/>
      <line num="147" type="stmt" count="12"/>
      <line num="148" type="stmt" count="12"/>
      <line num="149" type="stmt" count="12"/>
      <line num="150" type="stmt" count="12"/>
      <line num="152" type="stmt" count="14"/>
      <line num="153" type="stmt" count="1"/>
      <line num="154" type="stmt" count="1"/>
      <line num="156" type="stmt" count="13"/>
      <line num="159" type="stmt" count="27"/>
      <line num="160" type="stmt" count="27"/>
      <line num="161" type="stmt" count="27"/>
      <line num="162" type="stmt" count="27"/>
      <line num="163" type="stmt" count="27"/>
      <line num="165" type="stmt" count="27"/>
      <line num="166" type="stmt" count="27"/>
      <line num="167" type="stmt" count="27"/>
      <line num="169" type="stmt" count="27"/>
      <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="178" type="stmt" count="27"/>
      <line num="179" type="stmt" count="1"/>
      <line num="182" type="stmt" count="27"/>
      <line num="183" type="stmt" count="6"/>
      <line num="184" type="stmt" count="6"/>
      <line num="185" type="stmt" count="6"/>
      <line num="186" type="stmt" count="6"/>
      <line num="188" type="stmt" count="27"/>
      <line num="189" type="stmt" count="6"/>
      <line num="191" type="stmt" count="27"/>
      <line num="192" type="stmt" count="5"/>
      <line num="194" type="stmt" count="27"/>
      <line num="195" type="stmt" count="2"/>
      <line num="198" type="stmt" count="27"/>
      <line num="199" type="stmt" count="27"/>
      <line num="200" type="stmt" count="27"/>
      <line num="201" type="stmt" count="1"/>
      <line num="202" type="stmt" count="26"/>
      <line num="203" type="stmt" count="1"/>
      <line num="204" type="stmt" count="25"/>
      <line num="205" type="stmt" count="1"/>
      <line num="207" type="stmt" count="27"/>
      <line num="209" type="stmt" count="27"/>
      <line num="213" type="method" name="onSuccess" visibility="public" complexity="3" crap="3" count="27"/>
      <line num="215" type="stmt" count="27"/>
      <line num="216" type="stmt" count="27"/>
      <line num="217" type="stmt" count="27"/>
      <line num="218" type="stmt" count="27"/>
      <line num="219" type="stmt" count="27"/>
      <line num="220" 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="224" type="stmt" count="27"/>
      <line num="225" type="stmt" count="27"/>
      <line num="226" type="stmt" count="27"/>
      <line num="228" type="stmt" count="27"/>
      <line num="229" type="stmt" count="17"/>
      <line num="230" type="stmt" count="17"/>
      <line num="231" type="stmt" count="17"/>
      <line num="232" type="stmt" count="17"/>
      <line num="234" type="stmt" count="10"/>
      <line num="242" type="method" name="noResults" visibility="private" complexity="1" crap="1" count="10"/>
      <line num="243" type="stmt" count="10"/>
      <line num="244" type="stmt" count="10"/>
      <line num="245" type="stmt" count="10"/>
      <line num="246" type="stmt" count="10"/>
      <line num="250" type="method" name="getShowAlways" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="251" type="stmt" count="28"/>
      <line num="255" type="method" name="getDisplayFormat" visibility="protected" complexity="1" crap="1" count="28"/>
      <line num="256" type="stmt" count="28"/>
      <line num="260" type="method" name="getDescription" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="261" type="stmt" count="28"/>
      <line num="265" type="method" name="requiresPost" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="266" type="stmt" count="28"/>
      <metrics loc="277" ncloc="249" classes="1" methods="12" coveredmethods="12" conditionals="0" coveredconditionals="0" statements="132" coveredstatements="132" elements="144" coveredelements="144"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Special/SpecialGlobalBlockStatus.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Special\SpecialGlobalBlockStatus" namespace="global">
        <metrics complexity="23" methods="12" coveredmethods="12" conditionals="0" coveredconditionals="0" statements="80" coveredstatements="80" elements="92" coveredelements="92"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="36" type="stmt" count="12"/>
      <line num="40" type="method" name="getRestriction" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="41" type="stmt" count="11"/>
      <line num="45" type="method" name="execute" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="46" type="stmt" count="9"/>
      <line num="47" type="stmt" count="9"/>
      <line num="48" type="stmt" count="9"/>
      <line num="49" type="stmt" count="9"/>
      <line num="51" type="stmt" count="9"/>
      <line num="60" type="method" name="setParameter" visibility="protected" complexity="6" crap="6" count="9"/>
      <line num="61" type="stmt" count="9"/>
      <line num="64" type="stmt" count="9"/>
      <line num="65" type="stmt" count="9"/>
      <line num="68" type="stmt" count="1"/>
      <line num="69" type="stmt" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="75" type="stmt" count="8"/>
      <line num="76" type="stmt" count="1"/>
      <line num="77" type="stmt" count="7"/>
      <line num="78" type="stmt" count="2"/>
      <line num="80" type="stmt" count="5"/>
      <line num="81" type="stmt" count="5"/>
      <line num="82" type="stmt" count="1"/>
      <line num="85" type="stmt" count="4"/>
      <line num="90" type="stmt" count="8"/>
      <line num="91" type="stmt" count="8"/>
      <line num="92" type="stmt" count="3"/>
      <line num="95" type="stmt" count="8"/>
      <line num="96" type="stmt" count="8"/>
      <line num="97" type="stmt" count="8"/>
      <line num="101" type="method" name="alterForm" visibility="protected" complexity="1" crap="1" count="7"/>
      <line num="102" type="stmt" count="7"/>
      <line num="103" type="stmt" count="7"/>
      <line num="104" type="stmt" count="7"/>
      <line num="108" type="method" name="getFormFields" visibility="protected" complexity="1" crap="1" count="7"/>
      <line num="109" type="stmt" count="7"/>
      <line num="110" type="stmt" count="7"/>
      <line num="111" type="stmt" count="7"/>
      <line num="112" type="stmt" count="7"/>
      <line num="113" type="stmt" count="7"/>
      <line num="114" type="stmt" count="7"/>
      <line num="115" type="stmt" count="7"/>
      <line num="116" type="stmt" count="7"/>
      <line num="117" type="stmt" count="7"/>
      <line num="118" type="stmt" count="7"/>
      <line num="119" type="stmt" count="7"/>
      <line num="120" type="stmt" count="7"/>
      <line num="121" type="stmt" count="7"/>
      <line num="122" type="stmt" count="7"/>
      <line num="123" type="stmt" count="7"/>
      <line num="124" type="stmt" count="7"/>
      <line num="125" type="stmt" count="7"/>
      <line num="126" type="stmt" count="7"/>
      <line num="127" type="stmt" count="7"/>
      <line num="128" type="stmt" count="7"/>
      <line num="129" type="stmt" count="7"/>
      <line num="130" type="stmt" count="7"/>
      <line num="134" type="method" name="onSubmit" visibility="public" complexity="3" crap="3" count="6"/>
      <line num="135" type="stmt" count="6"/>
      <line num="137" type="stmt" count="4"/>
      <line num="138" type="stmt" count="4"/>
      <line num="141" type="stmt" count="2"/>
      <line num="142" type="stmt" count="2"/>
      <line num="145" type="stmt" count="6"/>
      <line num="146" type="stmt" count="1"/>
      <line num="149" type="stmt" count="5"/>
      <line num="158" type="method" name="showSuccess" visibility="private" complexity="3" crap="3" count="5"/>
      <line num="160" type="stmt" count="5"/>
      <line num="161" type="stmt" count="3"/>
      <line num="163" type="stmt" count="2"/>
      <line num="166" type="stmt" count="5"/>
      <line num="167" type="stmt" count="5"/>
      <line num="171" type="stmt" count="2"/>
      <line num="172" type="stmt" count="2"/>
      <line num="174" type="stmt" count="3"/>
      <line num="178" type="stmt" count="5"/>
      <line num="179" type="stmt" count="5"/>
      <line num="180" type="stmt" count="5"/>
      <line num="181" type="stmt" count="5"/>
      <line num="182" type="stmt" count="5"/>
      <line num="186" type="method" name="doesWrites" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="187" type="stmt" count="1"/>
      <line num="199" type="method" name="getDisplayFormat" visibility="protected" complexity="1" crap="1" count="7"/>
      <line num="200" type="stmt" count="7"/>
      <line num="204" type="method" name="getDescription" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="205" type="stmt" count="9"/>
      <line num="209" type="method" name="checkExecutePermissions" visibility="protected" complexity="2" crap="2" count="11"/>
      <line num="210" type="stmt" count="11"/>
      <line num="212" type="stmt" count="9"/>
      <line num="213" type="stmt" count="1"/>
      <metrics loc="217" ncloc="178" classes="1" methods="12" coveredmethods="12" conditionals="0" coveredconditionals="0" statements="80" coveredstatements="80" elements="92" coveredelements="92"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Special/SpecialMassGlobalBlock.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Special\SpecialMassGlobalBlock" namespace="global">
        <metrics complexity="58" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="364" coveredstatements="364" elements="375" coveredelements="375"/>
      </class>
      <line num="29" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="17"/>
      <line num="39" type="stmt" count="17"/>
      <line num="43" type="method" name="getRestriction" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="44" type="stmt" count="16"/>
      <line num="64" type="method" name="execute" visibility="public" complexity="8" crap="8" count="17"/>
      <line num="65" type="stmt" count="17"/>
      <line num="66" type="stmt" count="16"/>
      <line num="69" type="stmt" count="15"/>
      <line num="70" type="stmt" count="15"/>
      <line num="71" type="stmt" count="1"/>
      <line num="74" type="stmt" count="14"/>
      <line num="75" type="stmt" count="14"/>
      <line num="76" type="stmt" count="14"/>
      <line num="77" type="stmt" count="14"/>
      <line num="78" type="stmt" count="14"/>
      <line num="80" type="stmt" count="14"/>
      <line num="83" type="stmt" count="14"/>
      <line num="84" type="stmt" count="14"/>
      <line num="86" type="stmt" count="4"/>
      <line num="87" type="stmt" count="4"/>
      <line num="88" type="stmt" count="4"/>
      <line num="90" type="stmt" count="10"/>
      <line num="93" type="stmt" count="14"/>
      <line num="95" type="stmt" count="14"/>
      <line num="96" type="stmt" count="14"/>
      <line num="97" type="stmt" count="13"/>
      <line num="98" type="stmt" count="13"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="101" type="stmt" count="12"/>
      <line num="102" type="stmt" count="12"/>
      <line num="103" type="stmt" count="12"/>
      <line num="104" type="stmt" count="12"/>
      <line num="108" type="stmt" count="14"/>
      <line num="116" type="method" name="showSearchForm" visibility="private" complexity="2" crap="2" count="14"/>
      <line num="118" type="stmt" count="14"/>
      <line num="119" type="stmt" count="14"/>
      <line num="120" type="stmt" count="1"/>
      <line num="123" type="stmt" count="14"/>
      <line num="124" type="stmt" count="14"/>
      <line num="125" type="stmt" count="14"/>
      <line num="126" type="stmt" count="14"/>
      <line num="127" type="stmt" count="14"/>
      <line num="128" type="stmt" count="14"/>
      <line num="129" type="stmt" count="14"/>
      <line num="130" type="stmt" count="14"/>
      <line num="131" type="stmt" count="14"/>
      <line num="132" type="stmt" count="14"/>
      <line num="133" type="stmt" count="14"/>
      <line num="134" type="stmt" count="14"/>
      <line num="135" type="stmt" count="14"/>
      <line num="136" type="stmt" count="14"/>
      <line num="137" type="stmt" count="14"/>
      <line num="138" type="stmt" count="14"/>
      <line num="139" type="stmt" count="14"/>
      <line num="140" type="stmt" count="14"/>
      <line num="141" type="stmt" count="14"/>
      <line num="142" type="stmt" count="14"/>
      <line num="143" type="stmt" count="14"/>
      <line num="144" type="stmt" count="14"/>
      <line num="145" type="stmt" count="14"/>
      <line num="147" type="stmt" count="14"/>
      <line num="148" type="stmt" count="14"/>
      <line num="149" type="stmt" count="14"/>
      <line num="150" type="stmt" count="14"/>
      <line num="151" type="stmt" count="14"/>
      <line num="152" type="stmt" count="14"/>
      <line num="153" type="stmt" count="14"/>
      <line num="161" type="method" name="showBlockForm" visibility="private" complexity="3" crap="3" count="13"/>
      <line num="162" type="stmt" count="13"/>
      <line num="163" type="stmt" count="13"/>
      <line num="164" type="stmt" count="13"/>
      <line num="165" type="stmt" count="13"/>
      <line num="166" type="stmt" count="13"/>
      <line num="167" type="stmt" count="13"/>
      <line num="168" type="stmt" count="13"/>
      <line num="169" type="stmt" count="13"/>
      <line num="170" type="stmt" count="13"/>
      <line num="171" type="stmt" count="13"/>
      <line num="172" type="stmt" count="13"/>
      <line num="173" type="stmt" count="13"/>
      <line num="174" type="stmt" count="13"/>
      <line num="175" type="stmt" count="13"/>
      <line num="176" type="stmt" count="13"/>
      <line num="177" type="stmt" count="13"/>
      <line num="178" type="stmt" count="13"/>
      <line num="179" type="stmt" count="13"/>
      <line num="180" type="stmt" count="13"/>
      <line num="181" type="stmt" count="13"/>
      <line num="182" type="stmt" count="13"/>
      <line num="183" type="stmt" count="13"/>
      <line num="184" type="stmt" count="13"/>
      <line num="185" type="stmt" count="13"/>
      <line num="186" type="stmt" count="13"/>
      <line num="187" type="stmt" count="13"/>
      <line num="188" type="stmt" count="13"/>
      <line num="189" type="stmt" count="13"/>
      <line num="190" type="stmt" count="13"/>
      <line num="191" type="stmt" count="13"/>
      <line num="192" type="stmt" count="13"/>
      <line num="193" type="stmt" count="13"/>
      <line num="194" type="stmt" count="13"/>
      <line num="195" type="stmt" count="13"/>
      <line num="196" type="stmt" count="13"/>
      <line num="197" type="stmt" count="13"/>
      <line num="198" type="stmt" count="13"/>
      <line num="199" type="stmt" count="13"/>
      <line num="200" type="stmt" count="13"/>
      <line num="201" type="stmt" count="13"/>
      <line num="202" type="stmt" count="13"/>
      <line num="203" type="stmt" count="13"/>
      <line num="204" type="stmt" count="13"/>
      <line num="205" type="stmt" count="13"/>
      <line num="206" type="stmt" count="13"/>
      <line num="207" type="stmt" count="13"/>
      <line num="208" type="stmt" count="13"/>
      <line num="209" type="stmt" count="13"/>
      <line num="210" type="stmt" count="13"/>
      <line num="211" type="stmt" count="13"/>
      <line num="212" type="stmt" count="13"/>
      <line num="213" type="stmt" count="13"/>
      <line num="214" type="stmt" count="13"/>
      <line num="215" type="stmt" count="13"/>
      <line num="216" type="stmt" count="13"/>
      <line num="217" type="stmt" count="13"/>
      <line num="218" type="stmt" count="13"/>
      <line num="219" type="stmt" count="13"/>
      <line num="220" type="stmt" count="13"/>
      <line num="221" type="stmt" count="1"/>
      <line num="222" type="stmt" count="1"/>
      <line num="223" type="stmt" count="1"/>
      <line num="224" type="stmt" count="1"/>
      <line num="225" type="stmt" count="1"/>
      <line num="226" type="stmt" count="1"/>
      <line num="227" type="stmt" count="1"/>
      <line num="228" type="stmt" count="1"/>
      <line num="229" type="stmt" count="1"/>
      <line num="230" type="stmt" count="1"/>
      <line num="231" type="stmt" count="1"/>
      <line num="232" type="stmt" count="1"/>
      <line num="233" type="stmt" count="1"/>
      <line num="234" type="stmt" count="1"/>
      <line num="235" type="stmt" count="1"/>
      <line num="236" 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="243" type="stmt" count="1"/>
      <line num="244" type="stmt" count="1"/>
      <line num="245" type="stmt" count="1"/>
      <line num="246" type="stmt" count="1"/>
      <line num="247" type="stmt" count="1"/>
      <line num="248" type="stmt" count="1"/>
      <line num="249" type="stmt" count="1"/>
      <line num="250" type="stmt" count="1"/>
      <line num="251" type="stmt" count="1"/>
      <line num="252" type="stmt" count="1"/>
      <line num="253" type="stmt" count="1"/>
      <line num="254" type="stmt" count="1"/>
      <line num="256" type="stmt" count="13"/>
      <line num="257" type="stmt" count="13"/>
      <line num="258" type="stmt" count="13"/>
      <line num="259" type="stmt" count="13"/>
      <line num="260" type="stmt" count="13"/>
      <line num="261" type="stmt" count="13"/>
      <line num="262" type="stmt" count="13"/>
      <line num="263" type="stmt" count="13"/>
      <line num="264" type="stmt" count="13"/>
      <line num="265" type="stmt" count="13"/>
      <line num="266" type="stmt" count="13"/>
      <line num="267" type="stmt" count="13"/>
      <line num="268" type="stmt" count="13"/>
      <line num="269" type="stmt" count="13"/>
      <line num="270" type="stmt" count="13"/>
      <line num="272" type="stmt" count="13"/>
      <line num="273" type="stmt" count="13"/>
      <line num="274" type="stmt" count="13"/>
      <line num="275" type="stmt" count="13"/>
      <line num="276" type="stmt" count="13"/>
      <line num="277" type="stmt" count="13"/>
      <line num="278" type="stmt" count="13"/>
      <line num="279" type="stmt" count="13"/>
      <line num="280" type="stmt" count="13"/>
      <line num="281" type="stmt" count="13"/>
      <line num="282" type="stmt" count="13"/>
      <line num="291" type="method" name="createTable" visibility="private" complexity="2" crap="2" count="13"/>
      <line num="292" type="stmt" count="13"/>
      <line num="293" type="stmt" count="13"/>
      <line num="294" type="stmt" count="13"/>
      <line num="296" type="stmt" count="13"/>
      <line num="297" type="stmt" count="13"/>
      <line num="298" type="stmt" count="13"/>
      <line num="299" type="stmt" count="13"/>
      <line num="300" type="stmt" count="13"/>
      <line num="301" type="stmt" count="13"/>
      <line num="302" type="stmt" count="13"/>
      <line num="303" type="stmt" count="13"/>
      <line num="304" type="stmt" count="13"/>
      <line num="305" type="stmt" count="13"/>
      <line num="306" type="stmt" count="13"/>
      <line num="308" type="stmt" count="13"/>
      <line num="309" type="stmt" count="13"/>
      <line num="310" type="stmt" count="4"/>
      <line num="312" type="stmt" count="13"/>
      <line num="314" type="stmt" count="13"/>
      <line num="315" type="stmt" count="13"/>
      <line num="316" type="stmt" count="13"/>
      <line num="317" type="stmt" count="13"/>
      <line num="318" type="stmt" count="13"/>
      <line num="328" type="method" name="createTableRow" visibility="private" complexity="7" crap="7" count="4"/>
      <line num="329" type="stmt" count="4"/>
      <line num="330" type="stmt" count="4"/>
      <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="340" type="stmt" count="4"/>
      <line num="342" type="stmt" count="4"/>
      <line num="343" type="stmt" count="4"/>
      <line num="344" type="stmt" count="4"/>
      <line num="347" type="stmt" count="4"/>
      <line num="348" type="stmt" count="4"/>
      <line num="349" type="stmt" count="4"/>
      <line num="350" type="stmt" count="4"/>
      <line num="351" type="stmt" count="4"/>
      <line num="352" type="stmt" count="4"/>
      <line num="353" type="stmt" count="4"/>
      <line num="358" type="stmt" count="4"/>
      <line num="359" type="stmt" count="4"/>
      <line num="361" type="stmt" count="4"/>
      <line num="362" type="stmt" count="4"/>
      <line num="363" type="stmt" count="3"/>
      <line num="366" type="stmt" count="4"/>
      <line num="367" type="stmt" count="4"/>
      <line num="368" type="stmt" count="4"/>
      <line num="369" type="stmt" count="4"/>
      <line num="370" type="stmt" count="4"/>
      <line num="371" type="stmt" count="4"/>
      <line num="372" type="stmt" count="4"/>
      <line num="374" type="stmt" count="4"/>
      <line num="375" type="stmt" count="1"/>
      <line num="376" type="stmt" count="1"/>
      <line num="377" type="stmt" count="1"/>
      <line num="378" type="stmt" count="1"/>
      <line num="379" type="stmt" count="1"/>
      <line num="380" type="stmt" count="1"/>
      <line num="381" type="stmt" count="1"/>
      <line num="382" type="stmt" count="1"/>
      <line num="383" type="stmt" count="1"/>
      <line num="384" type="stmt" count="1"/>
      <line num="386" type="stmt" count="1"/>
      <line num="387" type="stmt" count="1"/>
      <line num="388" type="stmt" count="1"/>
      <line num="389" type="stmt" count="1"/>
      <line num="390" type="stmt" count="1"/>
      <line num="391" type="stmt" count="1"/>
      <line num="393" type="stmt" count="1"/>
      <line num="395" type="stmt" count="4"/>
      <line num="396" type="stmt" count="4"/>
      <line num="398" 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="414" type="method" name="buildTargetForDisplay" visibility="private" complexity="3" crap="3" count="4"/>
      <line num="415" type="stmt" count="4"/>
      <line num="416" type="stmt" count="4"/>
      <line num="417" type="stmt" count="1"/>
      <line num="420" type="stmt" count="4"/>
      <line num="421" type="stmt" count="4"/>
      <line num="422" type="stmt" count="1"/>
      <line num="424" type="stmt" count="4"/>
      <line num="426" type="stmt" count="4"/>
      <line num="434" type="method" name="performGlobalBlockChanges" visibility="private" complexity="25" crap="25" count="12"/>
      <line num="436" type="stmt" count="12"/>
      <line num="437" type="stmt" count="1"/>
      <line num="438" type="stmt" count="1"/>
      <line num="439" type="stmt" count="1"/>
      <line num="440" type="stmt" count="1"/>
      <line num="444" type="stmt" count="11"/>
      <line num="445" type="stmt" count="1"/>
      <line num="449" type="stmt" count="10"/>
      <line num="450" type="stmt" count="10"/>
      <line num="452" type="stmt" count="10"/>
      <line num="453" type="stmt" count="10"/>
      <line num="457" type="stmt" count="2"/>
      <line num="458" type="stmt" count="2"/>
      <line num="459" type="stmt" count="1"/>
      <line num="461" type="stmt" count="1"/>
      <line num="463" type="stmt" count="2"/>
      <line num="464" type="stmt" count="2"/>
      <line num="467" type="stmt" count="8"/>
      <line num="469" type="stmt" count="8"/>
      <line num="470" type="stmt" count="8"/>
      <line num="471" type="stmt" count="8"/>
      <line num="472" type="stmt" count="8"/>
      <line num="475" type="stmt" count="8"/>
      <line num="476" type="stmt" count="1"/>
      <line num="480" type="stmt" count="8"/>
      <line num="481" type="stmt" count="8"/>
      <line num="483" type="stmt" count="8"/>
      <line num="484" type="stmt" count="7"/>
      <line num="485" type="stmt" count="1"/>
      <line num="486" type="stmt" count="1"/>
      <line num="489" type="stmt" count="8"/>
      <line num="490" type="stmt" count="6"/>
      <line num="493" type="stmt" count="6"/>
      <line num="494" type="stmt" count="6"/>
      <line num="495" type="stmt" count="2"/>
      <line num="496" type="stmt" count="2"/>
      <line num="497" type="stmt" count="1"/>
      <line num="499" type="stmt" count="2"/>
      <line num="501" type="stmt" count="4"/>
      <line num="505" type="stmt" count="4"/>
      <line num="506" type="stmt" count="4"/>
      <line num="507" type="stmt" count="1"/>
      <line num="510" type="stmt" count="4"/>
      <line num="511" type="stmt" count="4"/>
      <line num="514" type="stmt" count="4"/>
      <line num="515" type="stmt" count="1"/>
      <line num="518" type="stmt" count="4"/>
      <line num="519" type="stmt" count="2"/>
      <line num="522" type="stmt" count="4"/>
      <line num="523" type="stmt" count="4"/>
      <line num="524" type="stmt" count="2"/>
      <line num="525" type="stmt" count="2"/>
      <line num="526" type="stmt" count="2"/>
      <line num="527" type="stmt" count="2"/>
      <line num="528" type="stmt" count="2"/>
      <line num="529" type="stmt" count="2"/>
      <line num="530" type="stmt" count="2"/>
      <line num="532" type="stmt" count="2"/>
      <line num="535" type="stmt" count="4"/>
      <line num="536" type="stmt" count="4"/>
      <line num="537" type="stmt" count="4"/>
      <line num="538" type="stmt" count="4"/>
      <line num="540" type="stmt" count="4"/>
      <line num="541" type="stmt" count="3"/>
      <line num="543" type="stmt" count="1"/>
      <line num="545" type="stmt" count="4"/>
      <line num="546" type="stmt" count="2"/>
      <line num="547" type="stmt" count="1"/>
      <line num="549" type="stmt" count="1"/>
      <line num="554" type="stmt" count="6"/>
      <line num="555" type="stmt" count="6"/>
      <line num="556" type="stmt" count="6"/>
      <line num="557" type="stmt" count="6"/>
      <line num="558" type="stmt" count="2"/>
      <line num="559" type="stmt" count="2"/>
      <line num="560" type="stmt" count="2"/>
      <line num="562" type="stmt" count="2"/>
      <line num="563" type="stmt" count="1"/>
      <line num="565" type="stmt" count="1"/>
      <line num="569" type="stmt" count="2"/>
      <line num="570" type="stmt" count="2"/>
      <line num="573" type="stmt" count="8"/>
      <line num="585" type="method" name="showSuccessBox" visibility="private" complexity="2" crap="2" count="8"/>
      <line num="586" type="stmt" count="8"/>
      <line num="587" type="stmt" count="4"/>
      <line num="588" type="stmt" count="4"/>
      <line num="589" type="stmt" count="4"/>
      <line num="590" type="stmt" count="4"/>
      <line num="603" type="method" name="showErrorBox" visibility="private" complexity="2" crap="2" count="8"/>
      <line num="604" type="stmt" count="8"/>
      <line num="605" type="stmt" count="5"/>
      <line num="606" type="stmt" count="5"/>
      <line num="607" type="stmt" count="5"/>
      <line num="608" type="stmt" count="5"/>
      <metrics loc="612" ncloc="530" classes="1" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="364" coveredstatements="364" elements="375" coveredelements="375"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Special/SpecialRemoveGlobalBlock.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Special\SpecialRemoveGlobalBlock" namespace="global">
        <metrics complexity="16" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="55" elements="64" coveredelements="64"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="28" type="stmt" count="8"/>
      <line num="32" type="method" name="getRestriction" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="33" type="stmt" count="8"/>
      <line num="37" type="method" name="execute" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="38" type="stmt" count="6"/>
      <line num="39" type="stmt" count="6"/>
      <line num="41" type="stmt" count="6"/>
      <line num="42" type="stmt" count="6"/>
      <line num="43" type="stmt" count="6"/>
      <line num="44" type="stmt" count="6"/>
      <line num="46" type="stmt" count="6"/>
      <line num="48" type="stmt" count="6"/>
      <line num="49" type="stmt" count="1"/>
      <line num="54" type="method" name="setParameter" visibility="protected" complexity="4" crap="4" count="6"/>
      <line num="55" type="stmt" count="6"/>
      <line num="58" type="stmt" count="6"/>
      <line num="59" type="stmt" count="6"/>
      <line num="60" type="stmt" count="6"/>
      <line num="61" type="stmt" count="1"/>
      <line num="62" type="stmt" count="5"/>
      <line num="63" type="stmt" count="2"/>
      <line num="65" type="stmt" count="3"/>
      <line num="68" type="stmt" count="6"/>
      <line num="72" type="method" name="onSubmit" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="73" type="stmt" count="5"/>
      <line num="77" type="method" name="onSuccess" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="78" type="stmt" count="4"/>
      <line num="79" type="stmt" count="4"/>
      <line num="82" type="stmt" count="4"/>
      <line num="83" type="stmt" count="4"/>
      <line num="84" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <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="96" type="stmt" count="4"/>
      <line num="100" type="method" name="alterForm" visibility="protected" complexity="1" crap="1" count="6"/>
      <line num="101" type="stmt" count="6"/>
      <line num="102" type="stmt" count="6"/>
      <line num="103" type="stmt" count="6"/>
      <line num="107" type="method" name="getFormFields" visibility="protected" complexity="1" crap="1" count="6"/>
      <line num="108" type="stmt" count="6"/>
      <line num="109" type="stmt" count="6"/>
      <line num="110" type="stmt" count="6"/>
      <line num="111" type="stmt" count="6"/>
      <line num="112" type="stmt" count="6"/>
      <line num="113" type="stmt" count="6"/>
      <line num="114" type="stmt" count="6"/>
      <line num="115" type="stmt" count="6"/>
      <line num="116" type="stmt" count="6"/>
      <line num="117" type="stmt" count="6"/>
      <line num="118" type="stmt" count="6"/>
      <line num="119" type="stmt" count="6"/>
      <line num="120" type="stmt" count="6"/>
      <line num="121" type="stmt" count="6"/>
      <line num="122" type="stmt" count="6"/>
      <line num="123" type="stmt" count="6"/>
      <line num="124" type="stmt" count="6"/>
      <line num="125" type="stmt" count="6"/>
      <line num="145" type="method" name="getDisplayFormat" visibility="protected" complexity="1" crap="1" count="6"/>
      <line num="146" type="stmt" count="6"/>
      <metrics loc="149" ncloc="129" classes="1" methods="9" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="55" elements="64" coveredelements="64"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/UserMergeHooks.php">
      <class name="MediaWiki\Extension\GlobalBlocking\UserMergeHooks" namespace="global">
        <metrics complexity="1" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="25" ncloc="15" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/includes/Widget/HTMLUserTextFieldAllowingGlobalBlockIds.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Widget\HTMLUserTextFieldAllowingGlobalBlockIds" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="4" coveredelements="4"/>
      </class>
      <line num="17" type="method" name="validate" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="18" type="stmt" count="3"/>
      <line num="19" type="stmt" count="2"/>
      <line num="21" type="stmt" count="1"/>
      <metrics loc="24" ncloc="17" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="4" coveredelements="4"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/maintenance/UpdateAutoBlockParentIdColumn.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Maintenance\UpdateAutoBlockParentIdColumn" namespace="global">
        <metrics complexity="11" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="78" coveredstatements="78" elements="81" coveredelements="81"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="24" type="stmt" count="6"/>
      <line num="26" type="stmt" count="6"/>
      <line num="27" type="stmt" count="6"/>
      <line num="28" type="stmt" count="6"/>
      <line num="29" type="stmt" count="6"/>
      <line num="30" type="stmt" count="6"/>
      <line num="31" type="stmt" count="6"/>
      <line num="33" type="stmt" count="6"/>
      <line num="37" type="method" name="getUpdateKey" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="38" type="stmt" count="6"/>
      <line num="42" type="method" name="doDbUpdates" visibility="public" complexity="9" crap="9" count="6"/>
      <line num="43" type="stmt" count="6"/>
      <line num="44" type="stmt" count="6"/>
      <line num="45" type="stmt" count="6"/>
      <line num="46" type="stmt" count="1"/>
      <line num="48" type="stmt" count="5"/>
      <line num="49" type="stmt" count="5"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="54" type="stmt" count="4"/>
      <line num="55" type="stmt" count="4"/>
      <line num="56" type="stmt" count="4"/>
      <line num="57" type="stmt" count="4"/>
      <line num="58" type="stmt" count="4"/>
      <line num="59" type="stmt" count="4"/>
      <line num="60" type="stmt" count="4"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <line num="68" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="73" type="stmt" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <line num="75" type="stmt" count="2"/>
      <line num="76" type="stmt" count="2"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="2"/>
      <line num="79" type="stmt" count="2"/>
      <line num="80" type="stmt" count="2"/>
      <line num="81" type="stmt" count="2"/>
      <line num="83" type="stmt" count="2"/>
      <line num="84" type="stmt" count="2"/>
      <line num="85" type="stmt" count="2"/>
      <line num="86" type="stmt" count="2"/>
      <line num="88" type="stmt" count="2"/>
      <line num="93" type="stmt" count="2"/>
      <line num="94" 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="98" type="stmt" count="2"/>
      <line num="100" type="stmt" count="2"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="2"/>
      <line num="103" type="stmt" count="2"/>
      <line num="104" type="stmt" count="2"/>
      <line num="106" type="stmt" count="2"/>
      <line num="107" type="stmt" count="2"/>
      <line num="108" type="stmt" count="2"/>
      <line num="109" type="stmt" count="2"/>
      <line num="110" type="stmt" count="2"/>
      <line num="111" type="stmt" count="2"/>
      <line num="112" type="stmt" count="2"/>
      <line num="115" type="stmt" count="2"/>
      <line num="116" type="stmt" count="2"/>
      <line num="117" type="stmt" count="2"/>
      <line num="118" type="stmt" count="2"/>
      <line num="119" type="stmt" count="2"/>
      <line num="120" type="stmt" count="2"/>
      <line num="121" type="stmt" count="2"/>
      <line num="123" type="stmt" count="1"/>
      <line num="124" type="stmt" count="1"/>
      <line num="128" type="stmt" count="2"/>
      <line num="129" type="stmt" count="2"/>
      <line num="131" type="stmt" count="2"/>
      <line num="133" type="stmt" count="2"/>
      <line num="134" type="stmt" count="2"/>
      <metrics loc="142" ncloc="128" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="78" coveredstatements="78" elements="81" coveredelements="81"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/maintenance/fixGlobalBlockWhitelist.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Maintenance\FixGlobalBlockWhitelist" namespace="global">
        <metrics complexity="8" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="54" elements="57" coveredelements="57"/>
      </class>
      <line num="25" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="26" type="stmt" count="5"/>
      <line num="27" type="stmt" count="5"/>
      <line num="28" type="stmt" count="5"/>
      <line num="32" type="stmt" count="5"/>
      <line num="34" type="stmt" count="5"/>
      <line num="37" type="method" name="execute" visibility="public" complexity="3" crap="3" count="5"/>
      <line num="38" type="stmt" count="5"/>
      <line num="39" type="stmt" count="5"/>
      <line num="43" type="stmt" count="5"/>
      <line num="44" type="stmt" count="5"/>
      <line num="45" type="stmt" count="5"/>
      <line num="46" type="stmt" count="5"/>
      <line num="47" type="stmt" count="5"/>
      <line num="48" type="stmt" count="5"/>
      <line num="50" type="stmt" count="5"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="55" type="stmt" count="4"/>
      <line num="56" type="stmt" 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="63" type="stmt" count="4"/>
      <line num="64" type="stmt" count="4"/>
      <line num="65" type="stmt" count="4"/>
      <line num="66" type="stmt" count="4"/>
      <line num="67" 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="4"/>
      <line num="75" type="stmt" count="4"/>
      <line num="76" type="stmt" count="4"/>
      <line num="77" type="stmt" count="4"/>
      <line num="78" type="stmt" count="4"/>
      <line num="79" type="stmt" count="4"/>
      <line num="81" type="stmt" count="4"/>
      <line num="83" type="stmt" count="4"/>
      <line num="85" type="stmt" count="4"/>
      <line num="94" type="method" name="handleDeletions" visibility="protected" complexity="4" crap="4" count="4"/>
      <line num="95" type="stmt" count="4"/>
      <line num="96" type="stmt" count="4"/>
      <line num="98" type="stmt" count="2"/>
      <line num="99" type="stmt" count="2"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="2"/>
      <line num="103" type="stmt" count="2"/>
      <line num="104" type="stmt" count="2"/>
      <line num="106" type="stmt" count="1"/>
      <line num="107" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="110" type="stmt" count="1"/>
      <line num="111" type="stmt" count="1"/>
      <line num="113" type="stmt" count="1"/>
      <metrics loc="122" ncloc="99" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="54" elements="57" coveredelements="57"/>
    </file>
    <file name="/workspace/src/extensions/GlobalBlocking/maintenance/globallyBlock.php">
      <class name="MediaWiki\Extension\GlobalBlocking\Maintenance\GloballyBlock" namespace="global">
        <metrics complexity="18" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="64" coveredstatements="64" elements="66" coveredelements="66"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="21" type="stmt" count="7"/>
      <line num="23" type="stmt" count="7"/>
      <line num="25" type="stmt" count="7"/>
      <line num="26" type="stmt" count="7"/>
      <line num="27" type="stmt" count="7"/>
      <line num="28" type="stmt" count="7"/>
      <line num="29" type="stmt" count="7"/>
      <line num="30" type="stmt" count="7"/>
      <line num="32" type="stmt" count="7"/>
      <line num="33" type="stmt" count="7"/>
      <line num="34" type="stmt" count="7"/>
      <line num="35" type="stmt" count="7"/>
      <line num="36" type="stmt" count="7"/>
      <line num="37" type="stmt" count="7"/>
      <line num="38" type="stmt" count="7"/>
      <line num="39" type="stmt" count="7"/>
      <line num="40" type="stmt" count="7"/>
      <line num="41" type="stmt" count="7"/>
      <line num="42" type="stmt" count="7"/>
      <line num="43" type="stmt" count="7"/>
      <line num="46" type="method" name="execute" visibility="public" complexity="17" crap="17" count="7"/>
      <line num="48" type="stmt" count="7"/>
      <line num="49" type="stmt" count="7"/>
      <line num="50" type="stmt" count="2"/>
      <line num="52" type="stmt" count="5"/>
      <line num="55" type="stmt" count="7"/>
      <line num="56" type="stmt" count="1"/>
      <line num="60" type="stmt" count="6"/>
      <line num="61" type="stmt" count="5"/>
      <line num="63" type="stmt" count="1"/>
      <line num="66" type="stmt" count="6"/>
      <line num="67" type="stmt" count="1"/>
      <line num="71" type="stmt" count="5"/>
      <line num="72" type="stmt" count="5"/>
      <line num="73" type="stmt" count="1"/>
      <line num="76" type="stmt" count="5"/>
      <line num="77" type="stmt" count="1"/>
      <line num="80" type="stmt" count="5"/>
      <line num="81" type="stmt" count="1"/>
      <line num="84" type="stmt" count="5"/>
      <line num="85" type="stmt" count="5"/>
      <line num="87" type="stmt" count="5"/>
      <line num="88" type="stmt" count="5"/>
      <line num="90" type="stmt" count="5"/>
      <line num="93" type="stmt" count="5"/>
      <line num="94" type="stmt" count="5"/>
      <line num="95" type="stmt" count="5"/>
      <line num="96" type="stmt" count="2"/>
      <line num="98" type="stmt" count="5"/>
      <line num="99" type="stmt" count="5"/>
      <line num="100" type="stmt" count="2"/>
      <line num="103" type="stmt" count="5"/>
      <line num="104" type="stmt" count="2"/>
      <line num="106" type="stmt" count="3"/>
      <line num="109" type="stmt" count="3"/>
      <line num="110" type="stmt" count="1"/>
      <line num="112" type="stmt" count="3"/>
      <line num="115" type="stmt" count="5"/>
      <line num="116" type="stmt" count="1"/>
      <line num="117" type="stmt" count="1"/>
      <line num="118" type="stmt" count="1"/>
      <line num="120" type="stmt" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="123" type="stmt" count="4"/>
      <line num="125" type="stmt" count="5"/>
      <metrics loc="134" ncloc="124" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="64" coveredstatements="64" elements="66" coveredelements="66"/>
    </file>
    <metrics files="38" loc="7182" ncloc="5657" classes="31" methods="216" coveredmethods="216" conditionals="0" coveredconditionals="0" statements="2915" coveredstatements="2915" elements="3131" coveredelements="3131"/>
  </project>
</coverage>
