<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1788773419">
  <project timestamp="1788773419">
    <file name="/workspace/src/extensions/ContactPage/includes/Hooks/ContactFormHook.php">
      <metrics loc="33" ncloc="17" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ContactPage/includes/Hooks/ContactFromCompleteHook.php">
      <metrics loc="29" 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/ContactPage/includes/Hooks/Handlers/ConfirmEditHandler.php">
      <class name="MediaWiki\Extension\ContactPage\Hooks\Handlers\ConfirmEditHandler" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="5" coveredelements="5"/>
      </class>
      <line num="12" type="method" name="onConfirmEditGetGlobalInstanceFromContext" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="13" type="stmt" count="2"/>
      <line num="14" type="stmt" count="1"/>
      <line num="15" type="stmt" count="1"/>
      <line num="17" type="stmt" count="1"/>
      <metrics loc="20" ncloc="19" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="5" coveredelements="5"/>
    </file>
    <file name="/workspace/src/extensions/ContactPage/includes/Hooks/HookRunner.php">
      <class name="MediaWiki\Extension\ContactPage\Hooks\HookRunner" namespace="global">
        <metrics complexity="4" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="13" elements="17" coveredelements="17"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="18" type="stmt" count="3"/>
      <line num="23" type="method" name="onContactForm" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="35" type="method" name="onContactFromComplete" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="45" type="method" name="onEmailUserForm" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <metrics loc="52" ncloc="39" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="13" elements="17" coveredelements="17"/>
    </file>
    <file name="/workspace/src/extensions/ContactPage/includes/SpecialContact.php">
      <class name="MediaWiki\Extension\ContactPage\SpecialContact" namespace="global">
        <metrics complexity="104" methods="11" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="355" coveredstatements="280" elements="366" coveredelements="286"/>
      </class>
      <line num="46" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="20"/>
      <line num="51" type="stmt" count="20"/>
      <line num="53" type="stmt" count="20"/>
      <line num="59" type="method" name="getDescription" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="71" type="method" name="getTypeConfig" visibility="protected" complexity="3" crap="3" count="19"/>
      <line num="72" type="stmt" count="19"/>
      <line num="74" type="stmt" count="19"/>
      <line num="75" type="stmt" count="19"/>
      <line num="76" type="stmt" count="19"/>
      <line num="79" type="stmt" count="19"/>
      <line num="80" type="stmt" count="18"/>
      <line num="82" type="stmt" count="1"/>
      <line num="93" type="method" name="getFormSpecificMessageKey" visibility="protected" complexity="4" crap="4" count="14"/>
      <line num="94" type="stmt" count="14"/>
      <line num="95" type="stmt" count="14"/>
      <line num="99" type="stmt" count="13"/>
      <line num="101" type="stmt" count="14"/>
      <line num="104" type="stmt" count="12"/>
      <line num="106" type="stmt" count="2"/>
      <line num="116" type="method" name="execute" visibility="public" complexity="13" crap="13.03" count="19"/>
      <line num="117" type="stmt" count="19"/>
      <line num="119" type="stmt" count="1"/>
      <line num="122" type="stmt" count="18"/>
      <line num="123" type="stmt" count="18"/>
      <line num="125" type="stmt" count="18"/>
      <line num="127" type="stmt" count="18"/>
      <line num="128" type="stmt" count="1"/>
      <line num="129" type="stmt" count="1"/>
      <line num="132" type="stmt" count="17"/>
      <line num="134" type="stmt" count="17"/>
      <line num="136" type="stmt" count="16"/>
      <line num="137" type="stmt" count="4"/>
      <line num="138" type="stmt" count="4"/>
      <line num="142" type="stmt" count="12"/>
      <line num="143" type="stmt" count="12"/>
      <line num="144" type="stmt" count="12"/>
      <line num="146" 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="151" type="stmt" count="12"/>
      <line num="152" type="stmt" count="12"/>
      <line num="153" type="stmt" count="12"/>
      <line num="154" type="stmt" count="11"/>
      <line num="156" type="stmt" count="11"/>
      <line num="157" type="stmt" count="11"/>
      <line num="158" type="stmt" count="11"/>
      <line num="161" type="stmt" count="11"/>
      <line num="162" type="stmt" count="11"/>
      <line num="163" type="stmt" count="11"/>
      <line num="166" type="stmt" count="12"/>
      <line num="167" type="stmt" count="12"/>
      <line num="170" type="stmt" count="12"/>
      <line num="171" type="stmt" count="0"/>
      <line num="174" type="stmt" count="12"/>
      <line num="176" type="stmt" count="12"/>
      <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="181" type="stmt" count="2"/>
      <line num="182" type="stmt" count="2"/>
      <line num="184" type="stmt" count="2"/>
      <line num="186" type="stmt" count="10"/>
      <line num="187" type="stmt" count="0"/>
      <line num="189" type="stmt" count="10"/>
      <line num="190" type="stmt" count="0"/>
      <line num="192" type="stmt" count="10"/>
      <line num="193" type="stmt" count="10"/>
      <line num="194" type="stmt" count="10"/>
      <line num="195" type="stmt" count="10"/>
      <line num="213" type="method" name="checkFormErrors" visibility="private" complexity="17" crap="17.12" count="17"/>
      <line num="215" type="stmt" count="17"/>
      <line num="216" type="stmt" count="17"/>
      <line num="218" type="stmt" count="17"/>
      <line num="222" type="stmt" count="1"/>
      <line num="223" type="stmt" count="16"/>
      <line num="226" type="stmt" count="1"/>
      <line num="230" type="stmt" count="16"/>
      <line num="231" type="stmt" count="0"/>
      <line num="235" type="stmt" count="16"/>
      <line num="236" type="stmt" count="1"/>
      <line num="240" type="stmt" count="15"/>
      <line num="241" type="stmt" count="2"/>
      <line num="242" type="stmt" count="2"/>
      <line num="243" type="stmt" count="1"/>
      <line num="245" type="stmt" count="1"/>
      <line num="247" type="stmt" count="13"/>
      <line num="251" type="stmt" count="14"/>
      <line num="252" type="stmt" count="14"/>
      <line num="253" type="stmt" count="2"/>
      <line num="254" type="stmt" count="2"/>
      <line num="255" type="stmt" count="1"/>
      <line num="256" type="stmt" count="1"/>
      <line num="259" type="stmt" count="1"/>
      <line num="268" type="stmt" count="12"/>
      <line num="269" type="stmt" count="12"/>
      <line num="270" type="stmt" count="0"/>
      <line num="273" type="stmt" count="12"/>
      <line num="276" type="method" name="getFormFields" visibility="private" complexity="14" crap="14" 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="283" type="stmt" count="13"/>
      <line num="284" type="stmt" count="11"/>
      <line num="286" type="stmt" count="2"/>
      <line num="289" type="stmt" count="13"/>
      <line num="290" type="stmt" count="13"/>
      <line num="291" type="stmt" count="13"/>
      <line num="292" type="stmt" count="13"/>
      <line num="293" type="stmt" count="13"/>
      <line num="295" type="stmt" count="13"/>
      <line num="298" type="stmt" count="6"/>
      <line num="299" type="stmt" count="6"/>
      <line num="300" type="stmt" count="6"/>
      <line num="302" type="stmt" count="0"/>
      <line num="304" type="stmt" count="6"/>
      <line num="305" type="stmt" count="6"/>
      <line num="306" type="stmt" count="6"/>
      <line num="309" type="stmt" count="13"/>
      <line num="310" type="stmt" count="13"/>
      <line num="311" type="stmt" count="13"/>
      <line num="312" type="stmt" count="13"/>
      <line num="313" 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="319" type="stmt" count="13"/>
      <line num="320" type="stmt" count="13"/>
      <line num="321" type="stmt" count="13"/>
      <line num="322" type="stmt" count="13"/>
      <line num="323" type="stmt" count="13"/>
      <line num="324" type="stmt" count="13"/>
      <line num="325" type="stmt" count="13"/>
      <line num="326" type="stmt" count="13"/>
      <line num="327" type="stmt" count="13"/>
      <line num="328" type="stmt" count="13"/>
      <line num="329" type="stmt" count="13"/>
      <line num="330" type="stmt" count="13"/>
      <line num="334" type="stmt" count="13"/>
      <line num="335" type="stmt" count="13"/>
      <line num="336" type="stmt" count="13"/>
      <line num="337" type="stmt" count="13"/>
      <line num="338" type="stmt" count="13"/>
      <line num="339" type="stmt" count="13"/>
      <line num="340" type="stmt" count="13"/>
      <line num="341" type="stmt" count="13"/>
      <line num="342" type="stmt" count="13"/>
      <line num="343" type="stmt" count="13"/>
      <line num="344" type="stmt" count="13"/>
      <line num="345" type="stmt" count="13"/>
      <line num="347" type="stmt" count="13"/>
      <line num="348" type="stmt" count="1"/>
      <line num="349" type="stmt" count="1"/>
      <line num="350" type="stmt" count="1"/>
      <line num="351" type="stmt" count="1"/>
      <line num="354" type="stmt" count="13"/>
      <line num="355" type="stmt" count="3"/>
      <line num="356" type="stmt" count="3"/>
      <line num="357" type="stmt" count="3"/>
      <line num="358" type="stmt" count="3"/>
      <line num="359" type="stmt" count="3"/>
      <line num="360" type="stmt" count="3"/>
      <line num="363" type="stmt" count="13"/>
      <line num="365" type="stmt" count="13"/>
      <line num="367" 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="373" type="stmt" count="4"/>
      <line num="374" type="stmt" count="4"/>
      <line num="376" type="stmt" count="4"/>
      <line num="378" type="stmt" count="4"/>
      <line num="379" type="stmt" count="1"/>
      <line num="382" type="stmt" count="3"/>
      <line num="384" type="stmt" count="3"/>
      <line num="389" type="stmt" count="9"/>
      <line num="394" type="stmt" count="13"/>
      <line num="395" type="stmt" count="11"/>
      <line num="396" type="stmt" count="11"/>
      <line num="397" type="stmt" count="11"/>
      <line num="398" type="stmt" count="11"/>
      <line num="399" type="stmt" count="11"/>
      <line num="400" type="stmt" count="11"/>
      <line num="401" type="stmt" count="11"/>
      <line num="402" type="stmt" count="11"/>
      <line num="403" type="stmt" count="11"/>
      <line num="404" type="stmt" count="11"/>
      <line num="405" type="stmt" count="11"/>
      <line num="406" type="stmt" count="11"/>
      <line num="408" type="stmt" count="11"/>
      <line num="413" type="stmt" count="13"/>
      <line num="426" type="method" name="processInput" visibility="public" complexity="43" crap="233.70" count="3"/>
      <line num="427" type="stmt" count="3"/>
      <line num="428" type="stmt" count="3"/>
      <line num="431" type="stmt" count="3"/>
      <line num="432" type="stmt" count="3"/>
      <line num="434" type="stmt" count="1"/>
      <line num="437" type="stmt" count="2"/>
      <line num="438" type="stmt" count="2"/>
      <line num="441" type="stmt" count="2"/>
      <line num="442" type="stmt" count="0"/>
      <line num="444" type="stmt" count="0"/>
      <line num="445" type="stmt" count="0"/>
      <line num="447" type="stmt" count="2"/>
      <line num="448" type="stmt" count="2"/>
      <line num="453" type="stmt" count="2"/>
      <line num="454" type="stmt" count="2"/>
      <line num="455" type="stmt" count="2"/>
      <line num="456" type="stmt" count="2"/>
      <line num="459" type="stmt" count="2"/>
      <line num="461" type="stmt" count="2"/>
      <line num="462" type="stmt" count="2"/>
      <line num="464" type="stmt" count="2"/>
      <line num="465" type="stmt" count="2"/>
      <line num="467" type="stmt" count="2"/>
      <line num="470" type="stmt" count="2"/>
      <line num="471" type="stmt" count="0"/>
      <line num="475" type="stmt" count="2"/>
      <line num="477" type="stmt" count="2"/>
      <line num="479" type="stmt" count="2"/>
      <line num="482" type="stmt" count="0"/>
      <line num="486" type="stmt" count="2"/>
      <line num="487" type="stmt" count="2"/>
      <line num="488" type="stmt" count="2"/>
      <line num="490" type="stmt" count="2"/>
      <line num="491" type="stmt" count="2"/>
      <line num="492" type="stmt" count="0"/>
      <line num="493" type="stmt" count="0"/>
      <line num="494" type="stmt" count="0"/>
      <line num="495" type="stmt" count="0"/>
      <line num="496" type="stmt" count="0"/>
      <line num="497" type="stmt" count="0"/>
      <line num="499" type="stmt" count="2"/>
      <line num="500" type="stmt" count="2"/>
      <line num="501" type="stmt" count="2"/>
      <line num="502" type="stmt" count="2"/>
      <line num="503" type="stmt" count="2"/>
      <line num="505" type="stmt" count="0"/>
      <line num="506" type="stmt" count="0"/>
      <line num="507" type="stmt" count="0"/>
      <line num="508" type="stmt" count="0"/>
      <line num="509" type="stmt" count="0"/>
      <line num="510" type="stmt" count="0"/>
      <line num="511" type="stmt" count="0"/>
      <line num="512" type="stmt" count="0"/>
      <line num="514" type="stmt" count="0"/>
      <line num="515" type="stmt" count="0"/>
      <line num="516" type="stmt" count="0"/>
      <line num="517" type="stmt" count="0"/>
      <line num="518" type="stmt" count="0"/>
      <line num="520" type="stmt" count="0"/>
      <line num="521" type="stmt" count="0"/>
      <line num="522" type="stmt" count="0"/>
      <line num="523" type="stmt" count="0"/>
      <line num="524" type="stmt" count="0"/>
      <line num="525" type="stmt" count="0"/>
      <line num="528" type="stmt" count="2"/>
      <line num="532" type="stmt" count="2"/>
      <line num="533" type="stmt" count="2"/>
      <line num="536" type="stmt" count="2"/>
      <line num="537" type="stmt" count="2"/>
      <line num="538" type="stmt" count="0"/>
      <line num="541" type="stmt" count="2"/>
      <line num="542" type="stmt" count="1"/>
      <line num="545" type="stmt" count="2"/>
      <line num="547" type="stmt" count="2"/>
      <line num="550" type="stmt" count="2"/>
      <line num="552" type="stmt" count="1"/>
      <line num="553" type="stmt" count="1"/>
      <line num="554" type="stmt" count="1"/>
      <line num="555" type="stmt" count="1"/>
      <line num="557" type="stmt" count="0"/>
      <line num="559" type="stmt" count="0"/>
      <line num="560" type="stmt" count="0"/>
      <line num="561" type="stmt" count="0"/>
      <line num="562" type="stmt" count="0"/>
      <line num="563" type="stmt" count="0"/>
      <line num="564" type="stmt" count="0"/>
      <line num="565" type="stmt" count="0"/>
      <line num="568" type="stmt" count="2"/>
      <line num="569" type="stmt" count="1"/>
      <line num="570" type="stmt" count="1"/>
      <line num="571" type="stmt" count="0"/>
      <line num="572" type="stmt" count="0"/>
      <line num="573" type="stmt" count="0"/>
      <line num="574" type="stmt" count="0"/>
      <line num="575" type="stmt" count="0"/>
      <line num="576" type="stmt" count="0"/>
      <line num="579" type="stmt" count="2"/>
      <line num="581" type="stmt" count="2"/>
      <line num="583" type="stmt" count="2"/>
      <line num="584" type="stmt" count="2"/>
      <line num="585" type="stmt" count="0"/>
      <line num="590" type="stmt" count="0"/>
      <line num="592" type="stmt" count="0"/>
      <line num="595" type="stmt" count="2"/>
      <line num="596" type="stmt" count="0"/>
      <line num="597" type="stmt" count="2"/>
      <line num="598" type="stmt" count="0"/>
      <line num="600" type="stmt" count="2"/>
      <line num="603" type="stmt" count="2"/>
      <line num="606" type="stmt" count="2"/>
      <line num="607" type="stmt" count="2"/>
      <line num="610" type="stmt" count="0"/>
      <line num="613" type="stmt" count="2"/>
      <line num="614" type="stmt" count="2"/>
      <line num="615" type="stmt" count="2"/>
      <line num="616" type="stmt" count="2"/>
      <line num="617" type="stmt" count="2"/>
      <line num="618" type="stmt" count="2"/>
      <line num="619" type="stmt" count="2"/>
      <line num="620" type="stmt" count="2"/>
      <line num="621" type="stmt" count="2"/>
      <line num="622" type="stmt" count="2"/>
      <line num="623" type="stmt" count="2"/>
      <line num="625" type="stmt" count="2"/>
      <line num="626" type="stmt" count="2"/>
      <line num="627" type="stmt" count="0"/>
      <line num="628" type="stmt" count="0"/>
      <line num="629" type="stmt" count="0"/>
      <line num="634" type="stmt" count="2"/>
      <line num="635" type="stmt" count="0"/>
      <line num="636" type="stmt" count="0"/>
      <line num="637" type="stmt" count="0"/>
      <line num="639" type="stmt" count="0"/>
      <line num="640" type="stmt" count="0"/>
      <line num="641" type="stmt" count="0"/>
      <line num="642" type="stmt" count="0"/>
      <line num="643" type="stmt" count="0"/>
      <line num="644" type="stmt" count="0"/>
      <line num="645" type="stmt" count="0"/>
      <line num="646" type="stmt" count="0"/>
      <line num="647" type="stmt" count="0"/>
      <line num="648" type="stmt" count="0"/>
      <line num="654" type="stmt" count="0"/>
      <line num="659" type="stmt" count="2"/>
      <line num="661" type="stmt" count="2"/>
      <line num="668" type="method" name="getYesOrNoMsg" visibility="private" complexity="2" crap="2" count="2"/>
      <line num="669" type="stmt" count="2"/>
      <line num="675" type="method" name="useCaptcha" visibility="private" complexity="5" crap="5" count="13"/>
      <line num="676" type="stmt" count="13"/>
      <line num="677" type="stmt" count="1"/>
      <line num="679" type="stmt" count="12"/>
      <line num="680" type="stmt" count="12"/>
      <line num="682" type="stmt" count="12"/>
      <line num="683" type="stmt" count="12"/>
      <line num="684" type="stmt" count="12"/>
      <line num="685" type="stmt" count="12"/>
      <line num="691" type="method" name="getCaptcha" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="693" type="stmt" count="3"/>
      <line num="695" type="stmt" count="3"/>
      <line num="696" type="stmt" count="3"/>
      <line num="697" type="stmt" count="3"/>
      <line num="699" type="stmt" count="3"/>
      <line num="700" type="stmt" count="3"/>
      <line num="701" type="stmt" count="3"/>
      <line num="702" type="stmt" count="3"/>
      <line num="703" type="stmt" count="3"/>
      <line num="705" type="stmt" count="3"/>
      <line num="706" type="stmt" count="3"/>
      <line num="707" type="stmt" count="3"/>
      <metrics loc="710" ncloc="574" classes="1" methods="11" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="355" coveredstatements="280" elements="366" coveredelements="286"/>
    </file>
    <metrics files="5" loc="844" ncloc="664" classes="3" methods="16" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="372" coveredstatements="297" elements="388" coveredelements="308"/>
  </project>
</coverage>
