\relax \providecommand{\transparent@use}[1]{} \providecommand\hyper@newdestlabel[2]{} \@writefile{listings}{\addvspace {10pt}} \@writefile{toc}{\contentsline {chapter}{\numberline {4}Implementation}{29}{chapter.4}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{loa}{\addvspace {10\p@ }} \newlabel{ch:implementation}{{4}{29}{Implementation}{chapter.4}{}} \@writefile{toc}{\contentsline {section}{\numberline {4.1}Design Decisions and Scope}{30}{section.4.1}\protected@file@percent } \newlabel{sec:design}{{4.1}{30}{Design Decisions and Scope}{section.4.1}{}} \@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Caller Hierarchy of the Main Components.\relax }}{30}{figure.4.1}\protected@file@percent } \newlabel{fig:implarch}{{4.1}{30}{Caller Hierarchy of the Main Components.\relax }{figure.4.1}{}} \@writefile{toc}{\contentsline {section}{\numberline {4.2}Integration into HhuOS}{32}{section.4.2}\protected@file@percent } \newlabel{sec:apxhhuos}{{4.2}{32}{Integration into HhuOS}{section.4.2}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Interrupt Handling in HhuOS}{32}{subsection.4.2.1}\protected@file@percent } \newlabel{subsec:apxcurrenthhuos}{{4.2.1}{32}{Interrupt Handling in HhuOS}{subsection.4.2.1}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.1}{\ignorespaces \hspace *{1ex}The InterruptHandler Interface (InterruptHandler.h)~\blx@tocontentsinit {0}\autocite {hhuos}}}{33}{tcb@cnt@codeblock.4.1}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.2}{\ignorespaces \hspace *{1ex}Assigning an Interrupt Handler (InterruptDispatcher.cpp)~\blx@tocontentsinit {0}\autocite {hhuos}}}{33}{tcb@cnt@codeblock.4.2}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.3}{\ignorespaces \hspace *{1ex}Triggering an Interrupt Handler (InterruptDispatcher.cpp)~\blx@tocontentsinit {0}\autocite {hhuos}}}{33}{tcb@cnt@codeblock.4.3}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.4}{\ignorespaces \hspace *{1ex}The PIT Interrupt Handler (Pit.cpp)~\blx@tocontentsinit {0}\autocite {hhuos}}}{33}{tcb@cnt@codeblock.4.4}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Necessary Modifications to HhuOS}{33}{subsection.4.2.2}\protected@file@percent } \newlabel{subsec:hhuosintegration}{{4.2.2}{33}{Necessary Modifications to HhuOS}{subsection.4.2.2}{}} \newlabel{lst:interruptserviceafter}{{4.5}{34}{Necessary Modifications to HhuOS}{tcb@cnt@codeblock.4.5}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.5}{\ignorespaces \hspace *{1ex}Using the Correct Interrupt Controller (InterruptService.cpp)}}{34}{tcb@cnt@codeblock.4.5}\protected@file@percent } \newlabel{lst:pithandlerafter}{{4.6}{34}{Necessary Modifications to HhuOS}{tcb@cnt@codeblock.4.6}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.6}{\ignorespaces \hspace *{1ex}Disabling PIT Preemption (Pit.cpp)}}{34}{tcb@cnt@codeblock.4.6}\protected@file@percent } \newlabel{lst:systemafter}{{4.7}{34}{Necessary Modifications to HhuOS}{tcb@cnt@codeblock.4.7}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.7}{\ignorespaces \hspace *{1ex}Enabling the APIC System (System.cpp)}}{34}{tcb@cnt@codeblock.4.7}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}Public Interface of the APIC Subsystem}{34}{subsection.4.2.3}\protected@file@percent } \newlabel{subsec:hhuospublicinterface}{{4.2.3}{34}{Public Interface of the APIC Subsystem}{subsection.4.2.3}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.8}{\ignorespaces \hspace *{1ex}The APIC Public Interface (Apic.h)}}{35}{tcb@cnt@codeblock.4.8}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {4.3}Local APIC}{35}{section.4.3}\protected@file@percent } \newlabel{sec:apxlocalapic}{{4.3}{35}{Local APIC}{section.4.3}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.1}Disabling PIC Mode}{35}{subsection.4.3.1}\protected@file@percent } \newlabel{subsec:apxdisablepic}{{4.3.1}{35}{Disabling PIC Mode}{subsection.4.3.1}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.9}{\ignorespaces \hspace *{1ex}Disabling PIC Mode (LocalApic.cpp)}}{35}{tcb@cnt@codeblock.4.9}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.2}Accessing Local APIC Registers in xApic Mode}{36}{subsection.4.3.2}\protected@file@percent } \newlabel{subsec:apxxapicregacc}{{4.3.2}{36}{Accessing Local APIC Registers in xApic Mode}{subsection.4.3.2}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.10}{\ignorespaces \hspace *{1ex}Allocating the Local APIC's MMIO Region (LocalApic.cpp)}}{36}{tcb@cnt@codeblock.4.10}\protected@file@percent } \newlabel{lst:lapicmmiowrite}{{4.11}{36}{Accessing Local APIC Registers in xApic Mode}{tcb@cnt@codeblock.4.11}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.11}{\ignorespaces \hspace *{1ex}Writing a Local APIC MMIO Register (LocalApic.cpp)}}{36}{tcb@cnt@codeblock.4.11}\protected@file@percent } \newlabel{lst:msrentry}{{4.12}{36}{Accessing Local APIC Registers in xApic Mode}{tcb@cnt@codeblock.4.12}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.12}{\ignorespaces \hspace *{1ex}The MSREntry Structure (LocalApicRegisters.h)}}{36}{tcb@cnt@codeblock.4.12}\protected@file@percent } \newlabel{lst:svrentry}{{4.13}{36}{Accessing Local APIC Registers in xApic Mode}{tcb@cnt@codeblock.4.13}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.13}{\ignorespaces \hspace *{1ex}The SVREntry Structure (LocalApicRegisters.h)}}{36}{tcb@cnt@codeblock.4.13}\protected@file@percent } \newlabel{lst:lvtentry}{{4.14}{37}{Accessing Local APIC Registers in xApic Mode}{tcb@cnt@codeblock.4.14}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.14}{\ignorespaces \hspace *{1ex}The LVTEntry Structure (LocalApicRegisters.h)}}{37}{tcb@cnt@codeblock.4.14}\protected@file@percent } \newlabel{lst:icrentry}{{4.15}{37}{Accessing Local APIC Registers in xApic Mode}{tcb@cnt@codeblock.4.15}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.15}{\ignorespaces \hspace *{1ex}The ICREntry Structure (LocalApicRegisters.h)}}{37}{tcb@cnt@codeblock.4.15}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.16}{\ignorespaces \hspace *{1ex}Writing the IA32\textunderscore {}APIC\textunderscore {}BASE MSR (LocalApic.cpp)}}{37}{tcb@cnt@codeblock.4.16}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.17}{\ignorespaces \hspace *{1ex}Writing the SVR (LocalApic.cpp)}}{37}{tcb@cnt@codeblock.4.17}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.18}{\ignorespaces \hspace *{1ex}Writing the LVT (LocalApic.cpp)}}{37}{tcb@cnt@codeblock.4.18}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.19}{\ignorespaces \hspace *{1ex}Writing the ICR (LocalApic.cpp)}}{37}{tcb@cnt@codeblock.4.19}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.3}Initializing the LVT}{38}{subsection.4.3.3}\protected@file@percent } \newlabel{subsec:apxlvtinit}{{4.3.3}{38}{Initializing the LVT}{subsection.4.3.3}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.20}{\ignorespaces \hspace *{1ex}Configuring the Local Error Interrupt (LocalApic.cpp)}}{38}{tcb@cnt@codeblock.4.20}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.4}Handling the Spurious Interrupt}{38}{subsection.4.3.4}\protected@file@percent } \newlabel{subsec:apxsvr}{{4.3.4}{38}{Handling the Spurious Interrupt}{subsection.4.3.4}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.21}{\ignorespaces \hspace *{1ex}Setting the Spurious Interrupt Vector (LocalApic.cpp)}}{38}{tcb@cnt@codeblock.4.21}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.22}{\ignorespaces \hspace *{1ex}Checking for Spurious Interrupts (InterruptDispatcher.cpp)}}{38}{tcb@cnt@codeblock.4.22}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.23}{\ignorespaces \hspace *{1ex}Ignoring Spurious Interrupts (InterruptDispatcher.cpp)}}{38}{tcb@cnt@codeblock.4.23}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.5}Using the APIC Timer}{39}{subsection.4.3.5}\protected@file@percent } \newlabel{subsec:apxapictimer}{{4.3.5}{39}{Using the APIC Timer}{subsection.4.3.5}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.24}{\ignorespaces \hspace *{1ex}Calibrating the APIC Timer (ApicTimer.cpp)}}{39}{tcb@cnt@codeblock.4.24}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.25}{\ignorespaces \hspace *{1ex}Microsecond Delay without Interrupts (Pit.cpp)}}{39}{tcb@cnt@codeblock.4.25}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.26}{\ignorespaces \hspace *{1ex}Handling the APIC Timer Interrupt (ApicTimer.cpp)}}{40}{tcb@cnt@codeblock.4.26}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.6}Handling Local APIC Errors}{40}{subsection.4.3.6}\protected@file@percent } \newlabel{subsec:apxhandlingerror}{{4.3.6}{40}{Handling Local APIC Errors}{subsection.4.3.6}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.27}{\ignorespaces \hspace *{1ex}The Local APIC Error Interrupt Handler (ApicErrorHandler.cpp)}}{40}{tcb@cnt@codeblock.4.27}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {4.4}I/O APIC}{40}{section.4.4}\protected@file@percent } \newlabel{sec:apxioapic}{{4.4}{40}{I/O APIC}{section.4.4}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.4.1}Accessing I/O APIC Registers}{40}{subsection.4.4.1}\protected@file@percent } \newlabel{subsec:iolistings}{{4.4.1}{40}{Accessing I/O APIC Registers}{subsection.4.4.1}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.28}{\ignorespaces \hspace *{1ex}Writing an I/O APIC MMIO Register (IoApic.h)}}{40}{tcb@cnt@codeblock.4.28}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.29}{\ignorespaces \hspace *{1ex}Writing an I/O APIC Indirect Register (IoApic.cpp)}}{41}{tcb@cnt@codeblock.4.29}\protected@file@percent } \newlabel{lst:redtblentry}{{4.30}{41}{Accessing I/O APIC Registers}{tcb@cnt@codeblock.4.30}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.30}{\ignorespaces \hspace *{1ex}The REDTBLEntry Structure (IoApicRegisters.h)}}{41}{tcb@cnt@codeblock.4.30}\protected@file@percent } \newlabel{lst:writeredtbl}{{4.31}{41}{Accessing I/O APIC Registers}{tcb@cnt@codeblock.4.31}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.31}{\ignorespaces \hspace *{1ex}Writing the REDTBL (IoApic.cpp)}}{41}{tcb@cnt@codeblock.4.31}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.4.2}Interrupt Overrides}{41}{subsection.4.4.2}\protected@file@percent } \newlabel{subsec:apxirqoverrides}{{4.4.2}{41}{Interrupt Overrides}{subsection.4.4.2}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.32}{\ignorespaces \hspace *{1ex}The External Interrupt Override Structure (IoApic.h)}}{41}{tcb@cnt@codeblock.4.32}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.33}{\ignorespaces \hspace *{1ex}Initializing the REDTBL (IoApic.cpp)}}{42}{tcb@cnt@codeblock.4.33}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.34}{\ignorespaces \hspace *{1ex}Unmasking an IRQ (Apic.cpp)}}{42}{tcb@cnt@codeblock.4.34}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.35}{\ignorespaces \hspace *{1ex}Unmasking an IRQ Internally (IoApic.cpp)}}{42}{tcb@cnt@codeblock.4.35}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {4.5}Symmetric Multiprocessing}{43}{section.4.5}\protected@file@percent } \newlabel{sec:apxsymmetric}{{4.5}{43}{Symmetric Multiprocessing}{section.4.5}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.5.1}Issuing Inter-Processor Interrupts}{43}{subsection.4.5.1}\protected@file@percent } \newlabel{subsec:apxipis}{{4.5.1}{43}{Issuing Inter-Processor Interrupts}{subsection.4.5.1}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.36}{\ignorespaces \hspace *{1ex}Issuing an INIT IPI (LocalApic.cpp)}}{43}{tcb@cnt@codeblock.4.36}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.37}{\ignorespaces \hspace *{1ex}Issuing a SIPI (LocalApic.cpp)}}{43}{tcb@cnt@codeblock.4.37}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.5.2}Preparing Symmetric Multiprocessing Startup}{43}{subsection.4.5.2}\protected@file@percent } \newlabel{subsec:apxpreparesmp}{{4.5.2}{43}{Preparing Symmetric Multiprocessing Startup}{subsection.4.5.2}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.38}{\ignorespaces \hspace *{1ex}The Boot Routine's Variables (smp\textunderscore {}boot.asm)}}{44}{tcb@cnt@codeblock.4.38}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.39}{\ignorespaces \hspace *{1ex}Preparing the Boot Routine's Variables (ApicSmp.cpp)}}{44}{tcb@cnt@codeblock.4.39}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.40}{\ignorespaces \hspace *{1ex}Relocating the Boot Routine (ApicSmp.cpp)}}{45}{tcb@cnt@codeblock.4.40}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.5.3}Universal Startup Algorithm}{45}{subsection.4.5.3}\protected@file@percent } \newlabel{subsec:apxmpusa}{{4.5.3}{45}{Universal Startup Algorithm}{subsection.4.5.3}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.41}{\ignorespaces \hspace *{1ex}The Universal Startup Algorithm (ApicSmp.cpp)}}{45}{tcb@cnt@codeblock.4.41}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.42}{\ignorespaces \hspace *{1ex}Signaling AP Boot Completion (smp\textunderscore {}entry.cpp)}}{45}{tcb@cnt@codeblock.4.42}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.5.4}Application Processor Boot Routine}{45}{subsection.4.5.4}\protected@file@percent } \newlabel{subsec:apxapboot}{{4.5.4}{45}{Application Processor Boot Routine}{subsection.4.5.4}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.43}{\ignorespaces \hspace *{1ex}Preparing the Switch to Protected Mode (smp\textunderscore {}boot.asm)}}{46}{tcb@cnt@codeblock.4.43}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.44}{\ignorespaces \hspace *{1ex}Switching from Real Mode to Protected Mode (smp\textunderscore {}boot.asm)}}{46}{tcb@cnt@codeblock.4.44}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.45}{\ignorespaces \hspace *{1ex}Reusing Values from the BSP (smp\textunderscore {}boot.asm)}}{46}{tcb@cnt@codeblock.4.45}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.46}{\ignorespaces \hspace *{1ex}Calling the Entry Function (smp\textunderscore {}boot.asm)}}{47}{tcb@cnt@codeblock.4.46}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.5.5}Application Processor Post-Boot Routine}{47}{subsection.4.5.5}\protected@file@percent } \newlabel{subsec:apxappostboot}{{4.5.5}{47}{Application Processor Post-Boot Routine}{subsection.4.5.5}{}} \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.47}{\ignorespaces \hspace *{1ex}Initializing the Core's Local APIC (LocalApic.cpp)}}{47}{tcb@cnt@codeblock.4.47}\protected@file@percent } \@writefile{listings}{\contentsline {tcolorbox}{\numberline {4.48}{\ignorespaces \hspace *{1ex}Synchronizing the Arbitration IDs (LocalApic.cpp)}}{47}{tcb@cnt@codeblock.4.48}\protected@file@percent } \@setckpt{chap/implementation}{ \setcounter{page}{49} \setcounter{equation}{0} \setcounter{enumi}{4} \setcounter{enumii}{0} \setcounter{enumiii}{0} \setcounter{enumiv}{0} \setcounter{footnote}{7} \setcounter{mpfootnote}{0} \setcounter{part}{0} \setcounter{chapter}{4} \setcounter{section}{5} \setcounter{subsection}{5} \setcounter{subsubsection}{0} \setcounter{paragraph}{0} \setcounter{subparagraph}{0} \setcounter{figure}{1} \setcounter{table}{0} \setcounter{parentequation}{0} \setcounter{tcbbreakpart}{1} \setcounter{tcblayer}{0} \setcounter{tcolorbox@number}{182} \setcounter{FancyVerbLine}{12} \setcounter{linenumber}{1} \setcounter{LN@truepage}{56} \setcounter{FV@TrueTabGroupLevel}{0} \setcounter{FV@TrueTabCounter}{0} \setcounter{FV@HighlightLinesStart}{0} \setcounter{FV@HighlightLinesStop}{0} \setcounter{FancyVerbLineBreakLast}{0} \setcounter{FV@BreakBufferDepth}{0} \setcounter{float@type}{16} \setcounter{minted@FancyVerbLineTemp}{0} \setcounter{minted@pygmentizecounter}{48} \setcounter{listing}{0} \setcounter{tcblisting}{0} \setcounter{caption@flags}{6} \setcounter{continuedfloat}{0} \setcounter{subfigure}{0} \setcounter{subtable}{0} \setcounter{section@level}{2} \setcounter{Item}{50} \setcounter{Hfootnote}{37} \setcounter{bookmark@seq@number}{60} \setcounter{AlgoLine}{0} \setcounter{algocfline}{0} \setcounter{algocfproc}{0} \setcounter{algocf}{0} \setcounter{lofdepth}{1} \setcounter{lotdepth}{1} \setcounter{svg@param@lastpage}{0} \setcounter{svg@param@currpage}{-1} \setcounter{su@anzahl}{0} \setcounter{LT@tables}{0} \setcounter{LT@chunks}{0} \setcounter{@pps}{0} \setcounter{@ppsavesec}{0} \setcounter{@ppsaveapp}{0} \setcounter{AM@survey}{0} \setcounter{tabx@nest}{0} \setcounter{listtotal}{0} \setcounter{listcount}{0} \setcounter{liststart}{0} \setcounter{liststop}{0} \setcounter{citecount}{0} \setcounter{citetotal}{0} \setcounter{multicitecount}{0} \setcounter{multicitetotal}{0} \setcounter{instcount}{89} \setcounter{maxnames}{3} \setcounter{minnames}{3} \setcounter{maxitems}{3} \setcounter{minitems}{1} \setcounter{citecounter}{0} \setcounter{maxcitecounter}{0} \setcounter{savedcitecounter}{0} \setcounter{uniquelist}{0} \setcounter{uniquename}{0} \setcounter{refsection}{0} \setcounter{refsegment}{0} \setcounter{maxextratitle}{0} \setcounter{maxextratitleyear}{0} \setcounter{maxextraname}{0} \setcounter{maxextradate}{0} \setcounter{maxextraalpha}{0} \setcounter{abbrvpenalty}{50} \setcounter{highnamepenalty}{50} \setcounter{lownamepenalty}{25} \setcounter{maxparens}{3} \setcounter{parenlevel}{0} \setcounter{blx@maxsection}{0} \setcounter{mincomprange}{10} \setcounter{maxcomprange}{100000} \setcounter{mincompwidth}{1} \setcounter{afterword}{0} \setcounter{savedafterword}{0} \setcounter{annotator}{0} \setcounter{savedannotator}{0} \setcounter{author}{0} \setcounter{savedauthor}{0} \setcounter{bookauthor}{0} \setcounter{savedbookauthor}{0} \setcounter{commentator}{0} \setcounter{savedcommentator}{0} \setcounter{editor}{0} \setcounter{savededitor}{0} \setcounter{editora}{0} \setcounter{savededitora}{0} \setcounter{editorb}{0} \setcounter{savededitorb}{0} \setcounter{editorc}{0} \setcounter{savededitorc}{0} \setcounter{foreword}{0} \setcounter{savedforeword}{0} \setcounter{holder}{0} \setcounter{savedholder}{0} \setcounter{introduction}{0} \setcounter{savedintroduction}{0} \setcounter{namea}{0} \setcounter{savednamea}{0} \setcounter{nameb}{0} \setcounter{savednameb}{0} \setcounter{namec}{0} \setcounter{savednamec}{0} \setcounter{translator}{0} \setcounter{savedtranslator}{0} \setcounter{shortauthor}{0} \setcounter{savedshortauthor}{0} \setcounter{shorteditor}{0} \setcounter{savedshorteditor}{0} \setcounter{labelname}{0} \setcounter{savedlabelname}{0} \setcounter{institution}{0} \setcounter{savedinstitution}{0} \setcounter{lista}{0} \setcounter{savedlista}{0} \setcounter{listb}{0} \setcounter{savedlistb}{0} \setcounter{listc}{0} \setcounter{savedlistc}{0} \setcounter{listd}{0} \setcounter{savedlistd}{0} \setcounter{liste}{0} \setcounter{savedliste}{0} \setcounter{listf}{0} \setcounter{savedlistf}{0} \setcounter{location}{0} \setcounter{savedlocation}{0} \setcounter{organization}{0} \setcounter{savedorganization}{0} \setcounter{origlocation}{0} \setcounter{savedoriglocation}{0} \setcounter{origpublisher}{0} \setcounter{savedorigpublisher}{0} \setcounter{publisher}{0} \setcounter{savedpublisher}{0} \setcounter{language}{0} \setcounter{savedlanguage}{0} \setcounter{origlanguage}{0} \setcounter{savedoriglanguage}{0} \setcounter{pageref}{0} \setcounter{savedpageref}{0} \setcounter{textcitecount}{0} \setcounter{textcitetotal}{0} \setcounter{textcitemaxnames}{0} \setcounter{biburlbigbreakpenalty}{100} \setcounter{biburlbreakpenalty}{200} \setcounter{biburlnumpenalty}{0} \setcounter{biburlucpenalty}{0} \setcounter{biburllcpenalty}{0} \setcounter{smartand}{1} \setcounter{bbx:relatedcount}{0} \setcounter{bbx:relatedtotal}{0} \setcounter{cbx@tempcnta}{0} \setcounter{cbx@tempcntb}{15} \setcounter{cbx@tempcntc}{0} \setcounter{cbx@tempcntd}{-1} \setcounter{tcb@cnt@codeblock}{48} }