(***********************************************************************

                    Mathematica-Compatible Notebook

This notebook can be used on any computer system with Mathematica 4.0,
MathReader 4.0, or any compatible application. The data for the notebook 
starts with the line containing stars above.

To get the notebook into a Mathematica-compatible application, do one of 
the following:

* Save the data starting with the line of stars above into a file
  with a name ending in .nb, then open the file inside the application;

* Copy the data starting with the line of stars above to the
  clipboard, then use the Paste menu command inside the application.

Data for notebooks contains only printable 7-bit ASCII and can be
sent directly in email or through ftp in text mode.  Newlines can be
CR, LF or CRLF (Unix, Macintosh or MS-DOS style).

NOTE: If you modify the data for this notebook not in a Mathematica-
compatible application, you must delete the line below containing the 
word CacheID, otherwise Mathematica-compatible applications may try to 
use invalid cache data.

For more information on notebooks and Mathematica-compatible 
applications, contact Wolfram Research:
  web: http://www.wolfram.com
  email: info@wolfram.com
  phone: +1-217-398-0700 (U.S.)

Notebook reader applications are available free of charge from 
Wolfram Research.
***********************************************************************)

(*CacheID: 232*)


(*NotebookFileLineBreakTest
NotebookFileLineBreakTest*)
(*NotebookOptionsPosition[    393672,       9573]*)
(*NotebookOutlinePosition[    550959,      13637]*)
(*  CellTagsIndexPosition[    550851,      13630]*)
(*WindowFrame->Normal*)



Notebook[{

Cell[CellGroupData[{
Cell[TextData[{
  StyleBox["Notation.m",
    FontWeight->"Bold"],
  " \nA Package for Defining New Notation\nSource Code"
}], "Subtitle"],

Cell["\[Copyright] 1997 Jason Harris", "Subsubtitle",
  FontSlant->"Plain"],

Cell[CellGroupData[{

Cell["Package Beginnings", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["Package Pre Begin", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Print a release number for the ",
  StyleBox["Notation", "MR"],
  " package."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[BoxData[
    \(If[Utilities`Notation`$NotationDebug, 
      CellPrint[
        Cell[TextData[
            StyleBox["\<Notation Release 1.4.0\>", "\<Message\>", 
              FontWeight \[Rule] "\<Bold\>"]], "\<Output\>"]]]\)], "Input",
  InitializationCell->True],

Cell[BoxData[
    \(If[Utilities`Notation`$NotationDebug, 
      CellPrint[
        Cell[TextData[
            StyleBox["Notation Release 1.4.0", "Message", 
              FontWeight \[Rule] "Bold"]], "Output"]]]\)], "Output"]
}, Closed]],

Cell[BoxData[
    \(If[2.99 \[LessEqual] $VersionNumber + $ReleaseNumber \[LessEqual] 
        3.001, \ CellPrint\ @\ 
        Cell[TextData[
            StyleBox[
              "\<You are using an older version of Mathematica than this \
version of the Notation package was designed for. The upgrade Mathematica \
3.0.0 -> 3.0.1 can be obtained free of charge from WRI. This version of the \
Notation package will work with Mathematica 3.0.1.\>", \ "\<Message\>", 
              FontWeight -> "\<Bold\>"]], \ "\<Output\>"]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Package Begin", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\(BeginPackage\ [\ "\<Utilities`Notation`\>"\ ];\)\(\t\)\)\)], "Input",\

  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(Unprotect\ @\ \ "\<Utilities`Notation`*\>";\)\), "\n", 
    \(ClearAll\  @@ \ 
      Complement[Names\ @\ "\<Utilities`Notation`*\>", \n
        {"\<AutoLoadNotationPalette\>", "\<AutoUpdateNotationStyleSheet\>", 
          "\<$NotationDebug\>"}]\), "\n", 
    \(\(ClearAll\ @\ "\<Utilities`Notation`Private`*\>";\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["Package Post Begin", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Begin\ @\ "\<`Private`\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["friendlyOff", "MR"],
  " will turn off a message. ",
  StyleBox["friendlyOn", "MR"],
  " will turn that message on only if it was on before the ",
  StyleBox["friendlyOff", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(SetAttributes[{friendlyOff, \ friendlyOn, \ messageStatus}, HoldAll];
      \)\), "\n", 
    \(\(messageStatus\ @\ 
          MessageName[\[ScriptF]\[ScriptU]\[ScriptN]\[ScriptC]_, 
            \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG]_String]\  := \ 
        If[\ Head\ [\ 
              MessageName[\[ScriptF]\[ScriptU]\[ScriptN]\[ScriptC], 
                  \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG]]\  /. 
                Messages\ @\ \[ScriptF]\[ScriptU]\[ScriptN]\[ScriptC]]\ \  
            =!= \ $Off, $On, $Off, $Off];\)\), "\n", 
    \(\(friendlyOff\ @\ 
          \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG]_MessageName\  := \ 
        \((mesgWasOn\ @\ 
              \(Hold\ @\ \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG]\)\  = \ 
            \((messageStatus\ @\ \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG]\  
                =!= \ $Off)\); 
          Off\ @\ \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG];)\);\)\), "\n", 
    \(\(friendlyOn\ @\ 
          \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG]_MessageName\ \  := \ 
        If[mesgWasOn\ @\ 
            \(Hold\ @\ \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG]\), \ 
          On\ @\ \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG]; 
          mesgWasOn\ @\ 
              \(Hold\ @\ \[ScriptM]\[ScriptE]\[ScriptS]\[ScriptG]\)\  = \ 
            False;];\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["silentEvaluate", "MR"],
  " will evaluate an expression, but report NO error messages, I.e. it will \
silently evaluate an expression giving a result."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(SetAttributes[silentEvaluate, HoldAll]\), "\n", 
    \(silentEvaluate\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_\  := 
      Block[{Message}, SetAttributes[Message, HoldFirst]; 
        \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]]\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[StyleBox[
"WRI still has not got around to removing the Notation symbol from the system \
context. It is not being used for anything. Remove it from the system.", 
  "Text"]], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(silentEvaluate\ @\ \(Unprotect\ @\ "\<System`Notation\>"\);\)\), 
  "\n", 
    \(\(silentEvaluate\ @\ \(Remove\ @\ "\<System`Notation\>"\);\)\)}], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[StyleBox[
"If any of the vital symbols used by Notation are being used in the global \
context then warn the user and remove them from the global context.", "Text"]]
, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(notationsPublicFunctions = 
        \(("\<Global`\>"\  <> \ # &)\)\  /@ 
          {"\<Action\>", "\<ClearNotations\>", "\<CreateNotationRules\>", 
            "\<InfixNotation\>", "\<NotationBoxTag\>", 
            "\<NotationPatternTag\>", "\<PrintNotationRules\>", 
            "\<RemoveInfixNotation\>", "\<RemoveNotation\>", 
            "\<RemoveNotationRules\>", "\<RemoveSymbolize\>", 
            "\<Symbolize\>", "\<SymbolizeRootName\>", "\<WorkingForm\>"};
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(General::overShadw\  = \ 
        "\<The symbol \"`1`\" has been used in the global context. The \
Notation package needs the full use of the symbol \"`1`\" and has therefore \
removed this symbol from the global context.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(With[
      {overideNames = 
          Intersection[Names\ @\ "\<Global`*\>"\ , 
            notationsPublicFunctions]}, \n\t\t\ If[overideNames =!= {}, \ 
        \(\((Message[Evaluate\ @\ ToExpression[# <> "\<::overShadw\>"], #])\) 
            &\)\  /@ \ \(\((StringDrop[#, 7] &)\) /@ \ 
            overideNames\); \n\t\t\tUnprotect\  /@ \ 
          overideNames; \n\ \ \ \ \ \ \ ClearAll\  /@ \ 
          overideNames; \n\ \ \ \ \ \ \ Remove\  /@ \ overideNames;]]\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox[
  "$NewVersion is a boolean variable representing a new version of the \
Notation package suitable for ", "Text"],
  StyleBox["Mathematica", "Text",
    FontSlant->"Italic"],
  StyleBox[" 4.0 and grater.", "Text"]
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\($NewVersion\  = \ \(($VersionNumber > 3.1)\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[StyleBox["End \"`Private`\"", "MR"]], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(End[];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Package Usage Statements for 3.0", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Symbolize::usage\  = \n\t
        "\<Symbolize[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]] \
forces any box structure matching \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS] to be treated internally as a single symbol anywhere it appears in \
an input expression.\>";\)\)], "Input",
  PageWidth->PaperWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(RemoveSymbolize::usage\  = \n\t
        "\<RemoveSymbolize[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]]\
 removes the symbolization of \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS].\>";\)\)], "Input",
  PageWidth->PaperWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(SymbolizeRootName::usage\  := \n\t
        "\<SymbolizeRootName is an option for Symbolize specifying the name \
to be used internally for the symbolized boxes.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(InfixNotation::usage\  = \n\t
        "\<InfixNotation[\[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalO]\[ScriptP], \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\
\[ScriptI]\[ScriptX]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]] forces \
the box structure \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalO]\[ScriptP] to be treated as an infix operator representing \
the function \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] in input and output.\>";
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(RemoveInfixNotation::usage\  = \n\t
        "\<RemoveInfixNotation[\[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\
\[ScriptX]\[ScriptCapitalO]\[ScriptP], \[ScriptP]\[ScriptR]\[ScriptE]\
\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]]\
 removes the infix operator \
\[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalO]\[ScriptP]\
\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::usage\  = \n
        "\<Notation[\[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS] \[DoubleLongLeftRightArrow] \[ScriptCapitalI]\[ScriptN]\[ScriptT]\
\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalE]\[ScriptX]\
\[ScriptP]\[ScriptR]] parses any input box structure \[ScriptCapitalE]\
\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS] internally as \
\[ScriptCapitalI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalE]\[ScriptX]\[ScriptP]\[ScriptR], and formats any \
expression matching \[ScriptCapitalI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalE]\[ScriptX]\[ScriptP]\[ScriptR] \
as \[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS] \
in output. To restrict Notation to only parsing, use Notation[\
\[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS] \
\[DoubleLongRightArrow] \[ScriptCapitalI]\[ScriptN]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalE]\[ScriptX]\[ScriptP]\
\[ScriptR]], and to restrict Notation to only formatting, use Notation[\
\[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS] \
\[DoubleLongLeftArrow] \[ScriptCapitalI]\[ScriptN]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalE]\[ScriptX]\[ScriptP]\
\[ScriptR]].\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(RemoveNotation::usage\  = \n
        "\<RemoveNotation[\[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\
\[ScriptE]\[ScriptS] \[DoubleLongLeftRightArrow] \[ScriptCapitalI]\[ScriptN]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalE]\
\[ScriptX]\[ScriptP]\[ScriptR]] removes the notation \[ScriptCapitalE]\
\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\
\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM] \[DoubleLongLeftRightArrow] \
\[ScriptCapitalI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]. To remove only the \
parsing, use RemoveNotation[\[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\
\[ScriptE]\[ScriptS] \[DoubleLongRightArrow] \[ScriptCapitalI]\[ScriptN]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalE]\
\[ScriptX]\[ScriptP]\[ScriptR]], and to remove only the formatting, use \
RemoveNotation[\[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS] \[DoubleLongLeftArrow] \[ScriptCapitalI]\[ScriptN]\[ScriptT]\
\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalE]\[ScriptX]\
\[ScriptP]\[ScriptR]].\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(NotationBoxTag::usage\t = \n
        "\<NotationBoxTag is a TagBox tag that is embedded in Notation, \
Symbolize and InfixNotation statements.  The embedded TagBox ensures correct \
parsing and retention of proper styling and grouping information.\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(NotationPatternTag::usage\t = \n
        "\<NotationPatternTag is a TagBox tag which can be embedded in \
Notation, Symbolize and InfixNotation statements. When used, this tag \
indicates that the expression inside of the NotationPatternTag structure \
represents a complex pattern and not a box structure. It will still be \
processed by MakeBoxes or MakeExpression.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(NotationMadeBoxesTag::usage\t = \n
        "\<NotationMadeBoxesTag is a TagBox tag which can be embedded in \
Notation, Symbolize and InfixNotation statements. When used, this tag \
indicates that the expression inside of the NotationMadeBoxesTag structure \
represents a made box expression or literal expression. It will not be \
processed by MakeBoxes.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(ClearNotations::usage\  = \n
        "\<ClearNotations[] will remove all \"notations\" , \
\"symbolizations\" and \"infix notations\". It does not destroy any rules for \
MakeExpression and MakeBoxes. This function will reset the notation handling \
to a pristine state.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(WorkingForm::usage\  = \n\t
        "\<WorkingForm is an option of Notation, Symbolize and InfixNotation, \
which specifies which form the notation will be defined in. Possible forms \
include StandardForm, TraditionalForm, user defined forms, and Automatic \
which defaults to the default output format type.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Action::usage\  = \n\t
        "\<Action is an option of Notation, Symbolize and InfixNotation. It \
defines what action will be performed with the given notation statement. The \
possible values are CreateNotationRules, PrintNotationRules and \
RemoveNotationRules\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(CreateNotationRules::usage\  = \n\t
        "\<CreateNotationRules is a possible value for the option Action \
which is used in Notation, Symbolize and InfixNotation. If the option Action \
is set to CreateNotationRules, then a notation statement will enter the given \
notation into the system.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(RemoveNotationRules::usage\  = \n\t
        "\<RemoveNotationRules is a possible value for the option Action \
which is used in Notation, Symbolize and InfixNotation. If the option Action \
is set to RemoveNotationRules, then a notation statement will remove the \
given notation from the system.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(PrintNotationRules::usage\  = \n\t
        "\<PrintNotationRules is a possible value for the option Action which \
is used in Notation, Symbolize and InfixNotation. If the option Action is set \
to PrintNotationRules, then a notation statement will print out a cell \
containing the rules defining the given notation.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(AutoLoadNotationPalette::usage\  = \n\t
        "\<AutoLoadNotationPalette is a boolean variable. If False then the \
Notation palette will not be loaded when the Notation package is loaded. If \
the value is undefined or True the Notation palette will be loaded when the \
Notation package loads. Other package designers can set this variable outside \
of the Notation package through a statement similar to \
Utilities`Notation`AutoLoadNotationPalette = False.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(NotationMakeExpression::usage\  = \n\t
        "\<NotationMakeExpression is a private version of MakeExpression. The \
Notation package uses NotationMakeExpression in an attempt to minimally \
interfere with other functions that use MakeExpression.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(NotationMakeBoxes::usage\  = \n\t
        "\<NotationMakeBoxes is a private version of MakeBoxes. The Notation \
package uses NotationMakeBoxes in an attempt to minimally interfere with \
other functions that use MakeBoxes.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["Package Usage Statements for 4.0", "Subsubsection",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(AutoUpdateNotationStyleSheet::usage\  = \n\t
        "\<AutoUpdateNotationStyleSheet is a boolean variable. If False then \
the current notebook style sheet will not be updated to the latest styles \
when the Notation package is loaded. If the value is undefined or True the \
style sheet will be updated when the Notation package loads. Other package \
designers can set this variable outside of the Notation package by \
Utilities`Notation`AutoUpdateNotationStyleSheet = False.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(UpdateNotationsInNotebook::usage\  = \n\t
        "\<UpdateNotationsInNotebook[] is a function that will update all \
Notations, InfixNotations, and Symbolizations in your current notebook to \
visually conform to the styles made available with the latest release of \
Mathematica. Note: UpdateNotationsInNotebook only changes visual styles and \
Notebooks with old notation templates will still function correctly. This \
function intensively uses front end memory for large notebooks, so you may \
need to increase this if the command fails at first. \
UpdateNotationsInNotebook[\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\
\[ScriptO]\[ScriptO]\[ScriptK]] will update the notations in the notebook \
\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\
\[ScriptK].\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(UpdateNotebookStyles::usage\  = \n\t
        "\<UpdateNotebookStyles[] is a function that will add the styles the \
notation package defines to your current notebook. These styles are desirable \
since they change the visual appearance of notation statements. It will also \
add the input aliases the Notation package uses. Note: however your notebooks \
will still run without the addition of these styles.
		UpdateNotebookStyles[\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\
\[ScriptO]\[ScriptO]\[ScriptK]] will update the style sheet of the notebook \
\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\
\[ScriptK].\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(AddInputAlias::usage\  = \n\t
        "\<AddInputAlias[\[ScriptF]\[ScriptU]\[ScriptL]\[ScriptL]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\[ScriptS]\[ScriptH]\
\[ScriptO]\[ScriptR]\[ScriptT]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
 adds the alias \
\[EscapeKey]\[ScriptS]\[ScriptH]\[ScriptO]\[ScriptR]\[ScriptT]\
\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\[EscapeKey] for \[ScriptF]\
\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS] to the aliases in the curret notebook. AddInputAlias[\[ScriptF]\
\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS],\[ScriptS]\[ScriptH]\[ScriptO]\[ScriptR]\[ScriptT]\[ScriptCapitalF]\
\[ScriptO]\[ScriptR]\[ScriptM],\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\
\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK]] adds the alias to the notebook \
\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\
\[ScriptK].\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(ActiveInputAliases::usage\  = \n\t
        "\<ActiveInputAliases[] returns a list of all active aliases in the \
current notebook. ActiveInputAliases[\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\
\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK]] returns a list of all active \
aliases in the notebook \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\
\[ScriptO]\[ScriptO]\[ScriptK].\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell["Error Message Declarations", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["Options for  Notation, Symbolize and InfixNotation", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Define the options for ",
  StyleBox["Notation", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\(\ 
    \)\(Options[Notation]\  
        = \ \n\t\ \ {\t
          WorkingForm\  \[Rule] \ Automatic, \n\t\t\ \ \ Action\  \[Rule] \ 
            CreateNotationRules};\)\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Define the options for ",
  StyleBox["Symbolize", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Options[Symbolize]\  
        = \ \n\t\ \ {\ 
          WorkingForm\  \[Rule] \ Automatic, \n\t\t\ \ \ Action\  \[Rule] \ 
            CreateNotationRules, \n\t\t\ \ \ SymbolizeRootName\  \[Rule] \ 
            "\<\>"};\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Define the options for ",
  StyleBox["InfixNotation", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Options[InfixNotation]\  
        = \ \n\t\ \ {\ WorkingForm\  \[Rule] \ Automatic, \ 
          Action\  \[Rule] \ CreateNotationRules};\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Package Begin Private", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Begin\ @\ "\<`Private`\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["adjustedOptions", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["adjustedOptions", "MR"],
  " returns the normal options for a function but substitutes on the fly ",
  StyleBox["WorkingForm", "MR"],
  " \[Rule] ",
  StyleBox["Automatic", "MR"],
  " to WorkingForm \[Rule] ",
  StyleBox["Default Output FormatType", "MR",
    FontSlant->"Italic"],
  ". Cache the result since ",
  StyleBox["AbsoluteOptions", "MR"],
  " takes so long to execute."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(adjustedOptions\ @\ form_\  := \ 
      \(adjustedOptions\ @\ form\  = \n\t
        Options\ @\ form\  /. 
          \((HoldPattern\ @\ 
                \((Rule | RuleDelayed)\)[WorkingForm, Automatic])\)\  
            \[Rule] \n\t\t\((\ 
              WorkingForm\  \[RuleDelayed] "\<Output\>" 
                /. \n\t\t\t\((CommonDefaultFormatTypes\  /. \ 
                    AbsoluteOptions[$FrontEnd, \ 
                      "\<CommonDefaultFormatTypes\>"])\))\)\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["General Error Handling", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["General error routines", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Here are some basic functions which the error handling routines use. \n",
  StyleBox["heldLength", "MR"],
  " just gives the length of an expression without evaluating anything.\n",
  StyleBox["isNot", "MR"],
  " will return ",
  StyleBox["True", "MR"],
  " for anything that does not match the pattern.\n",
  StyleBox["headIsNot", "MR"],
  " will return ",
  StyleBox["True", "MR"],
  " for anything whose head does not match the pattern"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(SetAttributes[{heldLength, headIsNot, isNot}, HoldAll];\)\), "\n", 
    \(\(heldLength[\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_]\ \  := \ 
        Length\ @\ 
          \(Unevaluated\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\);\)\), 
  "\n", 
    \(\(isNot[
          \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]_]\ \ \ \ \  := \ 
        Function[\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], \ 
          \[Not] MatchQ[
              Unevaluated\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], 
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]], \ HoldAll];\)\), "\n", 
    \(\(headIsNot[
          \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]_]\  := \ 
        Function[
          \[ScriptT]\[ScriptE]\[ScriptS]\[ScriptT]\[ScriptCapitalH]\[ScriptE]\
\[ScriptA]\[ScriptD], 
          \[Not] MatchQ[
              Head\ @\ \(Unevaluated\ @\ 
                  \[ScriptT]\[ScriptE]\[ScriptS]\[ScriptT]\[ScriptCapitalH]\
\[ScriptE]\[ScriptA]\[ScriptD]\), 
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]], \ HoldAll];\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(General::badarg\  = "\<`1` expected at position `2` in `3`\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(characterQ\ @\ \[ScriptA]_String\  := \ 
      StringLength\ @\ \[ScriptA]\  == \ 1\), "\n", 
    \(characterQ\ @\ 
        \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]___\ \  := \ False
      \)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Frames shaded  by depth", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["structuralBoxes", "MR"],
  " matches boxes which are structural in nature and affect the parsing of \
expressions."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(structuralBoxes\  = \n\t
        \((\ FractionBox\  | \n\t\t\tGridBox\  | \n\t\t\tInterpretationBox\  
            | \n\t\t\tRadicalBox\  | \n\t\t\tRowBox\  | \n\t\t\tSqrtBox\  
            | \n\t\t\tSubscriptBox\  | \n\t\t\tSuperscriptBox\  
            | \n\t\t\tSubsuperscriptBox\  | \n\t\t\tTagBox\  
            | \n\t\t\tUnderscriptBox\  | \n\t\t\tOverscriptBox\  
            | \n\t\t\tUnderoverscriptBox)\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["colorizeStructuralBoxes", "MR"],
  " will shade the background of a box structure according to its structure. \
In this way the user can visually observe the structure of an expression."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(colorizeStructuralBoxes[
        \((\[ScriptA] : \ structuralBoxes)\)[
          \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]__], 
        \[ScriptD]\[ScriptE]\[ScriptP]\[ScriptT]\[ScriptH]_] := \n\t
      \(\(StyleBox[#, \ 
                Background \[Rule] 
                  Hue[0, 1 - 
                      E\^\(\(-0.1579\)\ \[ScriptD]\[ScriptE]\[ScriptP]\
\[ScriptT]\[ScriptH]\), 1], \ 
                FontColor \[Rule] 
                  Hue[0, 1 - 
                      E\^\(\(-0.1579\)\ \[ScriptD]\[ScriptE]\[ScriptP]\
\[ScriptT]\[ScriptH]\), 1]] 
              &\)\ @\n\t\t\(FrameBox\ @\n\t\t\tStyleBox[#, \ 
                FontColor \[Rule] RGBColor[0, 0, 0]]\) 
          &\)\ @\n\t\t\t\((\[ScriptA]\  @@ \ 
            \((\(colorizeStructuralBoxes[#, 
                    \[ScriptD]\[ScriptE]\[ScriptP]\[ScriptT]\[ScriptH] + 1] 
                  &\)\  /@ \ {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]})\))
          \)\n\), "\n", 
    \(colorizeStructuralBoxes[
        \[ScriptA]_[\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]__], 
        \[ScriptD]\[ScriptE]\[ScriptP]\[ScriptT]\[ScriptH]_]\ \  := \ 
      \[ScriptA]\  @@ \ 
        \((\(colorizeStructuralBoxes[#, 
                \[ScriptD]\[ScriptE]\[ScriptP]\[ScriptT]\[ScriptH]] &\)\  
            /@ \ {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]})\)\), "\n", 
    \(colorizeStructuralBoxes[
        \[ScriptA]_, \ \ \ \ \ \ \[ScriptD]\[ScriptE]\[ScriptP]\[ScriptT]\
\[ScriptH]_]\ \  := \ \[ScriptA]\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["parsableQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["parsableQ", "MR"],
  " will determine whether a given box structure or string is parsable under \
the given working form. If it isn't, it will report the error message given \
by the first non-parsable object and return ",
  StyleBox["False", "MR"],
  ". ",
  StyleBox["silentParsableQ", "MR"],
  " performs exactly the same function, but will not report ANY error \
messages."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(parsableQ\ @\ "\<,\>"\ \ \ \  = \ True;\)\), "\n", 
    \(\(parsableQ\ @\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR]_\  
        := \n\ \ \ \ \ \ Head\ @\ 
            ToExpression[
              \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR], \ WorkingForm /. adjustedOptions\ @\ Notation, \ HoldComplete]\  
          === \ HoldComplete;\)\), "\n", 
    \(\(parsableQ\ [\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
        := \ \n\ \ \ \ \ \ Head\ @\ 
            ToExpression[
              \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR], \ \(WorkingForm\  /. \ 
                  {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. 
                adjustedOptions\ @\ Notation, \ HoldComplete]\  === \ 
          HoldComplete;\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(notParsableQ\ @\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR]___\  
        := \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \[Not] \ 
          parsableQ\ @\ 
            \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR];\)\), "\n", 
    \(\(silentNotParsableQ\ @\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR]___\  := 
        \[Not] silentEvaluate\ @\ 
            \(parsableQ\ @\ 
              \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR]\);\)\), "\n", 
    \(\(silentParsableQ\ @\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR]___\  := \ 
        silentEvaluate\ @\ \ \(parsableQ\ @\ 
            \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptX]\[ScriptP]\
\[ScriptR]\);\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["silentCheck", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Silently checking a message to see if it fails is not trivial. This should \
be built into ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  ". The following code, which circumvents this oversight, was originally \
written by Todd Gayley and modified by Robby Villegas."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(Attributes\ @\ SilentCheck\  = \ HoldAll;\)\n\), "\n", 
    \(SilentCheck[expr_, \ failexpr_]\  := \n
      Module[{returnValue}, \n\ \ Unprotect\ @\ 
          Message; \n\ \ HoldPattern[m : Message[___]]\  
          := \n\ \ \ \ Block[{$Messages\  = \ {}\ }, \ m]\  /; \ 
            $Messages\  =!= \ {}; \n\ \ returnValue\  = \ 
          Check[expr, \ failexpr]; \n\ \ HoldPattern[m : Message[___]]\  
          =. ; \n\ \ Protect\ @\ Message; \n\ \ returnValue\n]\)}], "Input",
  InitializationCell->True]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Form Handling", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["Define notation's versions of MakeExpression and MakeBoxes", 
  "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "We Create ",
  StyleBox["NotationMakeExpression", "MR"],
  " so the Notation package minimally interferes with ",
  StyleBox["MakeExpression", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(MakeExpression[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
          \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_] := \n\t
        With[{\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR] = 
              NotationMakeExpression[
                \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
                \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]]}, \n\t\t\t\
\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR] /; 
            Head\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\  === \ 
              HoldComplete];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "We Create ",
  StyleBox["NotationMakeBoxes", "MR"],
  " so the Notation package minimally interferes with ",
  StyleBox["MakeBoxes", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(SetAttributes[NotationMakeBoxes, HoldAllComplete];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(MakeBoxes[\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_, 
          \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_] 
        := \n\t\tWith[
          {\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS] = 
              NotationMakeBoxes[\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], 
                \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]]}, \n\t\t\t\
\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS] /; 
            Head\ @\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  
              =!= \ NotationMakeBoxes];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["NotationBoxTag", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "These define how ",
  StyleBox["NotationBoxTag", "MR"],
  " is handled both in input and output. Basically it is just a ",
  StyleBox["TagBox", "MR"],
  " wrapper that is ",
  "invisible",
  ". It is used to allow ",
  StyleBox["Notation", "MR"],
  " and ",
  StyleBox["Symbolize", "MR"],
  " to grab style information, etc."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(NotationMakeExpression[
          TagBox[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
            NotationBoxTag, \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___], \ 
          \[ScriptA]\[ScriptN]\[ScriptY]_]\  := \ 
        HoldComplete\ @\ 
          \(NotationBoxTag\ @\ 
            \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\);\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(If[$NewVersion, \n\t
        NotationMakeBoxes[
            HoldPattern[NotationBoxTag]\ @\ 
              \[ScriptA]\[ScriptN]\[ScriptY]__, \ 
            \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_] 
          := \n\t\tTagBox[\[ScriptA]\[ScriptN]\[ScriptY], NotationBoxTag, 
            TagStyle \[Rule] "\<NotationTemplateStyle\>"], \n\t
        NotationMakeBoxes[
            HoldPattern[NotationBoxTag]\ @\ 
              \[ScriptA]\[ScriptN]\[ScriptY]__, \ 
            \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_] := \ 
          TagBox[\[ScriptA]\[ScriptN]\[ScriptY], NotationBoxTag]];\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(SetAttributes[NotationBoxTag, HoldAll];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["stripNotationBoxTag", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["stripNotationBoxTag", "MR"],
  " will remove any ",
  StyleBox["NotationBoxTag", "MR"],
  " found in the box expression. ",
  StyleBox["NotationBoxTag", "MR"],
  " is used to allow ",
  StyleBox["Notation", "MR"],
  " to grab boxes before the style information and other things are stripped \
out."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(stripNotationBoxTag\ @\ \[ScriptA]\[ScriptN]\[ScriptY]_\  := \ 
      \[ScriptA]\[ScriptN]\[ScriptY]\  //. \ 
        HoldPattern[NotationBoxTag]\ @\ 
            \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\  \[RuleDelayed] \ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["identityForm for output", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Boxes wrapped with this wrapper will appear as ",
  StyleBox["DisplayForm", "MR"],
  " would show them, i.e. ",
  StyleBox["identityForm[SuperscriptBox[\"x\",\"2\"]]", "MR"],
  " would appear as ",
  Cell[BoxData[
      StyleBox[\(x\^2\),
        "MR"]]],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(identityForm /: \ 
      NotationMakeBoxes[identityForm\ @\ \[ScriptA]\[ScriptN]\[ScriptY]___, \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_] := \ 
      \[ScriptA]\[ScriptN]\[ScriptY]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(SetAttributes[identityForm, HoldAll]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Character Utility Functions", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["whiteSpaceQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["whiteSpaceQ", "MR"],
  " tests to see if the given string can be considered white space."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(whiteSpaceQ\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]_String\  
      := \n\t\ \ DeleteCases[
          Characters\ @\ 
            \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG], \n\t\
\ \ \ \((\ "\<\t\>"\  | \ "\<\n\>"\  | \ "\< \>"\ \  | \ 
              "\<\[InvisibleSpace]\>"\  | \ "\<\[VeryThinSpace]\>"\  | \ 
              "\<\[ThinSpace]\>"\  | \ "\<\[MediumSpace]\>"\  | \ 
              "\<\[ThickSpace]\>"\  | \ "\<\[NegativeVeryThinSpace]\>"\  | \ 
              "\<\[NegativeThinSpace]\>"\  
              | \ \n\t\t\t\ \ \ "\<\[NegativeMediumSpace]\>"\  | \ 
              "\<\[NegativeThickSpace]\>"\  | \ "\<\n\>"\  | \ 
              "\<\[NoBreak]\>"\  | \ "\<\[NonBreakingSpace]\>"\  | \ 
              "\<\[Continuation]\>"\  | \ "\<\[SpaceIndicator]\>"\  | \ 
              "\<\[RoundSpaceIndicator]\>"\ \  | \ "\<\[AlignmentMarker]\>"\  
              | \ "\<\>")\)]\  === \ {}\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(whiteSpaceQ\ @\ \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]___\  
      := \ False\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["notWhiteSpaceQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["notWhiteSpaceQ", "MR"],
  " tests to see if the given string is not considered white space."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(notWhiteSpaceQ\ @\ \[ScriptA]\[ScriptN]\[ScriptY]_\  := \ 
      Not\ @\ \(whiteSpaceQ\ @\ \[ScriptA]\[ScriptN]\[ScriptY]\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Define ",
  StyleBox["setInternalCharacterInformation", "MR"]
}], "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "This creates the ",
  StyleBox["internalCharacterInformation", "MR"],
  " function which gives information on the complete list of characters from \
the UnicodeCharacters.tr file. These are needed since ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " does not currently have functions for testing things like ",
  StyleBox["OperatorQ", "MR"],
  ", ",
  StyleBox["PrefixQ", "MR"],
  ", etc."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(setInternalCharacterInformation\ @\n\t\ \ {\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptCapitalC]\[ScriptO]\[ScriptD]\[ScriptE]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR]_, 
            \[ScriptS]\[ScriptH]\[ScriptO]\[ScriptR]\[ScriptT]\[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]\[ScriptS]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalP]\[ScriptR]\
\[ScriptE]\[ScriptC]\[ScriptE]\[ScriptD]\[ScriptE]\[ScriptN]\[ScriptC]\
\[ScriptE]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalG]\[ScriptR]\
\[ScriptO]\[ScriptU]\[ScriptP]\[ScriptI]\[ScriptN]\[ScriptG]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalR]\[ScriptI]\
\[ScriptG]\[ScriptH]\[ScriptT]\[ScriptCapitalS]\[ScriptP]\[ScriptA]\[ScriptC]\
\[ScriptI]\[ScriptN]\[ScriptG]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalL]\[ScriptE]\
\[ScriptF]\[ScriptT]\[ScriptCapitalS]\[ScriptP]\[ScriptA]\[ScriptC]\[ScriptI]\
\[ScriptN]\[ScriptG]_, 
            \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]___}\  
        := \n\t\ \ \ \ \ \((internalCharacterInformation[
              ToExpression\ [
                "\<\"\>"\  <> \ 
                  \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR]\  <> \ 
                  "\<\"\>"]]\  
            = \ \n\t\t\ \ \ \ \ \ \ {\[ScriptT]\[ScriptH]\[ScriptE]\
\[ScriptCapitalC]\[ScriptO]\[ScriptD]\[ScriptE], 
              \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY], 
              \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalP]\[ScriptR]\
\[ScriptE]\[ScriptC]\[ScriptE]\[ScriptD]\[ScriptE]\[ScriptN]\[ScriptC]\
\[ScriptE], 
              \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalG]\[ScriptR]\
\[ScriptO]\[ScriptU]\[ScriptP]\[ScriptI]\[ScriptN]\[ScriptG], 
              \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalR]\[ScriptI]\
\[ScriptG]\[ScriptH]\[ScriptT]\[ScriptCapitalS]\[ScriptP]\[ScriptA]\[ScriptC]\
\[ScriptI]\[ScriptN]\[ScriptG], 
              \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalL]\[ScriptE]\
\[ScriptF]\[ScriptT]\[ScriptCapitalS]\[ScriptP]\[ScriptA]\[ScriptC]\[ScriptI]\
\[ScriptN]\[ScriptG], 
              StringDrop[
                StringDrop[
                  \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR], 2], 
                \(-1\)]})\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(setInternalCharacterInformation\ @\ \n\t\ \ {\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptCapitalC]\[ScriptO]\[ScriptD]\[ScriptE]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR]_, 
            \[ScriptS]\[ScriptH]\[ScriptO]\[ScriptR]\[ScriptT]\[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]\[ScriptS]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY]_}\  
        := \n\t\ \ \ \ \ \((internalCharacterInformation[
              ToExpression\ [
                "\<\"\>"\  <> \ 
                  \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR]\  <> \ 
                  "\<\"\>"]]\  
            = \ \n\t\t\ \ \ \ \ \ \ {\[ScriptT]\[ScriptH]\[ScriptE]\
\[ScriptCapitalC]\[ScriptO]\[ScriptD]\[ScriptE], 
              \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY], 
              StringDrop[
                StringDrop[
                  \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR], 2], 
                \(-1\)]})\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The first argument of ",
  StyleBox["setInternalCharacterInformation", "MR"],
  " must be a list."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          setInternalCharacterInformation[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalL]\[ScriptI]\
\[ScriptS]\[ScriptT]_?\((headIsNot[List])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[
            setInternalCharacterInformation::list, 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 
            1];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["setInternalCharacterInformation", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        setInternalCharacterInformation[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[setInternalCharacterInformation::argx, 
              HoldForm\ @\ setInternalCharacterInformation, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Load internalCharacterInformation", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[TextData[{
  "This creates the ",
  StyleBox["internalCharacterInformation", "MR"],
  " table which gives information on the complete list of characters from the \
UnicodeCharacters.tr file."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "In some installed versions of ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " the file UnicodeCharacters.tr is missing.  If so report this error."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(unicodeCharacters::missing\  = \ 
        "\<It appears that the file \"UnicodeCharacters.tr\" has not been \
included in your installation of Mathematica. The file \"UnicodeCharacters.tr\
\" is necessary for Notation to determine the precedences of characters. \
Unfortunately Notation will not run without this file. This sometimes occurs \
in installations inside WRI.\>"\ \ ;\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(If[
        FileNames["\<UnicodeCharacters.tr\>", 
            ToFileName\ @\ 
              {$TopDirectory, \ "\<SystemFiles\>", \ "\<FrontEnd\>", \ 
                "\<TextResources\>"}] == {}, 
        Message[unicodeCharacters::missing]];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
Warning: 4.0 Beta 2 has many characters which are not properly \
incoreperated into UnicodeCharacters.tr. Things like Klingon characters etc \
(Who added these ?!?)\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(silentEvaluate\ @\ 
        Union[setInternalCharacterInformation\  
            /@ \n\t\t\ ReadList[
              ToFileName[
                {$TopDirectory, \ "\<SystemFiles\>", \ "\<FrontEnd\>", \ 
                  "\<TextResources\>"}, \ 
                "\<UnicodeCharacters.tr\>"], \n\t\ \ \ \ \ \ \ \ \ \ \ \ \
Word, \n\t\t\ \ \ \ \ \ \ \ \ \ \ RecordLists\ \ \ \ \ \ \  
                \[Rule] \ \ True, \n\t\t\ \ \ \ \ \ \ \ \ \ \ WordSeparators\ \
\ \ \  \[Rule] \ \ {FromCharacterCode@\ 
                    9}, \n\t\t\ \ \ \ \ \ \ \ \ \ \ RecordSeparators\ \  
                \[Rule] \ \ {FromCharacterCode\ @\ 13, 
                  FromCharacterCode\ @\ 10}]];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "This adds the uppercase letters, lowercase letters, and digits to ",
  StyleBox["internalCharacterInformation", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(Table[
        internalCharacterInformation[FromCharacterCode\ @\ i]\  = \ 
          {ToString@i, "\<Letter\>", "\<Raw\>" <> FromCharacterCode@i}, 
        {i, 65, 90}];\)\), "\n", 
    \(\(Table[
        internalCharacterInformation[FromCharacterCode\ @\ i]\  = \ 
          {ToString@i, "\<Letter\>", "\<Raw\>" <> FromCharacterCode@i}, 
        {i, 97, 122}];\)\), "\n", 
    \(\(Table[
        internalCharacterInformation[FromCharacterCode\ @\ i]\  = \ 
          {ToString@i, "\<Digit\>", "\<Raw\>" <> FromCharacterCode@i}, 
        {i, 48, 57}];\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Define characterInformation", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["characterInformation", "MR"],
  " returns the information available on a character. "
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(characterInformation\ @\ 
          \[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR]_String?characterQ\  
        := \ \n\t\ \ characterInformationAux\ @\ 
          \(internalCharacterInformation\ @\ 
            \[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR]\);\)\n\), "\n", 
    \(\(characterInformation[\[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR]_String, 
          \[ScriptF]\[ScriptI]\[ScriptE]\[ScriptL]\[ScriptD]_Symbol] := \ 
        \[ScriptF]\[ScriptI]\[ScriptE]\[ScriptL]\[ScriptD]\  /. 
          characterInformation[\[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR]];\)\n
    \), "\n", 
    \(\(characterInformationAux\ @\ 
          {\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptO]\[ScriptD]\
\[ScriptE]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalP]\[ScriptR]\
\[ScriptE]\[ScriptC]\[ScriptE]\[ScriptD]\[ScriptE]\[ScriptN]\[ScriptC]\
\[ScriptE]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalG]\[ScriptR]\
\[ScriptO]\[ScriptU]\[ScriptP]\[ScriptI]\[ScriptN]\[ScriptG]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalR]\[ScriptI]\
\[ScriptG]\[ScriptH]\[ScriptT]\[ScriptCapitalS]\[ScriptP]\[ScriptA]\[ScriptC]\
\[ScriptI]\[ScriptN]\[ScriptG]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalL]\[ScriptE]\
\[ScriptF]\[ScriptT]\[ScriptCapitalS]\[ScriptP]\[ScriptA]\[ScriptC]\[ScriptI]\
\[ScriptN]\[ScriptG]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptCapitalF]\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalN]\[ScriptA]\
\[ScriptM]\[ScriptE]_}\  := \n\t
        {CharacterCode\ \ \ \ \ \ \ \ \ \  \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptO]\
\[ScriptD]\[ScriptE], \n\t\tCharacterFixity\ \ \ \ \ \ \ \  \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY], \n\t\tCharacterPrecedence\ \ \ \  
            \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalP]\[ScriptR]\
\[ScriptE]\[ScriptC]\[ScriptE]\[ScriptD]\[ScriptE]\[ScriptN]\[ScriptC]\
\[ScriptE], \n\t\tCharacterGrouping\ \ \ \ \ \  \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalG]\[ScriptR]\
\[ScriptO]\[ScriptU]\[ScriptP]\[ScriptI]\[ScriptN]\[ScriptG], \n\t\t\
CharacterRightSpacing\  \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalR]\[ScriptI]\
\[ScriptG]\[ScriptH]\[ScriptT]\[ScriptCapitalS]\[ScriptP]\[ScriptA]\[ScriptC]\
\[ScriptI]\[ScriptN]\[ScriptG], \n\t\tCharacterLeftSpacing\ \  \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalL]\[ScriptE]\
\[ScriptF]\[ScriptT]\[ScriptCapitalS]\[ScriptP]\[ScriptA]\[ScriptC]\[ScriptI]\
\[ScriptN]\[ScriptG], \n\t\tCharacterFullName\ \ \ \ \ \  \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptCapitalF]\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalN]\[ScriptA]\
\[ScriptM]\[ScriptE]};\)\n\), "\n", 
    \(\(characterInformationAux\ @\ 
          {\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptO]\[ScriptD]\
\[ScriptE]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY]_, 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptCapitalF]\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalN]\[ScriptA]\
\[ScriptM]\[ScriptE]_}\  := \n\t
        {CharacterCode\ \ \ \ \ \ \ \ \ \  \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptO]\
\[ScriptD]\[ScriptE], \n\t\tCharacterFixity\ \ \ \ \ \ \ \  \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY], \n\t\tCharacterFullName\ \ \ \ \ \  
            \[Rule] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalC]\[ScriptH]\
\[ScriptA]\[ScriptR]\[ScriptA]\[ScriptC]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptCapitalF]\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalN]\[ScriptA]\
\[ScriptM]\[ScriptE]};\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The first argument of ",
  StyleBox["characterInformation", "MR"],
  " must be a string."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          characterInformation[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptT]\
\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]_?\((headIsNot[String])\), ___]\ \  
        := \ $Failed 
          /; \n\t\ \ \ \ \ \ Message[characterInformation::string, \ 1, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The second argument of ",
  StyleBox["characterInformation", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          characterInformation[_, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]_?\((headIsNot[Symbol])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[characterInformation::sym, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB], 2];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["characterInformation", "MR"],
  " expects one or two arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          characterInformation[___]\ \  := \ 
        With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
              heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
          $Failed\  
            /; \n\t\ \ \ \ \ \((\[ScriptN]\[ScriptU]\[ScriptM]\  < \ 1\  
                  \[Or] \ \[ScriptN]\[ScriptU]\[ScriptM]\  > 2)\)\  
              \[And] \ \ Message[characterInformation::argt, 
                HoldForm\ @\ characterInformation, 
                heldLength\ @\ 
                  \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 1, 2]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Box and Character Querying Functions", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
definition of isolatingBoxes and nonIsolatingBoxes and \
mutableIsolatingBoxes\
\>", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["isolatingBoxes", "MR"],
  " are the box structures that isolate the grouping nature and precedence \
nature of the internals of the box."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(isolatingBoxes\  
        = \ \n\t\ \ \((ButtonBox\  | \ FormBox\  | \ FractionBox\  | \ 
            FrameBox\  | \ GridBox\ \  | \ RowBox\  | \n\t\t\ \ RadicalBox\  
            | \ SqrtBox\ \ )\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["nonIsolatingBoxes", "MR"],
  " are the box structures that do not isolate the grouping nature and \
precedence nature of the internals of the box."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(nonIsolatingBoxes\  
        = \n\ \ \ \((\ \ AdjustmentBox\  | \ ErrorBox\  | \ StyleBox\  | \ 
            SubscriptBox\  | \ SuperscriptBox\  
            | \n\t\t\t\ SubsuperscriptBox\  | \ UnderscriptBox\  | \ 
            OverscriptBox\  | \ UnderoverscriptBox)\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["mutableIsolatingBoxes", "MR"],
  " are the box structures that possibly change the grouping nature and \
precedence nature of the internals of the box."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    RowBox[{
      RowBox[{
        StyleBox["mutableIsolatingBoxes",
          "MR"], " ", "=", "\n", "   ", \((TagBox\  | InterpretationBox)\)}], 
      ";"}]], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    RowBox[{
      RowBox[{"allTheBoxes", " ", "=", " ", 
        RowBox[{
        "nonIsolatingBoxes", " ", "|", " ", "isolatingBoxes", " ", "|", " ", 
          StyleBox["mutableIsolatingBoxes",
            "MR"]}]}], ";"}]], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["boxStructureQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["boxStructureQ", "MR"],
  " tests an expression to see if its head is a known box."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    RowBox[{
    \(boxStructureQ\ @\ 
          \(nonIsolatingBoxes\ @\ 
            \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]___\) := \ True\), ";", 
      "\n", \(boxStructureQ\ @\ 
          \(isolatingBoxes\ @\ \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]___\) 
        := \ True\), ";", "\n", 
      RowBox[{
        RowBox[{"boxStructureQ", " ", "@", " ", 
          RowBox[{
            StyleBox["mutableIsolatingBoxes",
              "MR\.7f"], " ", "@", " ", 
            "\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]___"}]}], ":=", " ", 
        "True"}], ";", "\n", \(boxStructureQ\ @\ _ := \ False\), ";"}]], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["boxStructureQ", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          boxStructureQ[___]\ \  := \ 
        With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
              heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
          $Failed\  
            /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 
                1\  \[And] \ 
              Message[boxStructureQ::argx, HoldForm\ @\ boxStructureQ, 
                \[ScriptN]\[ScriptU]\[ScriptM], 1]];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["nonIsolatingBoxStructureQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["nonIsolatingBoxStructureQ", "MR"],
  " will give ",
  StyleBox["True", "MR"],
  " if the box structure does not isolate the grouping nature and precedence \
nature of the internals of the box."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(nonIsolatingBoxStructureQ\ @\ 
        \(nonIsolatingBoxes\ @\ \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]___\) 
      := \ True\), "\n", 
    \(nonIsolatingBoxStructureQ\ @\ 
        \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]_\  := \ False\)}], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["nonIsolatingBoxStructureQ", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        nonIsolatingBoxStructureQ[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[nonIsolatingBoxStructureQ::argx, 
              HoldForm\ @\ nonIsolatingBoxStructureQ, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["mutableIsolatingBoxStructureQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["mutableIsolatingBoxStructureQ", "MR"],
  " will give ",
  StyleBox["True", "MR"],
  " if the box structure does not isolate the grouping nature and precedence \
nature of the internals of the box."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(mutableIsolatingBoxStructureQ\ @\ 
        \(mutableIsolatingBoxes\ @\ 
          \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]___\) := \ True\), "\n", 
    \(mutableIsolatingBoxStructureQ\ @\ 
        \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]_\  := \ False\)}], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["mutableIsolatingBoxStructureQ", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        mutableIsolatingBoxStructureQ[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[mutableIsolatingBoxStructureQ::argx, 
              HoldForm\ @\ mutableIsolatingBoxStructureQ, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["effectiveBoxes", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["effectiveBoxes", "MR"],
  " will give the string internal to the given box structure according to how \
the boxes \"act\". \nE.g. ",
  StyleBox["SubscriptBox[\"+\",\"R\"]", "Input"],
  " will \"act\" like ",
  StyleBox["\"+\"", "Input"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(effectiveBoxes\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]_String\ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  := \ 
      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]\), "\n", 
    \(effectiveBoxes\ @\ 
        nonIsolatingBoxes[
          \[ScriptA]\[ScriptC]\[ScriptT]\[ScriptS]\[ScriptCapitalL]\[ScriptI]\
\[ScriptK]\[ScriptE]_, ___]\  := \ 
      effectiveBoxes\ @\ 
        \[ScriptA]\[ScriptC]\[ScriptT]\[ScriptS]\[ScriptCapitalL]\[ScriptI]\
\[ScriptK]\[ScriptE]\), "\n", 
    \(effectiveBoxes\ @\ 
        mutableIsolatingBoxes[___, 
          SyntaxForm\  -> \ 
            \[ScriptA]\[ScriptC]\[ScriptT]\[ScriptS]\[ScriptCapitalL]\
\[ScriptI]\[ScriptK]\[ScriptE]_, ___]\  := \ 
      effectiveBoxes\ @\ 
        \[ScriptA]\[ScriptC]\[ScriptT]\[ScriptS]\[ScriptCapitalL]\[ScriptI]\
\[ScriptK]\[ScriptE]\), "\n", 
    \(effectiveBoxes\ @\ 
        mutableIsolatingBoxes[
          \[ScriptA]\[ScriptC]\[ScriptT]\[ScriptS]\[ScriptCapitalL]\[ScriptI]\
\[ScriptK]\[ScriptE]_, ___]\  := \ 
      effectiveBoxes\ @\ 
        \[ScriptA]\[ScriptC]\[ScriptT]\[ScriptS]\[ScriptCapitalL]\[ScriptI]\
\[ScriptK]\[ScriptE]\), "\n", 
    \(effectiveBoxes\ @\ isolatingBoxes\ \ \ [___]\ \ \ \ \ \ \ \  := \ 
      "\<GenericSymbol\>"\), "\n", 
    \(effectiveBoxes\ @\ 
        \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]_\ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  := \ "\<GenericSymbol\>"\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The first argument of ",
  StyleBox["effectiveBoxes", "MR"],
  " must be a box structure."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          effectiveBoxes[
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalA]\[ScriptR]\
\[ScriptG]_?\((isNot[_?boxStructureQ])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[effectiveBoxes::badarg, \ 1, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(effectiveBoxes::badarg\  = 
        "\<Box structure or String expected at position `1` in `2`\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["effectiveBoxes", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        effectiveBoxes[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[effectiveBoxes::argx, 
              HoldForm\ @\ effectiveBoxes, \[ScriptN]\[ScriptU]\[ScriptM], 1]]
        \)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["prefixOperatorQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[TextData[{
  "This boolean function determines if the given expression is normally \
treated as a ",
  StyleBox["PrefixOperator", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
If the expression is a box structure, then look inside the \
structure to see how it acts.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(prefixOperatorQ\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]_?
          nonIsolatingBoxStructureQ\  := \ 
      prefixOperatorQ\ @\ 
        \(effectiveBoxes\ @\ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]\)\), 
  "\n", 
    \(prefixOperatorQ\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]_?
          mutableIsolatingBoxStructureQ\  := \ 
      prefixOperatorQ\ @\ 
        \(effectiveBoxes\ @\ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]\)\)}], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["prefixOperatorQ", "MR"],
  ": exceptions"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(prefixOperatorQ\ @\ "\<\[PartialD]\>"\ \ \ \  = \ True;\)\), "\n", 
    \(\(prefixOperatorQ\ @\ "\<\[Integral]\>"\ \ \  = \ True;\)\), "\n", 
    \(\(prefixOperatorQ\ @\ "\<\[ContourIntegral]\>"\ \ \  = \ True;\)\), 
  "\n", 
    \(\(prefixOperatorQ\ @\ "\<\[CounterClockwiseContourIntegral]\>"\ \ \  
        = \ True;\)\), "\n", 
    \(\(prefixOperatorQ\ @\ "\<\[ClockwiseContourIntegral]\>"\ \ \  = \ True;
      \)\), "\n", 
    \(\(prefixOperatorQ\ @\ "\<\[DoubleContourIntegral]\>"\ \ \  = \ True;\)\n
    \), "\n", 
    \(\(prefixOperatorQ\ @\ "\<\[Sum]\>"\ \ \  = \ True;\)\n\), "\n", 
    \(\(prefixOperatorQ\ @\ "\<\[Product]\>"\ \ \  = \ True;\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["prefixOperatorQ", "MR"],
  ": the general case"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(prefixOperatorQ\ @\ "\<!\>"\  = \ True;\)\), "\n", 
    \(\(prefixOperatorQ\ @\ 
          \[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR]_?characterQ\  := \ 
        \(("\<Prefix\>"\  == \ 
            characterInformation\ [\[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR], 
              CharacterFixity]\ )\);\)\), "\n", 
    \(prefixOperatorQ\ @\ 
        \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]_\ \ \ \ \ \  := \ 
      False\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["prefixOperatorQ", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        prefixOperatorQ[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[prefixOperatorQ::argx, 
              HoldForm\ @\ prefixOperatorQ, \[ScriptN]\[ScriptU]\[ScriptM], 
              1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["infixOperatorQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[TextData[{
  "This boolean function determines if the given expression could normally be \
treated as an ",
  StyleBox["InfixOperator", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
If the expression is a box structure, then look inside the \
structure to see how it acts.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(infixOperatorQ\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]_?
          nonIsolatingBoxStructureQ\  := \ 
      infixOperatorQ\ @\ 
        \(effectiveBoxes\ @\ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]\)\), 
  "\n", 
    \(infixOperatorQ\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]_?
          mutableIsolatingBoxStructureQ\  := \ 
      infixOperatorQ\ @\ 
        \(effectiveBoxes\ @\ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]\)\)}], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["infixOperatorQ", "MR"],
  ": exceptions"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(infixOperatorQ\ @\ "\<+\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<*\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<^\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<.\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<-\>"\ \ \  = \ True;\)\n\), "\n", 
    \(\(infixOperatorQ\ @\ "\<->\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<:>\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<=\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<:=\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<^=\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<^:=\>"\  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<+=\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<-=\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<*=\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\</=\>"\ \  = \ True;\)\n\), "\n", 
    \(\(infixOperatorQ\ @\ "\</.\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<//.\>"\  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<//\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\</;\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\</\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<:\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<;\>"\ \ \  = \ True;\)\n\), "\n", 
    \(\(infixOperatorQ\ @\ "\<<=\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<<\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<>\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<>=\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<==\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<===\>"\  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<!\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<!=\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<=!=\>"\  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<&&\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<||\>"\ \  = \ True;\)\n\), "\n", 
    \(\(infixOperatorQ\ @\ "\<?\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<@@\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<@\>"\ \ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\</@\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<||\>"\ \  = \ True;\)\), "\n", 
    \(\(infixOperatorQ\ @\ "\<|\>"\ \ \  = \ True;\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["infixOperatorQ", "MR"],
  ":  the general case"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(infixOperatorQ\ @\ 
          \[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR]_?characterQ\  := \ 
        \(("\<Infix\>"\  == \ 
            characterInformation\ [\ 
              \[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR], \ CharacterFixity])\);
      \)\), "\n", 
    \(infixOperatorQ\ @\ 
        \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]_\ \ \ \ \ \  := \ 
      False\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["infixOperatorQ", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        infixOperatorQ[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[infixOperatorQ::argx, 
              HoldForm\ @\ infixOperatorQ, \[ScriptN]\[ScriptU]\[ScriptM], 1]]
        \)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["postfixOperatorQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[TextData[{
  "This boolean function determines if the given string could normally be \
treated as a ",
  StyleBox["PostfixOperator", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
If the expression is a box structure, then look inside the \
structure to see how it acts.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(postfixOperatorQ\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]_?
          nonIsolatingBoxStructureQ\  := \ 
      postfixOperatorQ\ @\ 
        \(effectiveBoxes\ @\ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]\)\), 
  "\n", 
    \(postfixOperatorQ\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]_?
          mutableIsolatingBoxStructureQ\  := \ 
      postfixOperatorQ\ @\ 
        \(effectiveBoxes\ @\ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]\)\)}], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["postfixOperatorQ", "MR"],
  ": exceptions"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(postfixOperatorQ\ @\ "\<;\>"\ \ \  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ "\<&\>"\ \ \  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ "\<!!\>"\ \  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ "\<!\>"\ \ \  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ "\<'\>"\ \ \  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ "\<--\>"\ \  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ "\<++\>"\ \  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ "\<=.\>"\ \  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ "\<..\>"\ \  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ "\<...\>"\  = \ True;\)\), "\n", 
    \(\(postfixOperatorQ\ @\ 
          \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]_\  = \ False;
      \)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["postfixOperatorQ", "MR"],
  ":  the general case"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(postfixOperatorQ\ @\ 
          \[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR]_?characterQ\  := \ 
        \(("\<Postfix\>"\  == \ 
            characterInformation\ [
              \[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR], \ CharacterFixity])\);
      \)\), "\n", 
    \(postfixOperatorQ\ @\ 
        \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]_\ \ \ \ \  := \ 
      False\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["postfixOperatorQ", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        postfixOperatorQ[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[postfixOperatorQ::argx, 
              HoldForm\ @\ postfixOperatorQ, \[ScriptN]\[ScriptU]\[ScriptM], 
              1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["operatorQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "This boolean function determines if the given string is normally treated \
as an ",
  StyleBox["Operator", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\(operatorQ\ @\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\  
      := \ prefixOperatorQ\ @\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  \[Or] \ 
        infixOperatorQ\ @\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  \[Or] \ 
        postfixOperatorQ\ @\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\)\(\ \)\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["operatorQ", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        operatorQ[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[operatorQ::argx, HoldForm\ @\ operatorQ, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["delimiterQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[TextData[{
  "This boolean function determines if the given string could normally be \
treated as a ",
  StyleBox["Delimiter", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
If the expression is a box structure, then look inside the \
structure to see how it acts.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(delimiterQ\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]_?
          nonIsolatingBoxStructureQ\  := \ 
      delimiterQ\ @\ 
        \(effectiveBoxes\ @\ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]\)\), 
  "\n", 
    \(delimiterQ\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]_?
          mutableIsolatingBoxStructureQ\  := \ 
      delimiterQ\ @\ 
        \(effectiveBoxes\ @\ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]\)\)}], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["delimiterQ", "MR"],
  ": exceptions"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(delimiterQ\ @\ "\<\[InvisibleComma]\>"\ \  = \ True;\)\), "\n", 
    \(\(delimiterQ\ @\ "\<,\>"\  = \ True;\)\), "\n", 
    \(\(delimiterQ\ @\ "\<[\>"\  = \ True;\)\), "\n", 
    \(\(delimiterQ\ @\ "\<]\>"\  = \ True;\)\), "\n", 
    \(\(delimiterQ\ @\ "\<(\>"\  = \ True;\)\), "\n", 
    \(\(delimiterQ\ @\ "\<)\>"\  = \ True;\)\), "\n", 
    \(\(delimiterQ\ @\ "\<{\>"\  = \ True;\)\), "\n", 
    \(\(delimiterQ\ @\ "\<}\>"\  = \ True;\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["delimiterQ", "MR"],
  ":  the general case"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(delimiterQ\ @\ \[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR]_?characterQ\  
        := \n\t\ \ With[
          {\ \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY]\  
              = \ \ characterInformation\ [\ 
                \[ScriptC]\[ScriptH]\[ScriptA]\[ScriptR], \ 
                CharacterFixity]}, \n\t\t\ \ \ \ \[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptCapitalF]\[ScriptI]\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY]\
\  == \ "\<Open\>"\  \[Or] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY]\  == \ "\<InfixOpen\>"\  \[Or] \ 
            \[ScriptT]\[ScriptH]\[ScriptE]\[ScriptCapitalF]\[ScriptI]\
\[ScriptX]\[ScriptI]\[ScriptT]\[ScriptY]\  == \ "\<Close\>"];\)\), "\n", 
    \(delimiterQ\ @\ 
        \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]_\ \ \ \ \  := \ 
      False\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["delimiterQ", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        delimiterQ[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[delimiterQ::argx, HoldForm\ @\ delimiterQ, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["TokenToSymbol Functions", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "These functions will take an operator string token that is not an \
exception and give the operator symbol that this token parses to.\nThe ",
  StyleBox["Check", "MR"],
  " is in case the symbol is not ",
  "recognized",
  ", in which case the precedence is reported as '",
  StyleBox["Times", "MR"],
  "'."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(infixOperatorTokenToSymbol\ @\ 
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
_String\ \ \ \ \ \  
      := \ \n\ \ \ \ silentEvaluate\ @\ \n\ \ \ \ \ \ \ \ \ Check[\ 
          Module[{\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR] = 
                ToHeldExpression[
                  "\<a\>"\  <> \ 
                    \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptO]\[ScriptP]\  <> \ 
                    "\<b\>"]}, \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ If[Depth\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\  == 3, \ 
              \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\[LeftDoubleBracket]1, 
                0\[RightDoubleBracket], Times]], Times]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(prefixOperatorTokenToSymbol\ @\ "\<\[PartialD]\>"\ \ \ \  = \ D;\)\), 
  "\n", 
    \(\(prefixOperatorTokenToSymbol\ @\ "\<\[Integral]\>"\ \ \  = \ Integrate;
      \)\), "\n", 
    \(\(prefixOperatorTokenToSymbol\ @\ "\<\[ContourIntegral]\>"\ \ \  = \ 
        Integrate;\)\), "\n", 
    \(\(prefixOperatorTokenToSymbol\ @\ 
          "\<\[CounterClockwiseContourIntegral]\>"\ \ \  = \ Integrate;\)\), 
  "\n", 
    \(\(prefixOperatorTokenToSymbol\ @\ 
          "\<\[ClockwiseContourIntegral]\>"\ \ \  = \ Integrate;\)\), "\n", 
    \(\(prefixOperatorTokenToSymbol\ @\ "\<\[DoubleContourIntegral]\>"\ \ \  
        = \ Integrate;\)\), "\n", 
    \(prefixOperatorTokenToSymbol\ @\ 
        \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalO]\[ScriptP]_String\ \ \ \ \ \  
      := \ \n\ \ \ \ silentEvaluate\ @\ \n\ \ \ \ \ \ \ \ \ Check[\ 
          Module[{\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR] = 
                ToHeldExpression[
                  \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalO]\[ScriptP]\  <> \ 
                    "\<b\>"]}, \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ If[Depth\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\  == 3, \ 
              \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\[LeftDoubleBracket]1, 
                0\[RightDoubleBracket], Times]], Times]\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(postfixOperatorTokenToSymbol\ @\ "\<'\>"\  = \ Derivative;\)\), 
  "\n", 
    \(postfixOperatorTokenToSymbol\ @\ 
        \[ScriptP]\[ScriptO]\[ScriptS]\[ScriptT]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalO]\[ScriptP]_String\ \ \ \ \ \  
      := \ \n\ \ \ \ silentEvaluate\ @\ \n\ \ \ \ \ \ \ \ \ Check[\ 
          Module[{\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR] = 
                ToHeldExpression[
                  "\<b\>"\  <> \ 
                    \[ScriptP]\[ScriptO]\[ScriptS]\[ScriptT]\[ScriptF]\
\[ScriptI]\[ScriptX]\[ScriptCapitalO]\[ScriptP]]}, \n\t\t\t\t\ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ If[
              Depth\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\  == 3, \ 
              \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\[LeftDoubleBracket]1, 
                0\[RightDoubleBracket], Times]], Times]\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Error checking for Token to Symbol Functions", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "The first argument of ",
  StyleBox["infixOperatorTokenToSymbol", "MR"],
  " must be a String."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          infixOperatorTokenToSymbol[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptT]\
\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]_?\((headIsNot[String])\), ___]\ \  
        := \ $Failed 
          /; \n\t\ \ \ \ \ \ Message[infixOperatorTokenToSymbol::string, \ 
            1, \ HoldForm\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The first argument of ",
  StyleBox["prefixOperatorTokenToSymbol", "MR"],
  " must be a String."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          prefixOperatorTokenToSymbol[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptT]\
\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]_?\((headIsNot[String])\), ___]\ \  
        := \ $Failed 
          /; \n\t\ \ \ \ \ \ Message[prefixOperatorTokenToSymbol::string, \ 
            1, \ HoldForm\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The first argument of ",
  StyleBox["postfixOperatorTokenToSymbol", "MR"],
  " must be a String."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          postfixOperatorTokenToSymbol[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptT]\
\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]_?\((headIsNot[String])\), ___]\ \  
        := \ $Failed 
          /; \n\t\ \ \ \ \ \ Message[postfixOperatorTokenToSymbol::string, \ 
            1, \ HoldForm\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["infixOperatorTokenToSymbol", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        infixOperatorTokenToSymbol[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[infixOperatorTokenToSymbol::argx, 
              HoldForm\ @\ infixOperatorTokenToSymbol, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["prefixOperatorTokenToSymbol", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        prefixOperatorTokenToSymbol[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[prefixOperatorTokenToSymbol::argx, 
              HoldForm\ @\ prefixOperatorTokenToSymbol, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["postfixOperatorTokenToSymbol", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        postfixOperatorTokenToSymbol[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[postfixOperatorTokenToSymbol::argx, 
              HoldForm\ @\ postfixOperatorTokenToSymbol, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["effectiveOperator", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[TextData[{
  StyleBox["effectiveOperator", "MR"],
  " gives the effective operator by which output boxes need to be grouped."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["effectiveOperator ", "MR"],
  ":  exceptions"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(effectiveOperator\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]_?
          boxStructureQ\  := \ 
      effectiveOperator\ @\ 
        \(effectiveBoxes\ @\ 
          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptU]\[ScriptC]\[ScriptT]\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(effectiveOperator\ @\ "\<\[PartialD]\>"\ \ \  = \ \ D;\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(effectiveOperator\ @\ "\<\[Integral]\>"\ \  = \ Integrate;\)\), 
  "\n", 
    \(\(effectiveOperator\ @\ "\<\[ContourIntegral]\>"\ \  = \ Integrate;
      \)\), "\n", 
    \(\(effectiveOperator\ @\ "\<\[ClockwiseContourIntegral]\>"\ \  = \ 
        Integrate;\)\), "\n", 
    \(\(effectiveOperator\ @\ "\<\[CounterClockwiseContourIntegral]\>"\ \  
        = \ Integrate;\)\), "\n", 
    \(\(effectiveOperator\ @\ "\<\[ClockwiseContourIntegral]\>"\ \  = \ 
        Integrate;\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["effectiveOperator ", "MR"],
  ": the general case"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(effectiveOperator\ @\ \[ScriptO]\[ScriptP]_?prefixOperatorQ\ \  := \ 
      prefixOperatorTokenToSymbol\ @\ \[ScriptO]\[ScriptP]\), "\n", 
    \(effectiveOperator\ @\ \[ScriptO]\[ScriptP]_?infixOperatorQ\ \ \  := \ 
      infixOperatorTokenToSymbol\ @\ \[ScriptO]\[ScriptP]\), "\n", 
    \(effectiveOperator\ @\ \[ScriptO]\[ScriptP]_?postfixOperatorQ\  := \ 
      postfixOperatorTokenToSymbol\ @\ \[ScriptO]\[ScriptP]\), "\n", 
    \(effectiveOperator\ @\ other_\  := \ Times\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["effectiveOperator", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        effectiveOperator[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[effectiveOperator::argx, 
              HoldForm\ @\ effectiveOperator, \[ScriptN]\[ScriptU]\[ScriptM], 
              1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Utility Functions", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
myHold,   releaseMyHold,  flattenAllMyHold &  \
toMyHeldExpression\
\>", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["myHold", "MR"],
  " and ",
  StyleBox["releaseMyHold", "MR"],
  " are exactly the same as the standard ",
  StyleBox["Hold", "MR"],
  " and ",
  StyleBox["releaseHold", "MR"],
  ", except they appear in a different context so they will not stomp on \
other uses of ",
  StyleBox["Hold", "MR"],
  " or held expressions."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(SetAttributes\ [\ {myHold, releaseMyHold}, HoldAllComplete]\)], "Input",\

  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(releaseMyHold\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]___\ \  := 
      Evaluate\  @@ \ 
        \((HoldComplete\ [\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\ ]\  
            //. \ myHold\ @\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM]___\  
              \[Rule] \ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM])\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(flattenAllMyHold\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_\  := \ 
      myHold\  @@ \ \ \((HoldComplete\ @\ 
              \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]\  //. \ 
            myHold\ @\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM]___\  
              \[Rule] \ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM])\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(toMyHeldExpression\ @\ \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]___\  
      := \ myHold\  @@ \ 
        MakeExpression\ @\ \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["removePatternsAndBlanks", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
This removes all pattern wrappers, optional wrappers, pattern tests \
and conditions, leaving just a pattern variable if possible.\
\>", 
  "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(removePatternsAndBlanks\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_ 
      := \n\ \ \ \ Evaluate\  @@ \ 
        \((myHold\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR] //. \n\t
            {\((\[ScriptH]\[ScriptO]\[ScriptL]\[ScriptD]\[ScriptCapitalH]\
\[ScriptE]\[ScriptA]\[ScriptD] : Optional)\)\ \ \ \ \ \ [\[ScriptA]_, ___] 
                \[Rule] 
                \[ScriptA], \n\t\ \ \((\[ScriptH]\[ScriptO]\[ScriptL]\
\[ScriptD]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] : 
                      Pattern)\)\ \ \ \ \ \ \ \ \ [\[ScriptA]_, ___] \[Rule] 
                \[ScriptA], \n\t\ \ \((\[ScriptH]\[ScriptO]\[ScriptL]\
\[ScriptD]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] : PatternTest)\)[
                  \[ScriptA]_, ___] \[Rule] 
                \[ScriptA], \n\t\ \ \((\[ScriptH]\[ScriptO]\[ScriptL]\
\[ScriptD]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] : 
                      Condition)\)\ \ \ \ [\[ScriptA]_, ___] \[Rule] 
                \[ScriptA]})\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["removePatternsAndBlanks", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        removePatternsAndBlanks[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[removePatternsAndBlanks::argx, 
              HoldForm\ @\ removePatternsAndBlanks, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["convertPatterns", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["convertPatterns", "MR"],
  " will remove all ",
  StyleBox["PatternTests", "MR"],
  ", ",
  StyleBox["Conditions", "MR"],
  " and ",
  StyleBox["Optionals", "MR"],
  ", as well as ",
  StyleBox["Heads", "MR"],
  ", leaving just named Patterns. It is useful for putting an expression into \
a form upon which further manipulations of the pattern variables may be \
performed."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(convertPatterns\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_ 
      := \n\ \ \ \ myHold\ @\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR] 
        //. \n\t{\((\[ScriptH]\[ScriptO]\[ScriptL]\[ScriptD]\[ScriptCapitalH]\
\[ScriptE]\[ScriptA]\[ScriptD] : Optional)\)\ \ \ [\[ScriptA]_, 
              ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
            \[ScriptA], \n\ \t\ \((\[ScriptH]\[ScriptO]\[ScriptL]\[ScriptD]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] : Pattern)\)\ \ \ \ [
              \[ScriptA]_, _Blank]\ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
            singleBlank\ @\ 
              \[ScriptA], \n\t\t\((\[ScriptH]\[ScriptO]\[ScriptL]\[ScriptD]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] : Pattern)\)\ \ \ \ [
              \[ScriptA]_, _BlankSequence]\ \ \ \ \  \[Rule] \ 
            doubleBlank\ @\ 
              \[ScriptA], \n\t\t\((\[ScriptH]\[ScriptO]\[ScriptL]\[ScriptD]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] : Pattern)\)\ \ \ \ [
              \[ScriptA]_, _BlankNullSequence]\  \[Rule] \ 
            tripleBlank\ @\ 
              \[ScriptA], \n\t\ \ \((\[ScriptH]\[ScriptO]\[ScriptL]\[ScriptD]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] : Pattern)\)\ \ \ \ [
              \[ScriptA]_, _]\  \[Rule] \ 
            complexPattern\ @\ 
              \[ScriptA], \n\ \t\ \((\[ScriptH]\[ScriptO]\[ScriptL]\[ScriptD]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] : PatternTest)\)[\[ScriptA]_, 
              ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
            \[ScriptA], \n\t\ \ \((\[ScriptH]\[ScriptO]\[ScriptL]\[ScriptD]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD] : Condition)\)\ \ [
              \[ScriptA]_, ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
            \[ScriptA], \n\t\t_Blank\ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
            singleBlank[], \n\t\t_BlankSequence\ \ \ \ \  \[Rule] \ 
            doubleBlank[], \n\t\t_BlankNullSequence\  \[Rule] \ tripleBlank[]}
          \)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(SetAttributes[{singleBlank, doubleBlank, tripleBlank, complexPattern}, 
      HoldAll]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["convertPatterns", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        convertPatterns[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[convertPatterns::argx, 
              HoldForm\ @\ convertPatterns, \[ScriptN]\[ScriptU]\[ScriptM], 
              1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["cleanBoxes & tidyBoxes", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "These two functions just clean up box structures by flattening single ",
  StyleBox["RowBoxes", "MR"],
  ", removing nested ",
  StyleBox["RowBoxes", "MR"],
  " and removing white space."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(cleanBoxes\ @\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\  
      := \ \n\t\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS] //. 
        {\n\t\t\ \ RowBox\ @\ 
              {\[ScriptS]\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptL]\[ScriptE]_}\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
            \[RuleDelayed] \ \ \[ScriptS]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptL]\[ScriptE], \n\t\t\t\ RowBox\ @\ 
              {RowBox\ @\ 
                  {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]___}}\ \ \ \ \ \ \ \
\ \  \[RuleDelayed] \ \ RowBox\ @\ 
              {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]}, \n\t\t\t\ RowBox\ @\
\ {\[ScriptL]___, 
                \[ScriptS]\[ScriptP]\[ScriptA]\[ScriptC]\[ScriptE]_?
                  whiteSpaceQ, \[ScriptR]___} 
            \[RuleDelayed] \ \ RowBox\ @\ {\[ScriptL], \[ScriptR]}}\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(tidyBoxes\ @\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\  
      := \n\t\t\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS] //. 
        {\n\t\t\t\ RowBox\ @\ 
              {RowBox\ @\ 
                  {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]___}}\ \ \ \ \ \ \ \
\ \  \[RuleDelayed] \ \ RowBox\ @\ 
              {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]}, \n\t\t\t\ RowBox\ @\
\ {\[ScriptL]___, 
                RowBox\ @\ 
                  {\[ScriptS]\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptL]\
\[ScriptE]_}, \[ScriptR]___}\  
            \[RuleDelayed] \ \ RowBox\ @\ 
              {\[ScriptL], 
                \[ScriptS]\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptL]\[ScriptE], 
                \[ScriptR]}\ }\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["cleanBoxes", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        cleanBoxes[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[cleanBoxes::argx, HoldForm\ @\ cleanBoxes, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["tidyBoxes", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        tidyBoxes[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[tidyBoxes::argx, HoldForm\ @\ tidyBoxes, 
              \[ScriptN]\[ScriptU]\[ScriptM], 1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["stripStylingBoxes", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["StripStylingBoxes", "MR"],
  " will remove any ",
  StyleBox["styleBoxes", "MR"],
  ", ",
  StyleBox["AdjustmentBoxes", "MR"],
  " or ",
  StyleBox["FrameBoxes", "MR"],
  " from an expressions"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(SetAttributes[stripStylingBoxes, HoldAll]\), "\n", 
    \(stripStylingBoxes\ @\ 
        StyleBox[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
          \[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\[ScriptS]___]\ \ \
\ \ \ \ \  := \ 
      stripStylingBoxes\ @\ 
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\), "\n", 
    \(stripStylingBoxes\ @\ 
        AdjustmentBox[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
          \[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\[ScriptS]___]\ \ \
 := \ stripStylingBoxes\ @\ 
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\), "\n", 
    \(stripStylingBoxes\ @\ 
        FrameBox[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
          \[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\[ScriptS]___]\ \ \
\ \ \ \ \  := \ 
      stripStylingBoxes\ @\ 
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\), "\n", 
    \(stripStylingBoxes\ @\ 
        \(TagBox\ @\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]___\)\ \ \ \ \ \ \
\ \ \ \ \ \ \ \  := \ 
      TagBox\ @\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\), "\n", 
    \(stripStylingBoxes\ @\ 
        \(RowBox\ @\ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]___\)\ \ \ \ \ \ \
\ \ \ \ \ \ \ \  := \ 
      RowBox\ [\ 
        stripStylingBoxes\  /@ \ 
          \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]]\), "\n", 
    \(stripStylingBoxes\ @\ 
          \(\[ScriptA]_\ @\ \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]__\)\  
        /; \ boxStructureQ[\ 
          \[ScriptA]\ @\ \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]]\ \  := \ 
      \[ScriptA]\  @@ \ 
        \((stripStylingBoxes\  /@ \ 
            {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]})\)\), "\n", 
    \(stripStylingBoxes\ @\ {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]__} := \ 
      stripStylingBoxes\  /@ \ {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]}\), 
  "\n", 
    \(stripStylingBoxes\ @\ 
        \[ScriptA]_\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
      := \ \[ScriptA]\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["stripStylingBoxes", "MR"],
  " expects only one argument."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
        stripStylingBoxes[___]\ \  := \ 
      With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 1\  
            \[And] \ Message[stripStylingBoxes::argx, 
              HoldForm\ @\ stripStylingBoxes, \[ScriptN]\[ScriptU]\[ScriptM], 
              1]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["padList", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["padList", "MR"],
  " will insert a padding element, ",
  StyleBox["padElement",
    FontSlant->"Italic"],
  ", between all adjacent members of a list. This is useful for inserting, \
say, commas or infix operators, etc."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(padList[\[ScriptL]\[ScriptI]\[ScriptS]\[ScriptT]_List, 
        \[ScriptP]\[ScriptA]\[ScriptD]\[ScriptCapitalE]\[ScriptL]\[ScriptE]\
\[ScriptM]\[ScriptE]\[ScriptN]\[ScriptT]_] := \ 
      \(Drop[#, \(-1\)]\  &\)\ \ @\ \ \(Flatten\ \ @\ 
          \(Thread\ \ @\ 
            {\[ScriptL]\[ScriptI]\[ScriptS]\[ScriptT], \ 
              \[ScriptP]\[ScriptA]\[ScriptD]\[ScriptCapitalE]\[ScriptL]\
\[ScriptE]\[ScriptM]\[ScriptE]\[ScriptN]\[ScriptT]}\)\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The first argument of ",
  StyleBox["padList", "MR"],
  " must be a list."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          padList[\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalL]\[ScriptI]\
\[ScriptS]\[ScriptT]_?\((headIsNot[List])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[padList::list, 
            HoldForm@\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 1];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["padList", "MR"],
  " expects two arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          padList[___]\ \  := \ 
        With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
              heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
          $Failed\  
            /; \n\ \ \ \ \ \ Which[
              \[ScriptN]\[ScriptU]\[ScriptM]\  == \ 1\ , \ 
              Message[padList::argr, HoldForm\ @\ padList, 
                2], \ \n\t\ \ \ \ \ \ \ \ \ \ \ \
\[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 2\ \ , \ 
              Message[padList::argrx, HoldForm\ @\ padList, 
                \[ScriptN]\[ScriptU]\[ScriptM], 
                2], \n\t\ \ \ \ \ \ \ \ \ \ \ True, \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ False]];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Fix Insane Behaviour of FullForm", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Unfortunately, the following code is needed to circumvent the behaviour of \
",
  StyleBox["FullForm", "MR"],
  ". This behaviour was changed in the final Beta 3 of ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " 3.0."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(wasProtected\  = Unprotect\ @\ FullForm;\)\), "\n", 
    \(\(FullForm 
        /: \n\t\ TagBox[
          StyleBox[
            \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_, \n\t\t\ Verbatim[\ 
              ShowSpecialCharacters \[Rule] False], 
            \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]__], FullForm] := \n\t
        TagBox[StyleBox[\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], 
            \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]], FullForm];\)\), "\n", 
    \(\ \(Protect\ @\ \(Evaluate\ @\ wasProtected\);\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Pattern Conversions, Handling, and Testing", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["boxedStringPatternsToPatterns", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["boxedStringPatternsToPatterns", "MR"],
  " will take an expression consisting of boxes and convert all patterns \
present in the boxes\[LongDash]patterns that are currently still unparsed \
strings and not yet expressions\[LongDash]and convert them to the \
corresponding patterned expressions, leaving the other boxes alone."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(boxedStringPatternsToPatterns[
        \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ] 
      := \n\t\ \ Module[
        {\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \ \ \ \ \ \ \ \ \
\ \ \  = \ \(WorkingForm\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ Notation}, \n\t\ \ \ stripStylingBoxes\  
          @@ \ \n\t\t\ \ \ \ \ {\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\
\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]\  //. \n\t\t\t\t\t\ \ {HoldPattern[NotationBoxTag]\ @\ 
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\  
                  \[RuleDelayed] \ 
                  \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \n\t\t\t\t\ \ \ \ \
\ \ TagBox[
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                    NotationPatternTag, ___]\  
                  \[RuleDelayed] \ \ toMyHeldExpression\ [\ 
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                    \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]], \n\t\t\t\
\t\t\t\ TagBox[
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                    NotationMadeBoxesTag, ___]\  
                  \[RuleDelayed] \ \ toMyHeldExpression\ [\ 
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                    \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]], \n\t\t\t\
\ \ \ \ \ \ \ \ \ \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]\
_String\  /; \ StringMatchQ[
                      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG], "\<*_\>"]\ \ \ \ \ \ \ \ \ \ \ \ \ \  \[RuleDelayed] \ 
                  ToExpression\ [\ 
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG], \ 
                    \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]}}\n\t\t]
        \)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The second argument and beyond of ",
  StyleBox["boxedStringPatternsToPatterns", "MR"],
  " must be Options."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          boxedStringPatternsToPatterns[_, ___, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]_?\((isNot[_?OptionQ])\), ___]\ \  
        := \ $Failed 
          /; \n\t\ \ \ \ \ \ Message[boxedStringPatternsToPatterns::nonopt, \ 
            HoldForm\ @\ 
              \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 1, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["patternToGeneralQ", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["patternToGeneralQ", "MR"],
  " test to see if a pattern is to general to be used in a Symbolization or \
Notation ",
  "statement",
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(SetAttributes[patternToGeneralQ, HoldAll]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(patternToGeneralQ\ @\ 
          \((Blank | BlankNull | BlankSequence | BlankNullSequence)\)[___]\  
        := \ \ True;\)\), "\n", 
    \(\(patternToGeneralQ\ @\ 
          \(HoldPattern[Pattern]\)[_, 
            \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalC]\[ScriptO]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptN]\
\[ScriptT]_]\  
        := \ \ patternToGeneralQ\ @\ 
          \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalC]\[ScriptO]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptN]\
\[ScriptT];\)\), "\n", 
    \(\(patternToGeneralQ\ @\ 
          myHold[\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalC]\[ScriptO]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptN]\
\[ScriptT]___] := 
        patternToGeneralQ\ @\ 
          \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalC]\[ScriptO]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptN]\
\[ScriptT];\)\), "\n", 
    \(patternToGeneralQ\ @\ ___\  := \ False\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["makeHeldSequenceOfBoxes and makeHeldRowBoxOfBoxes", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["makeHeldSequenceOfBoxes", "MR"],
  " inserts commas (i.e. \"",
  StyleBox[",", "MR"],
  "\" ) between every boxed expression in the sequence of boxes given to ",
  StyleBox["makeHeldSequenceOfBoxes", "MR"],
  ".  ",
  StyleBox["makeHeldSequenceOfBoxes", "MR"],
  " holds its arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(SetAttributes[{makeHeldSequenceOfBoxes, makeHeldRowBoxOfBoxes}, 
      {HoldAllComplete}]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(makeHeldSequenceOfBoxes\ [\ 
        {}, \ \ \ \ \ \ \ \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        None\ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ \ \  := \ Sequence[]\), "\n", 
    \(makeHeldSequenceOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_}\ , \ \ \[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        None\ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ \ \  := \ 
      MakeBoxes\ \ \ [\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]\ ]\), "\n", 
    \(makeHeldSequenceOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_}\ , \ \ \[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]_Symbol\ ]\ \ \  := \ 
      Parenthesize[\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]\ ]\), "\n", 
    \(makeHeldSequenceOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]___}\ , \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ None]\ \ \  
      := \n\t\ \ \(Sequence\  @@ \ Drop[#, \(-1\)]\  
          &\)\ \ @\ \ \(Flatten\ \ @\ \ \(Thread\ \ @\n\t\t\t\t\ \ {\ 
              Function[\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                  MakeBoxes[\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                    \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]], {HoldAll}]\  
                /@ \ Unevaluated\ @\ 
                  {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, "\<,\>"}\)\)\n
    \t\t\t\), "\n", 
    \(makeHeldSequenceOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]___}\ , \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]_Symbol\ ]\ \ \  
      := \n\t\ \ \(Sequence\  @@ \ Drop[#, \(-1\)]\  
          &\)\ \ @\ \ \(Flatten\ \ @\ \ \(Thread\ \ @\n\t\t\t\t\ \ {\ 
              Function[\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                  Parenthesize[\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                    \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                    \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\
\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\
\[ScriptD]\[ScriptCapitalB]\[ScriptY]], {HoldAll}]\  /@ \ 
                Unevaluated\ @\ {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, 
              "\<,\>"}\)\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["makeHeldRowBoxOfBoxes", "MR"],
  " inserts commas (i.e. \"",
  StyleBox[",", "MR"],
  "\" ) between every boxed expression in the sequence of boxes given to ",
  StyleBox["makeHeldRowBoxOfBoxes", "MR"],
  "; in addition it returns the result wrapped in a RowBox.   ",
  StyleBox["makeHeldRowBoxOfBoxes", "MR"],
  " holds its arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(makeHeldRowBoxOfBoxes\ [\ 
        {}, \ \ \ \ \ \ \ \ \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \
\ None\ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ \ \  := \ RowBox\ @\ {}\), "\n", 
    \(makeHeldRowBoxOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_}\ , \ \ \[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        None\ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ \ \  := \ 
      MakeBoxes\ \ \ [\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]\ ]\), "\n", 
    \(makeHeldRowBoxOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_}\ , \ \ \[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]_Symbol\ ]\ \ \  := \ 
      Parenthesize[\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]\ ]\), "\n", 
    \(makeHeldRowBoxOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]___}\ , \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ None]\ \ \  
      := \n\t\ \ \(RowBox\ @\ Drop[#, \(-1\)]\  
          &\)\ \ @\ \ \(Flatten\ \ @\ \ \(Thread\ \ @\n\t\t\t\t\ \ {\ 
              Function[\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                  MakeBoxes[\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                    \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]], {HoldAll}]\  
                /@ \ Unevaluated\ @\ 
                  {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, "\<,\>"}\)\)\n
    \t\t\t\), "\n", 
    \(makeHeldRowBoxOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]___}\ , \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]_Symbol\ ]\ \ \  
      := \n\t\ \ \(RowBox\ @\ Drop[#, \(-1\)]\  
          &\)\ \ @\ \ \(Flatten\ \ @\ \ \(Thread\ \ @\n\t\t\t\t\ \ {\ 
              Function[\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                  Parenthesize[\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                    \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                    \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\
\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\
\[ScriptD]\[ScriptCapitalB]\[ScriptY]], {HoldAll}]\  /@ \ 
                Unevaluated\ @\ {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, 
              "\<,\>"}\)\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["makeEvaluatedSequenceOfBoxes and makeEvaluatedRowBoxOfBoxes", 
  "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["makeEvaluatedSequenceOfBoxes", "MR"],
  " inserts commas (i.e. \",\" ) between every boxed expression in the \
sequence of boxes given to ",
  StyleBox["makeEvaluatedSequenceOfBoxes", "MR"],
  ".  ",
  StyleBox["makeEvaluatedSequenceOfBoxes", "MR"],
  " evaluates its arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(makeEvaluatedSequenceOfBoxes\ [\ 
        {}, \ \ \ \ \ \ \ \ \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \
\ None\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ \ \  := \ Sequence[]\), "\n", 
    \(makeEvaluatedSequenceOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_}\ , \ \ \[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        None\ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ \ \  := \ 
      MakeBoxes\ \ \ [\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]\ ]\), "\n", 
    \(makeEvaluatedSequenceOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_}\ , \ \ \[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]_Symbol\ ]\ \ \  := \ 
      Parenthesize[\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]\ ]\), "\n", 
    \(makeEvaluatedSequenceOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]___}\ , \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ None]\ \ \  
      := \n\t\ \ \(Sequence\  @@ \ Drop[#, \(-1\)]\  
          &\)\ \ @\ \ \(Flatten\ \ @\ \ \(Thread\ \ @\n\t\t\t\t\ \ {\ 
              Function[\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                  MakeBoxes[\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                    \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]], {HoldAll}]\  
                /@ \ Unevaluated\ @\ 
                  {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, "\<,\>"}\)\)\n
    \t\t\t\), "\n", 
    \(makeEvaluatedSequenceOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]___}\ , \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]_Symbol\ ]\ \ \  
      := \n\t\ \ \(Sequence\  @@ \ Drop[#, \(-1\)]\  
          &\)\ \ @\ \ \(Flatten\ \ @\ \ \(Thread\ \ @\n\t\t\t\t\ \ {\ 
              Function[\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                  Parenthesize[\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                    \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                    \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\
\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\
\[ScriptD]\[ScriptCapitalB]\[ScriptY]], {HoldAll}]\  /@ \ 
                Unevaluated\ @\ {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, 
              "\<,\>"}\)\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["makeEvaluatedRowBoxOfBoxes", "MR"],
  " inserts commas (i.e. \",\" ) between every boxed expression in the \
sequence of boxes given to ",
  StyleBox["makeEvaluatedRowBoxOfBoxes", "MR"],
  "; in addition it returns the result wrapped in a RowBox.   ",
  StyleBox["makeEvaluatedRowBoxOfBoxes", "MR"],
  " evaluates its arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(makeEvaluatedRowBoxOfBoxes\ [\ 
        {}, \ \ \ \ \ \ \ \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        None\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ \ \  := \ RowBox\ @\ {}\), 
  "\n", 
    \(makeEvaluatedRowBoxOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_}\ , \ \ \[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        None\ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ \ \  := \ 
      MakeBoxes\ \ \ [\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]\ ]\), "\n", 
    \(makeEvaluatedRowBoxOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_}\ , \ \ \[ScriptF]\
\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]_Symbol\ ]\ \ \  := \ 
      Parenthesize[\ \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR], \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]\ ]\), "\n", 
    \(makeEvaluatedRowBoxOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]___}\ , \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ None]\ \ \  
      := \n\t\ \ \(RowBox\ @\ Drop[#, \(-1\)]\  
          &\)\ \ @\ \ \(Flatten\ \ @\ \ \(Thread\ \ @\n\t\t\t\t\ \ {\ 
              Function[\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                  MakeBoxes[\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                    \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]], {HoldAll}]\  
                /@ \ Unevaluated\ @\ 
                  {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, "\<,\>"}\)\)\n
    \t\t\t\), "\n", 
    \(makeEvaluatedRowBoxOfBoxes\ [\ 
        {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]___}\ , \ 
        \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_Symbol, \ 
        \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\[ScriptT]\[ScriptH]\
\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\
\[ScriptY]_Symbol\ ]\ \ \  
      := \n\t\ \ \(RowBox\ @\ Drop[#, \(-1\)]\  
          &\)\ \ @\ \ \(Flatten\ \ @\ \ \(Thread\ \ @\n\t\t\t\t\ \ {\ 
              Function[\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                  Parenthesize[\ \[ScriptT]\[ScriptE]\[ScriptR]\[ScriptM], \ 
                    \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                    \[ScriptP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\
\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptS]\[ScriptI]\[ScriptZ]\[ScriptE]\
\[ScriptD]\[ScriptCapitalB]\[ScriptY]], {HoldAll}]\  /@ \ 
                Unevaluated\ @\ {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, 
              "\<,\>"}\)\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Error checking for makeHeldSequenceOfBoxes", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["makeHeldSequenceOfBoxes", "MR"],
  " expects three arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeHeldSequenceOfBoxes[___]\ \  := \ 
        With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
              heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
          $Failed\  
            /; \n\t\ \ \ \ \ Which[
              \[ScriptN]\[ScriptU]\[ScriptM]\  == \ 1\ , \ 
              Message[makeHeldSequenceOfBoxes::argr, \ 
                HoldForm\ @\ makeHeldSequenceOfBoxes, 
                3], \ \n\t\ \ \ \ \ \ \ \ \ \ \ \
\[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 3\ \ , \ 
              Message[makeHeldSequenceOfBoxes::argrx, 
                HoldForm\ @\ makeHeldSequenceOfBoxes, 
                \[ScriptN]\[ScriptU]\[ScriptM], 
                3], \n\t\ \ \ \ \ \ \ \ \ \ \ True, \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ False]];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 1st argument of ",
  StyleBox["makeHeldSequenceOfBoxes", "MR"],
  " must be a list."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeHeldSequenceOfBoxes[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalL]\[ScriptI]\
\[ScriptS]\[ScriptT]_?\((headIsNot[List])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeHeldSequenceOfBoxes::list, 
            HoldForm@\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 1];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 2nd argument of ",
  StyleBox["makeHeldSequenceOfBoxes", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeHeldSequenceOfBoxes[_, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]_?\((headIsNot[Symbol])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeHeldSequenceOfBoxes::sym, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB], 2];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 3rd argument of ",
  StyleBox["makeHeldSequenceOfBoxes", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeHeldSequenceOfBoxes[_, _, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]_?\((headIsNot[Symbol])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeHeldSequenceOfBoxes::sym, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB], 3];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Error checking for makeHeldRowBoxOfBoxes", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["makeHeldRowBoxOfBoxes", "MR"],
  " expects three arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeHeldRowBoxOfBoxes[___]\ \  := \ 
        With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
              heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
          $Failed\  
            /; \n\t\ \ \ \ \ Which[
              \[ScriptN]\[ScriptU]\[ScriptM]\  == \ 1\ , \ 
              Message[makeHeldRowBoxOfBoxes::argr, \ 
                HoldForm\ @\ makeHeldRowBoxOfBoxes, 
                3], \ \n\t\ \ \ \ \ \ \ \ \ \ \ \
\[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 3\ \ , \ 
              Message[makeHeldRowBoxOfBoxes::argrx, 
                HoldForm\ @\ makeHeldRowBoxOfBoxes, 
                \[ScriptN]\[ScriptU]\[ScriptM], 
                3], \n\t\ \ \ \ \ \ \ \ \ \ \ True, \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ False]];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 1st argument of ",
  StyleBox["makeHeldRowBoxOfBoxes", "MR"],
  " must be a list."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeHeldRowBoxOfBoxes[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalL]\[ScriptI]\
\[ScriptS]\[ScriptT]_?\((headIsNot[List])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeHeldRowBoxOfBoxes::list, 
            HoldForm@\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 1];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 2nd argument of ",
  StyleBox["makeHeldRowBoxOfBoxes", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeHeldRowBoxOfBoxes[_, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]_?\((headIsNot[Symbol])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeHeldRowBoxOfBoxes::sym, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB], 2];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 3rd argument of ",
  StyleBox["makeHeldRowBoxOfBoxes", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeHeldRowBoxOfBoxes[_, _, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]_?\((headIsNot[Symbol])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeHeldRowBoxOfBoxes::sym, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB], 3];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Error checking for makeEvaluatedSequenceOfBoxes", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["makeEvaluatedSequenceOfBoxes", "MR"],
  " expects 3 arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeEvaluatedSequenceOfBoxes[___]\ \  := \ 
        With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
              heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
          $Failed\  
            /; \n\t\ \ \ \ \ Which[
              \[ScriptN]\[ScriptU]\[ScriptM]\  == \ 1\ , \ 
              Message[makeEvaluatedSequenceOfBoxes::argr, \ 
                HoldForm\ @\ makeEvaluatedSequenceOfBoxes, 
                3], \ \n\t\ \ \ \ \ \ \ \ \ \ \ \
\[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 3\ \ , \ 
              Message[makeEvaluatedSequenceOfBoxes::argrx, 
                HoldForm\ @\ makeEvaluatedSequenceOfBoxes, 
                \[ScriptN]\[ScriptU]\[ScriptM], 
                3], \n\t\ \ \ \ \ \ \ \ \ \ \ True, \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ False]];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 1st argument of ",
  StyleBox["makeEvaluatedSequenceOfBoxes", "MR"],
  " must be a list."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeEvaluatedSequenceOfBoxes[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalL]\[ScriptI]\
\[ScriptS]\[ScriptT]_?\((headIsNot[List])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[
            makeEvaluatedSequenceOfBoxes::list, 
            HoldForm@\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 1];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 2nd argument of ",
  StyleBox["makeEvaluatedSequenceOfBoxes", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeEvaluatedSequenceOfBoxes[_, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]_?\((headIsNot[Symbol])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeEvaluatedSequenceOfBoxes::sym, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB], 2];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 3rd argument of ",
  StyleBox["makeEvaluatedSequenceOfBoxes", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeEvaluatedSequenceOfBoxes[_, _, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]_?\((headIsNot[Symbol])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeEvaluatedSequenceOfBoxes::sym, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB], 3];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Error checking for makeEvaluatedRowBoxOfBoxes", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["makeEvaluatedRowBoxOfBoxes", "MR"],
  " expects three arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeEvaluatedRowBoxOfBoxes[___]\ \  := \ 
        With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
              heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
          $Failed\  
            /; \n\t\ \ \ \ \ Which[
              \[ScriptN]\[ScriptU]\[ScriptM]\  == \ 1\ , \ 
              Message[makeEvaluatedRowBoxOfBoxes::argr, \ 
                HoldForm\ @\ makeEvaluatedRowBoxOfBoxes, 
                3], \ \n\t\ \ \ \ \ \ \ \ \ \ \ \
\[ScriptN]\[ScriptU]\[ScriptM]\  \[NotEqual] \ 3\ \ , \ 
              Message[makeEvaluatedRowBoxOfBoxes::argrx, 
                HoldForm\ @\ makeEvaluatedRowBoxOfBoxes, 
                \[ScriptN]\[ScriptU]\[ScriptM], 
                3], \n\t\ \ \ \ \ \ \ \ \ \ \ True, \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ False]];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 1st argument of ",
  StyleBox["makeEvaluatedRowBoxOfBoxes", "MR"],
  " must be a list."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeEvaluatedRowBoxOfBoxes[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalL]\[ScriptI]\
\[ScriptS]\[ScriptT]_?\((headIsNot[List])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeEvaluatedRowBoxOfBoxes::list, 
            HoldForm@\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 1];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 2nd argument of ",
  StyleBox["makeEvaluatedRowBoxOfBoxes", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeEvaluatedRowBoxOfBoxes[_, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]_?\((headIsNot[Symbol])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeEvaluatedRowBoxOfBoxes::sym, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB], 2];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The 3rd argument of ",
  StyleBox["makeEvaluatedRowBoxOfBoxes", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          makeEvaluatedRowBoxOfBoxes[_, _, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]_?\((headIsNot[Symbol])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[makeEvaluatedRowBoxOfBoxes::sym, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB], 3];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Symbolize Name Handling", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["operatorStringsToSymbolStrings", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(deleteMultipleUnderBrackets\ @\ exprString_String\  := \ 
      StringReplace[exprString, 
        "\<\[UnderBracket]\[UnderBracket]\>" \[Rule] "\<\[UnderBracket]\>"]\n
    \), "\n", 
    \(pruneEnclosingCharacters[
        a_String\  /; \ StringMatchQ[a, "\<\"\\[*]\"\>"]]\  := \ 
      StringDrop[StringDrop[a, \(-2\)], 3]\), "\n", 
    \(pruneEnclosingCharacters\ @\ other_\  := \ "\<\>"\n\), "\n", 
    \(convertNonLettersToFullNames\ @\ exprString_String\  := \ \n\t
      StringJoin\ [\ 
        Characters[\ exprString\ ]\  
          /. \n\t\t\ta_String\  /; \ 
              \((\[Not] \ LetterQ\ @\ a\  \[And] \ \[Not] \ DigitQ\ @\ a\  
                  \[And] a\  \[NotEqual] \ "\<\[UnderBracket]\>")\)\  
            \[RuleDelayed] \ 
            pruneEnclosingCharacters\ @\ \(ToString\ @\ \(FullForm\ @\ a\)\)]
        \n\), "\n", 
    \(deletePossibleLeadingAndTrailingUnderBrackets\ @\ exprString_String 
      := \n\t\tWhich[
        StringMatchQ[exprString, "\<\[UnderBracket]*\[UnderBracket]\>"], \ 
        StringDrop[StringDrop[exprString, 1], 
          \(-1\)], \n\t\t\ \ \ \ \ \ StringMatchQ[exprString, 
          "\<\[UnderBracket]*\>"], \ \ StringDrop[exprString, 
          1], \n\t\t\ \ \ \ \ \ StringMatchQ[exprString, 
          "\<*\[UnderBracket]\>"], \ \ StringDrop[exprString, 
          \(-1\)], \n\t\t\ \ \ \ \ \ True, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ exprString]\t\n\t\t\t\), "\n", 
    \(operatorStringsToSymbolStrings\ @\ exprString_String\  
      := \n\ \ deletePossibleLeadingAndTrailingUnderBrackets\ @\n\ \ \ \t\
\(deleteMultipleUnderBrackets\ @\n\t\ \ \ \ \t\(convertNonLettersToFullNames\ \
@\n\t\t\t\ \ \ \ \ StringReplace[\t\texprString, 
              {\n"\< \>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Space\[UnderBracket]\>", \n
                "\<->\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]Rule\[UnderBracket]\>", \n
                "\<:>\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]RuleDelayed\[UnderBracket]\>", \t\t\t\t\n
                "\<:=\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]SetDelayed\[UnderBracket]\>", \n
                "\<!\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Exclamation\[UnderBracket]\>", \n
                "\<\"\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]DoubleQuote\[UnderBracket]\>", \n
                "\<#\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Hash\[UnderBracket]\>", \n
                "\<$\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Dollar\[UnderBracket]\>", \n
                "\<%\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Percent\[UnderBracket]\>", \n
                "\<&&\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]And\[UnderBracket]\>", \n
                "\<&\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Ampersand\[UnderBracket]\>", \n
                "\<'\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Quote\[UnderBracket]\>", \n
                "\<(\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]LeftParenthesis\[UnderBracket]\>", \n
                "\<)\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]RightParenthesis\[UnderBracket]\>", \n
                "\<*\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Times\[UnderBracket]\>", \n
                "\<+\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Plus\[UnderBracket]\>", \n
                "\<,\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Comma\[UnderBracket]\>", \n
                "\<-\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Dash\[UnderBracket]\>", \n
                "\<.\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Dot\[UnderBracket]\>", \n
                "\</.\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]Replace\[UnderBracket]\>", \n
                "\<//.\>"\  \[Rule] \ 
                  "\<\[UnderBracket]ReplaceRepeated\[UnderBracket]\>", \n
                "\<//\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]BackAt\[UnderBracket]\>", \n
                "\</;\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]Condition\[UnderBracket]\>", \n
                "\</\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Slash\[UnderBracket]\>", \n
                "\<:\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Colon\[UnderBracket]\>", \n
                "\<;\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Semicolon\[UnderBracket]\>", \n
                "\<<=\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]LessEqual\[UnderBracket]\>", \n
                "\<<\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Less\[UnderBracket]\>", \n
                "\<===\>"\  \[Rule] \ 
                  "\<\[UnderBracket]SameQ\[UnderBracket]\>", \n
                "\<==\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]Equal\[UnderBracket]\>", \n
                "\<=\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Set\[UnderBracket]\>", \n
                "\<>=\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]GreaterEqual\[UnderBracket]\>", \n
                "\<>\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Greater\[UnderBracket]\>", \n
                "\<?\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Question\[UnderBracket]\>", \n
                "\<@@\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]Apply\[UnderBracket]\>", \n
                "\</@\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]Map\[UnderBracket]\>", \n
                "\<@\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]At\[UnderBracket]\>", \n
                "\<[\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]LeftBracket\[UnderBracket]\>", \n
                "\<]\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]RightBracket\[UnderBracket]\>", \n
                "\<\\\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Backslash\[UnderBracket]\>", \n
                "\<^\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Wedge\[UnderBracket]\>", \n
                "\<_\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Underscore\[UnderBracket]\>", \n
                "\<`\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Backquote\[UnderBracket]\>", \n
                "\<{\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]LeftBrace\[UnderBracket]\>", \n
                "\<||\>"\ \  \[Rule] \ 
                  "\<\[UnderBracket]Or\[UnderBracket]\>", \n
                "\<|\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]VerticalBar\[UnderBracket]\>", \n
                "\<}\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]RightBrace\[UnderBracket]\>", \n
                "\<~\>"\ \ \  \[Rule] \ 
                  "\<\[UnderBracket]Tilde\[UnderBracket]\>"}]\)\)\)}], "Input",\

  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["convertBoxesToStringRepresentation", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(convertBoxesToStringRepresentation[
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_] := \ \n
      operatorStringsToSymbolStrings\ @\ 
        \(StringJoin\ @\ 
          Flatten[\t
            {\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]}\  
              //. \n\t\t{AdjustmentBox[a_, ___]\ \ \ \ \ \ \ \ \ \ \ \  
                  \[Rule] \ 
                  a, \n\t\t\tButtonBox[b_, 
                    ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  b, \n\t\t\tErrorBox[b_, 
                    ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  b, \n\t\t\tFormBox[b_, 
                    ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  b, \n\t\t\tFractionBox[a_, b_, ___]\ \ \ \ \ \ \ \ \ \ \  
                  \[Rule] \ 
                  {a, "\<\[UnderBracket]Over\[UnderBracket]\>", 
                    b}, \n\t\t\tFrameBox[b_, 
                    ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  b, \n\t\t\tGridBox[args_, 
                    ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  {args}, \n\t\t\tInterpretationBox[b_, ___]\ \ \ \ \ \ \ \  
                  \[Rule] \ 
                  b, \n\t\t\tRadicalBox[a_, b_, ___]\ \ \ \ \ \ \ \ \ \ \ \  
                  \[Rule] \ 
                  {a, "\<\[UnderBracket]Root\[UnderBracket]\>", 
                    b}, \n\t\t\tRowBox[
                    a_]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
                  \[Rule] \ 
                  a, \n\t\t\tSqrtBox[a_, 
                    ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  {"\<Sqrt\[UnderBracket]\>", a}, \n\t\t\tStyleBox[a_, 
                    ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  a, \n\t\t\tSubscriptBox[a_, b_, ___]\ \ \ \ \ \ \ \ \ \  
                  \[Rule] \ 
                  {a, "\<\[UnderBracket]Subscript\[UnderBracket]\>", 
                    b}, \n\t\t\tSuperscriptBox[a_, b_, ___]\ \ \ \ \ \ \ \  
                  \[Rule] \ 
                  {a, "\<\[UnderBracket]Superscript\[UnderBracket]\>", 
                    b}, \n\t\t\tSubsuperscriptBox[a_, b_, c_, ___]\ \  
                  \[Rule] \ 
                  {a, "\<\[UnderBracket]Subsuperscript\[UnderBracket]\>", b, 
                    "\<\[UnderBracket]and\[UnderBracket]\>", 
                    c}, \n\t\t\tTagBox[b_, 
                    ___]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  b, \t\t\n\t\t\tUnderscriptBox[a_, 
                    b_]\ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  {a, "\<\[UnderBracket]Underscript\[UnderBracket]\>", 
                    b}, \n\t\t\ OverscriptBox[a_, 
                    b_]\ \ \ \ \ \ \ \ \ \ \ \ \  \[Rule] \ 
                  {a, "\<\[UnderBracket]Overscript\[UnderBracket]\>", 
                    b}, \n\t\t\tUnderoverscriptBox[a_, b_, c_]\ \ \ \ \  
                  \[Rule] \ 
                  {a, "\<\[UnderBracket]Underoverscript\[UnderBracket]\>", b, 
                    "\<\[UnderBracket]and\[UnderBracket]\>", c}}]\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Symbolize Implementation", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["setups before the Symbolize", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Wipe ",
  StyleBox["adjustedOptions", "MR"],
  ". This is purely a speed consideration, since ",
  StyleBox["AbsoluteOptions", "MR"],
  " takes so long to execute its value is cached for the duration of the \
calculation. "
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(Symbolize[
          \[ScriptA]\[ScriptN]\[ScriptY]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\
\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]___] /; 
        \((silentEvaluate\ [\ adjustedOptions\ @\ Symbolize\  =. \ ]; 
          False)\)\  := \ $Failed\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Check Symbolize for parsing and valid  options.", "Subsubsection",
  Background->GrayLevel[1],
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell["\<\
The condition /; True attached to some of the rules is to \
circumvent rule reordering bugs in Mathematica.\
\>", "Text",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Handle ",
  StyleBox["RemoveSymbolize", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(RemoveSymbolize[
        \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\
\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\
, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  := 
      Symbolize[
        \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\
\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 Action -> RemoveNotationRules, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]
        \)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The ",
  StyleBox["Symbolize", "MR"],
  " statement must be created from the Palette."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE] : \ 
        Symbolize[
          \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\
\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]_, ___]\  
      := \ \n\ \ \ \((Message[Symbolize::badSymbolizeBoxes, 
            HoldForm\ @\ 
              \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\
\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS], \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]]; \ 
          $Failed)\) 
        /; \n\t\t\t\ Head\ @\ 
            \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\
\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]\  =!= \ NotationBoxTag\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Symbolize::badSymbolizeBoxes\  = \ 
        "\<The Symbolize boxes `1` do not have an embedded NotationBoxTag \
TagBox. The Symbolize statement `2` may not have been entered using the \
palette, or the embedded TagBox may have been deleted. The embedded TagBox \
ensures correct parsing and retention of proper styling and grouping \
information.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The other arguments of ",
  StyleBox["Symbolize", "MR"],
  " must be options."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]\  : 
        Symbolize[
          \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\
\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]_, ___, 
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN]_, ___]\  
      := \n\ \ \ \((Message[Symbolize::nonopt, \ 
            HoldForm\ @\ 
              \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 1, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]\ ]; 
          $Failed)\) 
        /; \n\t\tNot\ @\ 
          \(OptionQ\ @\ 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The value of option ",
  StyleBox["Action", "MR"],
  " should be valid."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]\  : 
        Symbolize[
          \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\
\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]_, \ ___, 
          \((Rule | RuleDelayed)\)[Action, \ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalV]\[ScriptA]\
\[ScriptL]\[ScriptU]\[ScriptE]_], ___]\  
      := \ \n\ \ \ \((Message[Symbolize::optcrp, \ Action, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalV]\[ScriptA]\
\[ScriptL]\[ScriptU]\[ScriptE], \ \ HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]]; 
          $Failed)\) 
        /; \n\t\tNot\ @\ 
          MatchQ[\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalV]\[ScriptA]\
\[ScriptL]\[ScriptU]\[ScriptE], 
            CreateNotationRules\  | \ RemoveNotationRules\  | \ 
              PrintNotationRules]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Symbolize::optcrp\  = \ 
        "\<Value of option \"`1` \[Rule] `2`\" in `3` should be \
CreateNotationRules, RemoveNotationRules or PrintNotationRules.\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The boxes to be symbolized must also not have a head of ",
  StyleBox["RowBox", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]\  : 
        Symbolize[\ 
          NotationBoxTag\ [\ 
            RowBox\ @\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]___, 
            ___], \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \ \n\t\ \ \ \((Message[Symbolize::rowBoxHead, \ 
            identityForm\  @@ \ 
              {RowBox\ @\ 
                  \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]}, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]]; \ 
          $Failed)\) /; \ True\n\), "\n", 
    \(\(Symbolize::rowBoxHead\  = \n\t
        "\<The box structure \"`1`\" in `2` is not of the right form. \
Structures to be symbolized cannot have a RowBox as their head. Examine the \
full box structures for possible unintended groupings.\>";\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell["Options have all been checked and are o.k.", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["check form of the patterns in the Symbolize", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["The boxes to be symbolized must not be too General.", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]\  : 
        Symbolize[\ 
          NotationBoxTag\ [
            \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, ___], 
          \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \ \n\t\t\t\ \ \ With[
        {\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]\ \ \  = \ 
            boxedStringPatternsToPatterns\ [\ 
              cleanBoxes\ @\ 
                \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
              \(WorkingForm\  \[Rule] \ WorkingForm\ \  /. \ 
                  {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
                adjustedOptions\ @\ Symbolize\ ]\ }, \n\t\t\t\ \ \ \((Message[
              Symbolize::patternToGeneral, 
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS], identityForm\ @\ 
                \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
              HoldForm\ @\ 
                \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]]; 
            $Failed)\) /; \ 
          patternToGeneralQ\ @\ 
            \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]]\n\t\t\t\), "\n", 
    \(\(Symbolize::patternToGeneral\  = \ 
        "\<The pattern `1` appearing in the symbolize statement \
Symbolize[`2`] is too general to be used.\>";\)\t\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The ",
  StyleBox["Symbolize", "MR"],
  " has been correctly parsed and checked. Now create the symbolization."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(Symbolize[\ 
        \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\
\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\
, \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \n\t\ \ With[
        {\ \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\  = \ stripNotationBoxTag\ @\ 
              \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\
\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]}, \n\t\ \ \ \ \ \ \(createSymbolize[
            \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]];\)\n\t\ \ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
Have encountered an unknown error in symbolization parsing... \
Report it!\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(Symbolize[\[ScriptA]\[ScriptL]\[ScriptL]___]\  
        := \n\t\ \ \ \((Message[Symbolize::unknownParseError, \ 
            identityForm\  @@ \ 
              {{\[ScriptA]\[ScriptL]\[ScriptL]}}]; \n\t\t\ \ CellPrint[
            Cell[BoxData[\ 
                colorizeStructuralBoxes[\ \[ScriptA]\[ScriptL]\[ScriptL]\ , \ 
                  1]], "\<Output\>"]]; $Failed)\);\)\n\), "\n", 
    \(\t\(Symbolize::unknownParseError\  = \ 
        "\<Unknown error occurred in parsing the Symbolize definition `1`. \
Please report this to jasonh@wri.com, Please carefully examine the following \
box structures for spurious characters, weird groupings etc.\>";\)\)}], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Definition of Symbolize containing patterns.", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["createSymbolize", "MR"],
  " handles the symbolization of boxes containing a pattern."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(createSymbolize\ [
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\ , 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ] 
      := \n\t\ \ With[
        {\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \ \ \ \ \ \ \ \ \
\ \ \  = \ \(WorkingForm\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ 
                Symbolize, \n\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \[ScriptCapitalA]\
\[ScriptC]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\ \ \ \ \ \ \ \  = \ 
            \(Action\ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ Symbolize}, \n\t\t\t\ \ \ With[
          {\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]\ \ \  = \ 
              boxedStringPatternsToPatterns\ [\ 
                cleanBoxes\ @\ 
                  \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                WorkingForm\  \[Rule] \ 
                  \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ ]\ }, \n\
\t\t\t\t\ \ \ \ \ \(If[
              FreeQ[\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\
\[ScriptE]\[ScriptS], 
                Pattern | Blank | BlankNull | BlankSequence | 
                  BlankNullSequence], \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
createSymbolizeSingleInstance\ [\ 
                \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]], \ \ \ \ \ \ \ \ \ \
\ \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ executeSymbolizeAction[\n\t\t\t\t\t\ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ myHold\ @\ 
                  NotationMakeExpression[
                    \[ScriptM]\[ScriptA]\[ScriptT]\[ScriptC]\[ScriptH]\
\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\  : \ \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]], \t\t\t\t\n\t\t\t\t\t\ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ myHold\ [
                  createSymbolizeSingleInstance[\ 
                    \[ScriptM]\[ScriptA]\[ScriptT]\[ScriptC]\[ScriptH]\
\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]; \ 
                  MakeExpression[
                    \[ScriptM]\[ScriptA]\[ScriptT]\[ScriptC]\[ScriptH]\
\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\ ], \n\t\t\t\t\t\ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM],\
 \ \[ScriptCapitalA]\[ScriptC]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]\n\t\t\
\t\t\t];\)\n\t\t\ \ \ \ ]\n\t\ \ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["executeSymbolizeAction", "MR"],
  " enters, removes or prints the symbolization statement depending on \
action."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(executeSymbolizeAction[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]_, \ \ \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        CreateNotationRules] 
      := \n\t\ \ \ releaseMyHold[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\  := \ 
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(executeSymbolizeAction[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]_, \ \ \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        RemoveNotationRules] 
      := \n\t\ \ \ releaseMyHold[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\  =. \ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(executeSymbolizeAction[\ 
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, \ \ \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]_\ , \ 
          \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
          PrintNotationRules] 
        := \n\t\ \ \ releaseMyHold\ @\ 
          \(CellPrint\ @\ 
            Cell[\ BoxData\ @\ 
                MakeBoxes[
                  \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  := \ 
                    \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL], \ StandardForm], "\<Output\>", 
              ShowStringCharacters -> True]\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Definition of Symbolize without patterns.", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["createSymbolizeSingleInstance", "MR"],
  " sets up ",
  StyleBox["MakeExpression", "MR"],
  " & ",
  StyleBox["MakeBoxes", "MR"],
  " rules for a given symbol without patterns in it."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(createSymbolizeSingleInstance\ [\ 
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ]\  
      := \n\t\ \ With[
        {\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \ \ \ \ \ \ \ \ \
\ \ \  = \ \(WorkingForm\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ 
                Symbolize, \n\t\t\t\ \ \ \ \ \ \ \ \ \[ScriptCapitalS]\
\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptI]\[ScriptZ]\
\[ScriptE]\[ScriptCapitalR]\[ScriptO]\[ScriptO]\[ScriptT]\[ScriptCapitalN]\
\[ScriptA]\[ScriptM]\[ScriptE]\ \ \ \ \ \  = \ 
            \(SymbolizeRootName\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ 
                Symbolize, \n\t\t\t\t\t\t\ \ \ \[ScriptCapitalA]\[ScriptC]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \  = \ 
            \(Action\ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ Symbolize}, \n\t\t\ \ \ \ With[
          {\[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptCapitalS]\[ScriptT]\[ScriptR]\[ScriptI]\
\[ScriptN]\[ScriptG]\ \ \  = \ 
              If[\[ScriptCapitalS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\
\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptCapitalR]\[ScriptO]\[ScriptO]\
\[ScriptT]\[ScriptCapitalN]\[ScriptA]\[ScriptM]\[ScriptE]\  === \ "\<\>", 
                convertBoxesToStringRepresentation\ @\ 
                  \(cleanBoxes\ @\ 
                    \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\), \ 
                \[ScriptCapitalS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\
\[ScriptL]\[ScriptI]\[ScriptZ]\[ScriptE]\[ScriptCapitalR]\[ScriptO]\[ScriptO]\
\[ScriptT]\[ScriptCapitalN]\[ScriptA]\[ScriptM]\[ScriptE]]}, \n\t\t\t\
executeSymbolizeSingleInstanceAction[
            myHold\ @\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
            \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptCapitalS]\[ScriptT]\[ScriptR]\
\[ScriptI]\[ScriptN]\[ScriptG], \ 
            \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
            \[ScriptCapitalA]\[ScriptC]\[ScriptT]\[ScriptI]\[ScriptO]\
\[ScriptN]]\n\t\t\ \ \ \ ]\n\t\ \ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["executeSymbolizeSingleInstanceAction", "MR"],
  " enters, removes or prints the single symbolization instance depending on \
action."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(executeSymbolizeSingleInstanceAction[
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptCapitalS]\[ScriptT]\[ScriptR]\[ScriptI]\
\[ScriptN]\[ScriptG]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        CreateNotationRules] 
      := \n\t\ \ With[
        {\[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\  = 
            If[Names[
                  \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptCapitalS]\[ScriptT]\[ScriptR]\
\[ScriptI]\[ScriptN]\[ScriptG]]\  \[NotEqual] \ {}, \ 
              Message[Symbolize::boxSymbolExists]; 
              Unique[\[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptCapitalS]\[ScriptT]\[ScriptR]\
\[ScriptI]\[ScriptN]\[ScriptG] <> \ "\<$\>"], 
              Symbol\ @\ 
                \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptCapitalS]\[ScriptT]\[ScriptR]\
\[ScriptI]\[ScriptN]\[ScriptG]]}, \n\t\treleaseMyHold[\n\t\t\t\ \ \
NotationMakeExpression[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
              \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]] := \ 
            HoldComplete\ @\ 
              \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]; \n\t\t\t\tNotationMakeBoxes[
              \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL], 
              \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\  := \ 
            \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]; \n\t\t\t\t\
symbolizedTable\ @\ 
              \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\  := 
            {\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
              \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]}; \n\t\t\t\
\tHoldComplete\ @\ 
            \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(executeSymbolizeSingleInstanceAction[\ 
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptCapitalS]\[ScriptT]\[ScriptR]\[ScriptI]\
\[ScriptN]\[ScriptG]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        RemoveNotationRules] := \n\t
      silentEvaluate\ @\n\t\t\ \ \ With[
          {\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\  = \ 
              myHold\  @@ \ 
                MakeExpression[
                  \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
                  \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]}, \n\t\t\
\t\ \ \ \ \ \ releaseMyHold[\n\t\t\t\t\ \ \ \ \ \ \ NotationMakeExpression[
                \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
                \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\  
              =. \ \ ; \n\t\t\t\t\ \ \ \ \ \ \ NotationMakeBoxes[
                \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL], 
                \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\  
              =. \ ; \n\t\t\t\t\ \ \ \ \ \ \ symbolizedTable\ @\ 
                \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\ \
 =. ]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(executeSymbolizeSingleInstanceAction[\ 
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptCapitalS]\[ScriptT]\[ScriptR]\[ScriptI]\
\[ScriptN]\[ScriptG]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        PrintNotationRules] 
      := \n\t\ With[
        {\[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\[ScriptM]\
\[ScriptB]\[ScriptO]\[ScriptL]\  = 
            Symbol\ @\ 
              \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\[ScriptY]\
\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\[ScriptCapitalS]\[ScriptT]\[ScriptR]\
\[ScriptI]\[ScriptN]\[ScriptG]}, \n\t\treleaseMyHold[\n\ \ \ \ \ \ \ \
CellPrint\ @\ 
            Cell[BoxData\ @\ 
                MakeBoxes[
                  NotationMakeExpression[
                      \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
 := \ HoldComplete\ @\ 
                      \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\
\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL], \ StandardForm], 
              "\<Output\>", 
              ShowStringCharacters -> True]; \n\ \ \ \ \ \ \ CellPrint\ @\ 
            Cell[BoxData\ @\ 
                MakeBoxes[
                  NotationMakeBoxes[
                      \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalS]\
\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL], 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
\  := \ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ StandardForm], 
              "\<Output\>", \ ShowStringCharacters -> True];]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Symbolize::boxSymbolExists\  = \n\t
        "\<Warning: The box structure attempting to be symbolized has a \
similar or identical symbol already defined, possibly overriding previously \
symbolized box structure.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Modify ",
  StyleBox["Remove", "MR"],
  " to take into account the removal of ",
  StyleBox["MakeExpression", "MR"],
  " & ",
  StyleBox["MakeBoxes", "MR"],
  " rules for a symbolized symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(wasProtected\  = \ Unprotect\ @\ Remove;\)\), "\n", 
    \(\(Remove\ @\ 
            \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]_ 
          /; \ ValueQ\ @\ 
            \(symbolizedTable\ @\ 
              \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\)\ \
\ \  := \ \n\ \ \ \ \ \ \ With[
          {\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  = \ 
              \((symbolizedTable\ @\ 
                    \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\
\[ScriptL])\)\[LeftDoubleBracket]1\[RightDoubleBracket], 
            \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\  = 
              \((symbolizedTable\ @\ 
                    \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\
\[ScriptL])\)\[LeftDoubleBracket]2\[RightDoubleBracket]}, \n\ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ MakeExpression[
              \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
              \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\  
            =. \ ; \ \n\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ MakeBoxes[
              \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL], 
              \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\  
            =. \ ; \n\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
symbolizedTable\ @\ 
              \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]\  
            =. ; \n\t\t\t\t\t\t\t\ \ \ \ \ \ \ \ ClearAll\ @\ 
            \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]; \n\t\
\t\t\t\t\t\t\ \ \ \ \ \ \ \ Remove\ @\ 
            \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]\[ScriptO]\[ScriptL]];
      \)\), "\n", 
    \(\(SetAttributes[Remove, ReadProtected];\)\), "\n", 
    \(\(Protect\ @\ \(Evaluate\ @\ wasProtected\);\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(SetAttributes[symbolizedTable, HoldAll];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Symbolize Error Handling Catch All", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Have encountered an unknown error in ",
  StyleBox["Symbolize", "MR"],
  " checking... Report it!"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(createSymbolize[\[ScriptA]\[ScriptL]\[ScriptL]_, 
          \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]___]\  
        := \n\t\ \ \ \((Message[
            Symbolize::unknownProcessingError]; \n\t\t\ \ CellPrint[
            Cell[BoxData[\ 
                colorizeStructuralBoxes[\ \[ScriptA]\[ScriptL]\[ScriptL]\ , \ 
                  1]], "\<Output\>"]]; \n\t\t\ \ HoldComplete\ @\ 
            \(Symbol\ @\ "\<$Failed\>"\))\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Symbolize::unknownProcessingError\  = \ 
        "\<Unknown error occurred in processing the Symbolize definition.     \
   \t\tPlease report this to jasonh@wri.com, Please carefully examine the \
following box structures for spurious characters, weird groupings etc.\>";
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["InfixNotation Implementation", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["setups before the InfixNotation", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Wipe ",
  StyleBox["adjustedOptions", "MR"],
  ". This is purely a speed consideration, since ",
  StyleBox["AbsoluteOptions", "MR"],
  " takes so long to execute its value is cached for the duration of the \
calculation. "
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(InfixNotation[
          \[ScriptA]\[ScriptN]\[ScriptY]\[ScriptCapitalI]\[ScriptN]\[ScriptF]\
\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\
\[ScriptE]\[ScriptS]___] /; 
        \((silentEvaluate\ [\ adjustedOptions\ @\ InfixNotation\  =. \ ]; 
          False)\)\  := \ $Failed\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Check InfixNotation for parsing and valid  options.", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Handle ",
  StyleBox["RemoveInfixNotation", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(RemoveInfixNotation[
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
        \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, \ 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  := 
      InfixNotation[
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
        \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD], 
        Action -> RemoveNotationRules, \ 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The ",
  StyleBox["InfixNotation", "MR"],
  " statement must be created from the palette."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\[ScriptF]\
\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN]\  : \ 
        InfixNotation[
          \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, ___]\  
      := \ \n\ \ \ \((Message[InfixNotation::badInfixNotationBoxes, 
            HoldForm\ @\ 
              \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; \ $Failed)\) 
        /; \n\t\t\t\ Head\ @\ 
            \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  =!= \ 
          NotationBoxTag\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(InfixNotation::badInfixNotationBoxes\  = \ 
        "\<The InfixNotation boxes `1` do not have an embedded NotationBoxTag \
TagBox. The InfixNotation statement `2` may not have been entered using the \
palette, or the embedded TagBox may have been deleted. The embedded TagBox \
ensures correct parsing and retention of proper styling and grouping \
information.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The other arguments of ",
  StyleBox["InfixNotation", "MR"],
  " must be options."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\[ScriptF]\
\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN]\  : \ 
        InfixNotation[
          \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]_, 
          \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, \ ___, 
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN]_, ___]\  
      := \n\ \ \ \((Message[InfixNotation::nonopt, \ 
            HoldForm\ @\ 
              \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 1, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; \ $Failed)\) 
        /; \n\t\tNot\ @\ 
          \(OptionQ\ @\ 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The value of option ",
  StyleBox["Action", "MR"],
  " should be valid."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\[ScriptF]\
\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN]\  : \ 
        InfixNotation[
          \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]_, 
          \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, ___, 
          \((Rule | RuleDelayed)\)[Action, \ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalV]\[ScriptA]\
\[ScriptL]\[ScriptU]\[ScriptE]_], ___]\  
      := \ \n\ \ \ \((Message[InfixNotation::optcrp, \ Action, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalV]\[ScriptA]\
\[ScriptL]\[ScriptU]\[ScriptE], \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; $Failed)\) 
        /; \n\t\tNot\ @\ 
          MatchQ[\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalV]\[ScriptA]\
\[ScriptL]\[ScriptU]\[ScriptE], 
            CreateNotationRules\  | \ RemoveNotationRules\  | \ 
              PrintNotationRules]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(InfixNotation::optcrp\  = \ 
        "\<Value of option \"`1` \[Rule] `2`\" in `3` should be \
CreateNotationRules, RemoveNotationRules or PrintNotationRules.\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The boxes to be ",
  StyleBox["InfixNotation", "MR"],
  " must also not have a head of ",
  StyleBox["RowBox", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\[ScriptF]\
\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN] : \ 
        InfixNotation[\ \ NotationBoxTag\ [\ 
            RowBox\ @\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]___, 
            ___], \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, 
          \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \ \n\t\ \ \ \((Message[InfixNotation::rowBoxHead, \ 
            identityForm\  @@ \ 
              {RowBox\ @\ 
                  \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]}, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; \ $Failed)\) /; \n\t\t\ \ True\n
    \), "\n", 
    \(\(InfixNotation::rowBoxHead\  = \n\t
        "\<The InfixNotation box structure \"`1`\" is not of the right form. \
Structures to be used as an infix operator cannot have a RowBox as their \
head. Examine the full box structures of `2` for possible unintended \
groupings.\>";\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The prefixHead argument to ",
  StyleBox["InfixNotation", "MR"],
  " must be a symbol."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\[ScriptF]\
\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN] : 
        InfixNotation[\ 
          NotationBoxTag\ [
            \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, ___], 
          \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalP]\[ScriptR]\[ScriptE]\
\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_\
, \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \ \n\t\ \ \ \((Message[InfixNotation::badPrefixHead, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalP]\[ScriptR]\
\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\
\[ScriptD], \ 
            identityForm\  @@ \ 
              {\[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]}, 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; \ $Failed)\) 
        /; \n\t\t\t\ Head\ @\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalP]\[ScriptR]\
\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\
\[ScriptD]\  =!= \ Symbol\n\), "\n", 
    \(\(InfixNotation::badPrefixHead\  = \n\t
        "\<In `3`, the prefix head \"`1`\" corresponding to the infix \
operator \"`2`\" is not a symbol.\>";\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The ",
  StyleBox["InfixNotation", "MR"],
  " has been correctly parsed and checked. Now create the ",
  StyleBox["InfixNotation", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(InfixNotation[\ 
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
_, \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \n\t\ \ With[
        {\ \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  
            = \ \ stripNotationBoxTag\ @\ 
              \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]}, \n\t\ \ \ \ \ \ \(createInfixNotation[
            \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
            \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD], \ 
            \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]];\)\n\t\ \ ]\)], "Input",\

  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Have encountered an unknown error in ",
  StyleBox["InfixNotation", "MR"],
  " parsing... Report it!"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(InfixNotation[\[ScriptA]\[ScriptL]\[ScriptL]_, 
          \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]___]\  
        := \n\t\ \ \ \((Message[InfixNotation::unknownParseError, \ 
            identityForm\  @@ \ 
              {\[ScriptA]\[ScriptL]\[ScriptL]}]; \n\t\t\ \ CellPrint[
            Cell[BoxData[\ 
                colorizeStructuralBoxes[\ \[ScriptA]\[ScriptL]\[ScriptL]\ , \ 
                  1]], "\<Output\>"]]; $Failed)\);\)\n\), "\n", 
    \(\t\(InfixNotation::unknownParseError\  = \ 
        "\<Unknown error occurred in parsing the InfixNotation definition \
`1`. Please report this to jasonh@wri.com, Please carefully examine the \
following box structures for spurious characters weird groupings etc.\>";\)\)}
  ], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Definition of ",
  Cell[BoxData[
      \(TraditionalForm
      \`InFixNotation[\ infixOp, prefixOp, precedence, \ opts\ ]\)]]
}], "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["createInfixNotation", "MR"],
  " creates the ",
  StyleBox["MakeExpression", "MR"],
  " and ",
  StyleBox["MakeBoxes", "MR"],
  " rules that create the infix notation."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(createInfixNotation[
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
_, \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ]\  
      := \n\t\ \ With[
        {\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \ \ \ \ \ \ \ \ \
\ \ \  = \ \(WorkingForm\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ 
                InfixNotation, \n\t\t\t\t\t\t\ \ \ \
\[ScriptCapitalA]\[ScriptC]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  = \ 
            \(Action\ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ 
                InfixNotation}, \n\t\t\texecuteInfixNotationAction[
          \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP], 
          \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD], \ 
          effectiveOperator\ @\ 
            \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP], \ 
          \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
          \[ScriptCapitalA]\[ScriptC]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]\
\n\t\t\ \ \ \ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["executeInfixNotationAction", "MR"],
  " enters, removes or prints the ",
  StyleBox["InfixNotation", "MR"],
  " statement depending on action."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(executeInfixNotationAction[
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
_, \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, 
        \[ScriptG]\[ScriptR]\[ScriptO]\[ScriptU]\[ScriptP]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptR]\[ScriptE]\[ScriptC]\[ScriptE]\[ScriptD]\
\[ScriptE]\[ScriptN]\[ScriptC]\[ScriptE]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        CreateNotationRules] 
      := \n\t\ \ \ \ \ \ \ \ \ \ \((NotationMakeExpression[
              RowBox\ @\ \[ScriptA]_, \ 
              \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\  /; \ 
            MemberQ[\[ScriptA], \ 
              \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]]\  
          := \ \n\t\t\t\ \ \ \ \ \ \ \ \ \ \ MakeExpression[
              parseFlatInfix[
                \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD], \ 
                \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP], \ \[ScriptA]], \ 
              \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]] /; 
            appearsInfix[
              \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP], \[ScriptA]]; \n\t\t\ \ \ \ \ \ \ \ \ NotationMakeBoxes[
            \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]\ [\ 
              \[ScriptA]\[ScriptR]\[ScriptG]1_, 
              \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]__], 
            \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]] 
          := \n\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(RowBox\ @\ 
                padList[#, 
                  \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]]\  &\)\ @\ 
            \((\(Parenthesize[#, 
                    \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM], 
                    \[ScriptG]\[ScriptR]\[ScriptO]\[ScriptU]\[ScriptP]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalP]\[ScriptR]\[ScriptE]\[ScriptC]\
\[ScriptE]\[ScriptD]\[ScriptE]\[ScriptN]\[ScriptC]\[ScriptE]]\  &\)\  /@ \ 
                \(Unevaluated\  /@ \ 
                  Unevaluated\ @\ 
                    {\[ScriptA]\[ScriptR]\[ScriptG]1, 
                      \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]}\))\);)\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(executeInfixNotationAction[
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
_, \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, 
        \[ScriptG]\[ScriptR]\[ScriptO]\[ScriptU]\[ScriptP]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptR]\[ScriptE]\[ScriptC]\[ScriptE]\[ScriptD]\
\[ScriptE]\[ScriptN]\[ScriptC]\[ScriptE]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        RemoveNotationRules] := \n\t
      silentEvaluate\ @\n\t\t\ \ \ \((NotationMakeExpression[
                RowBox\ @\ \[ScriptA]_, \ 
                \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\  /; \ 
              MemberQ[\[ScriptA], \ 
                \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]]\  
            =. ; \n\t\t\ \ \ \ \ NotationMakeBoxes[
              \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]\ [\ 
                \[ScriptA]\[ScriptR]\[ScriptG]1_, 
                \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]__], 
              \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]] =. ;)
          \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(executeInfixNotationAction[
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
_, \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, 
        \[ScriptG]\[ScriptR]\[ScriptO]\[ScriptU]\[ScriptP]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptR]\[ScriptE]\[ScriptC]\[ScriptE]\[ScriptD]\
\[ScriptE]\[ScriptN]\[ScriptC]\[ScriptE]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        PrintNotationRules] 
      := \n\ \ \ \ \ \((CellPrint[
          Cell[BoxData[\ 
              MakeBoxes[\n\t\t\t\t\t\tNotationMakeExpression[
                      RowBox\ @\ \[ScriptA]_, \ 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
\  /; \ MemberQ[\[ScriptA], \ 
                      \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptO]\[ScriptP]]\  
                  := \ \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ MakeExpression[
                      parseFlatInfix[
                        \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\
\[ScriptX]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD], \ 
                        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptO]\[ScriptP], \ \[ScriptA]], \ 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
 /; appearsInfix[
                      \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptO]\[ScriptP], \[ScriptA]], \n\t\t\t\t\t\t\ StandardForm]], 
            "\<Output\>", 
            ShowStringCharacters -> True]]; \n\ \ \ \ \ \ \ CellPrint[
          Cell[BoxData[\ 
              MakeBoxes[\n\t\t\t\t\t\tMakeBoxes[
                    \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\
\[ScriptX]\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]\ [\ 
                      \[ScriptA]\[ScriptR]\[ScriptG]1_, 
                      \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]__], 
                    \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]] 
                  := \n\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(RowBox\ @\ 
                        padList[#, 
                          \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptO]\[ScriptP]]\  &\)\ @\ 
                    \((\(Parenthesize[#, 
                            \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM],\
 \[ScriptG]\[ScriptR]\[ScriptO]\[ScriptU]\[ScriptP]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptR]\[ScriptE]\[ScriptC]\[ScriptE]\[ScriptD]\
\[ScriptE]\[ScriptN]\[ScriptC]\[ScriptE]]\  &\)\  /@ \ 
                        \(Unevaluated\  /@ \ 
                          Unevaluated\ @\ 
                            {\[ScriptA]\[ScriptR]\[ScriptG]1, 
                              \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]}\))\), \
\ \n\t\t\t\t\t\tStandardForm]], "\<Output\>", ShowStringCharacters -> True]];)
        \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["parseFlatInfix", "MR"],
  " parses a chain of operands separated by the infix operator"
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \( (*\ 
      Note\ the\ following\ coding\ semi\ breaks\ the\ style\ of\ the\ rest\ \
of\ the\ notebook\ somewhat\ but\ the\ algorithim\ needs\ to\ be\ this\ way\ \
due\ to\ \(\(speed\)\(.\)\)\ *) \)], "Input",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(SetAttributes[{parseFlatInfix, parseFlatInfixAux}, HoldAll];\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(parseFlatInfix[
        \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
_, \ {\[ScriptL]\[ScriptH]\[ScriptS]___, 
          \[ScriptF]\[ScriptI]\[ScriptR]\[ScriptS]\[ScriptT]_?notWhiteSpaceQ, 
          ___?whiteSpaceQ, 
          \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]_, ___?whiteSpaceQ, \[ScriptB]_?notWhiteSpaceQ, 
          \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]___}] := \n\t
      parseFlatInfixAux[
        \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD], \ 
        \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\[ScriptP]\
, \ \[ScriptF]\[ScriptI]\[ScriptR]\[ScriptS]\[ScriptT], 
        {\[ScriptL]\[ScriptH]\[ScriptS]}, 
        {\ \[ScriptB], \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]}]\)], "Input",\

  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(parseFlatInfixAux[
          \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, \ 
          \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP]_, \ \[ScriptF]\[ScriptI]\[ScriptR]\[ScriptS]\[ScriptT]_, 
          {\[ScriptL]\[ScriptH]\[ScriptS]___}, 
          {\ \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]___}] := \n
        Block[{parseOperator, parseArgument, returnAnswer}, \n\t
          SetAttributes[{parseOperator, parseArgument}, HoldAll]; \n\t\n\t
          parseOperator[_?whiteSpaceQ, \ \[ScriptR]___] := 
            parseOperator\ @\ \[ScriptR]; \n\t
          parseOperator[
              \[ScriptI]\[ScriptN]\[ScriptF]\[ScriptI]\[ScriptX]\[ScriptO]\
\[ScriptP], \ \[ScriptR]___] := parseArgument\ @\ \[ScriptR]; \n\t\n\t
          parseArgument[_?whiteSpaceQ, \ \[ScriptR]___] := 
            parseArgument\ @\ \[ScriptR]; \n\t
          parseArgument[\[ScriptA]_, \[ScriptR]___] := 
            Sequence[\ \[ScriptA], parseOperator\ @\ \[ScriptR]]; \n\t\t\n\ 
          returnAnswer\ @\ 
              {\[ScriptP]\[ScriptA]\[ScriptR]\[ScriptS]\[ScriptE]\[ScriptD]__,\
 parseOperator\ @\ \[ScriptR]\[ScriptH]\[ScriptS]___}\  := \ 
            returnFormatedOutput[
              \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD], \ 
              {\[ScriptL]\[ScriptH]\[ScriptS]}, \ 
              {\[ScriptP]\[ScriptA]\[ScriptR]\[ScriptS]\[ScriptE]\[ScriptD]}, 
              {\[ScriptR]\[ScriptH]\[ScriptS]}]; \n\t\t\n
          returnAnswer\ @\ 
            Block[{$RecursionLimit = \[Infinity]}, 
              {\[ScriptF]\[ScriptI]\[ScriptR]\[ScriptS]\[ScriptT], 
                parseArgument\ @\ \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]}]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(appearsInfix[\[ScriptO]\[ScriptP]_, 
        {___, _?notWhiteSpaceQ, ___?whiteSpaceQ, \[ScriptO]\[ScriptP]_, 
          ___?whiteSpaceQ, _?notWhiteSpaceQ, ___}] := True\), "\n", 
    \(appearsInfix\ @\ _\  := False\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(returnFormatedOutput[
        \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, \ 
        {\[ScriptL]\[ScriptH]\[ScriptS]___}, \ 
        {\[ScriptP]\[ScriptA]\[ScriptR]\[ScriptS]\[ScriptE]\[ScriptD]__}, 
        {\[ScriptR]\[ScriptH]\[ScriptS]___}] 
      := \n\t\ \ RowBox\ @\ 
          {\[ScriptL]\[ScriptH]\[ScriptS], 
            RowBox\ @
              {\ ToString\ @\ 
                  \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD], "\<[\>", 
                RowBox\ @\ 
                  padList[
                    {\[ScriptP]\[ScriptA]\[ScriptR]\[ScriptS]\[ScriptE]\
\[ScriptD]}, "\<,\>"], \ "\<]\>"}, \ \[ScriptR]\[ScriptH]\[ScriptS]}\  /; \ 
        {\[ScriptL]\[ScriptH]\[ScriptS], \[ScriptR]\[ScriptH]\[ScriptS]} =!= 
          {}\n\), "\n", 
    \(returnFormatedOutput[
        \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD]_, \ 
        {\[ScriptL]\[ScriptH]\[ScriptS]___}, \ 
        {\[ScriptP]\[ScriptA]\[ScriptR]\[ScriptS]\[ScriptE]\[ScriptD]__}, 
        {\[ScriptR]\[ScriptH]\[ScriptS]___}] 
      := \n\ \ \ \ RowBox\ @
          {\ ToString\ @\ 
              \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptF]\[ScriptI]\[ScriptX]\
\[ScriptCapitalH]\[ScriptE]\[ScriptA]\[ScriptD], "\<[\>", 
            RowBox\ @\ 
              padList[{\[ScriptP]\[ScriptA]\[ScriptR]\[ScriptS]\[ScriptE]\
\[ScriptD]}, "\<,\>"], \ "\<]\>"}\  /; \ 
        {\[ScriptL]\[ScriptH]\[ScriptS], \[ScriptR]\[ScriptH]\[ScriptS]} === 
          {}\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["AddInputAlias and ActiveInputAliases Implementation", "Subsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{

Cell["Check AddInputAlias for parsing and valid  options.", "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{

Cell[TextData[{
  "The ",
  StyleBox["AddInputAlias", "MR"],
  " statement must be created from the palette."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\[ScriptP]\
\[ScriptU]\[ScriptT]\[ScriptCapitalA]\[ScriptL]\[ScriptI]\[ScriptA]\[ScriptS]\
\  : \ AddInputAlias[
          \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\
\[ScriptE]\[ScriptS]_, ___]\  
      := \ \n\ \ \ \((Message[AddInputAlias::badInputAliasBoxes, 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX]\[ScriptE]\[ScriptS], \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptP]\[ScriptU]\[ScriptT]\[ScriptCapitalA]\[ScriptL]\[ScriptI]\[ScriptA]\
\[ScriptS]]; \ $Failed)\) 
        /; \n\t\t\t\ Head\ @\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX]\[ScriptE]\[ScriptS]\  =!= \ NotationBoxTag\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(AddInputAlias::badInputAliasBoxes\  = \ 
        "\<The InputAliasBoxes boxes `1` do not have an embedded \
NotationBoxTag TagBox. The AddInputAlias statement `2` may not have been \
entered using the palette, or the embedded TagBox may have been deleted. The \
embedded TagBox ensures correct parsing and retention of proper styling and \
grouping information.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The second argument of ",
  StyleBox["AddInputAlias", "MR"],
  " must be a string."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\[ScriptP]\
\[ScriptU]\[ScriptT]\[ScriptCapitalA]\[ScriptL]\[ScriptI]\[ScriptA]\[ScriptS]\
\  : \ AddInputAlias[
          \[ScriptF]\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX]\[ScriptE]\[ScriptS]_NotationBoxTag, 
          \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptH]\[ScriptO]\
\[ScriptR]\[ScriptT]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, ___] 
      := \n\ \ \ \((Message[AddInputAlias::badShortForm, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptH]\
\[ScriptO]\[ScriptR]\[ScriptT]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM],\
 \ HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptP]\[ScriptU]\[ScriptT]\[ScriptCapitalA]\[ScriptL]\[ScriptI]\[ScriptA]\
\[ScriptS]]; \ $Failed)\) 
        /; \n\t\tHead\ @\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalS]\[ScriptH]\
\[ScriptO]\[ScriptR]\[ScriptT]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\
\  =!= \ String\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(AddInputAlias::badShortForm\  = \ 
        "\<The short form `1` in the AddInputAlias statement `2` is not a \
string.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The third argument of ",
  StyleBox["AddInputAlias", "MR"],
  " must be a notebook object."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\[ScriptP]\
\[ScriptU]\[ScriptT]\[ScriptCapitalA]\[ScriptL]\[ScriptI]\[ScriptA]\[ScriptS]\
\  : \ AddInputAlias[
          \[ScriptF]\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX]\[ScriptE]\[ScriptS]_NotationBoxTag, 
          \[ScriptS]\[ScriptH]\[ScriptO]\[ScriptR]\[ScriptT]\[ScriptCapitalF]\
\[ScriptO]\[ScriptR]\[ScriptM]_String, 
          \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK]_] 
      := \n\ \ \ \((Message[AddInputAlias::badNotebook, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK], \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptP]\[ScriptU]\[ScriptT]\[ScriptCapitalA]\[ScriptL]\[ScriptI]\[ScriptA]\
\[ScriptS]]; $Failed)\) 
        /; \n\t\tHead\ @\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK]\  =!= \ 
          NotebookObject\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(AddInputAlias::badNotebook\  = \ 
        "\<The third argument of `2` is not a notebook object.\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["AddInputAlias", "MR"],
  " expects 2 or 3 arguments."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          AddInputAlias[___]\ \  := \ 
        With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
              heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
          $Failed\  
            /; \n\t\ \ \ \ \ Which[
              \[ScriptN]\[ScriptU]\[ScriptM]\  == \ 
                1\ , \ \ \ \ \ \ \ \ \ \ Message[AddInputAlias::argtu, 
                HoldForm\ @\ AddInputAlias, 2, 
                3], \ \n\t\ \ \ \ \ \ \ \ \ \ \ \
\[ScriptN]\[ScriptU]\[ScriptM]\  < \ 2\  \[Or] \ 
                \[ScriptN]\[ScriptU]\[ScriptM]\  > 3\ , \ \ Message[
                AddInputAlias::argt, \ HoldForm\ @\ AddInputAlias, 
                \[ScriptN]\[ScriptU]\[ScriptM], 2, 
                3], \n\t\ \ \ \ \ \ \ \ \ \ \ True, \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ False]];\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Definition of ",
  Cell[BoxData[
      \(TraditionalForm
      \`AddInputAlias[\ fullBoxes, shortForm, notebook\ ]\)]]
}], "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{

Cell[TextData[{
  "The ",
  StyleBox["AddInputAlias", "MR"],
  " has been correctly parsed and checked. Now add the alias to the notebook. \
Basically just get the current aliases and add a new one to this list."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(AddInputAlias[
        \[ScriptF]\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX]\[ScriptE]\[ScriptS]_NotationBoxTag, 
        \[ScriptS]\[ScriptH]\[ScriptO]\[ScriptR]\[ScriptT]\[ScriptCapitalF]\
\[ScriptO]\[ScriptR]\[ScriptM]_String, 
        HoldPattern[
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK]_:  SelectedNotebook[]]] := \n
      With[\n\t\t{\[ScriptA]\[ScriptL]\[ScriptI]\[ScriptA]\[ScriptS]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  = \ 
            stripNotationBoxTag\ @
              \[ScriptF]\[ScriptU]\[ScriptL]\[ScriptL]\[ScriptCapitalB]\
\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \n\t\t\t\[ScriptO]\[ScriptL]\
\[ScriptD]\[ScriptCapitalA]\[ScriptL]\[ScriptI]\[ScriptA]\[ScriptS]\[ScriptE]\
\[ScriptS] = 
            \(Options[
                \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK], "\<InputAliases\>"]\)\[LeftDoubleBracket]1, 
              2\[RightDoubleBracket]}, \n\t\tSetOptions[
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK], 
          "\<InputAliases\>" 
            \[Rule] \n\t\t\t\tJoin[
              DeleteCases[
                \[ScriptO]\[ScriptL]\[ScriptD]\[ScriptCapitalA]\[ScriptL]\
\[ScriptI]\[ScriptA]\[ScriptS]\[ScriptE]\[ScriptS], 
                \[ScriptS]\[ScriptH]\[ScriptO]\[ScriptR]\[ScriptT]\
\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM] \[RuleDelayed] _], 
              {\[ScriptS]\[ScriptH]\[ScriptO]\[ScriptR]\[ScriptT]\
\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM] \[RuleDelayed] 
                  \[ScriptA]\[ScriptL]\[ScriptI]\[ScriptA]\[ScriptS]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]}]]]\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Check ActiveInputAliases for parsing and valid  options.", 
  "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{

Cell[TextData[{
  "The first argument of ",
  StyleBox["ActiveInputAliases", "MR"],
  " must be a notebook object."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalA]\[ScriptC]\[ScriptT]\
\[ScriptI]\[ScriptV]\[ScriptE]\[ScriptCapitalI]\[ScriptN]\[ScriptP]\[ScriptU]\
\[ScriptT]\[ScriptCapitalA]\[ScriptL]\[ScriptI]\[ScriptA]\[ScriptS]\[ScriptE]\
\[ScriptS] : \ 
        ActiveInputAliases[
          \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK]_, ___]\  
      := \ \n\ \ \ \((Message[ActiveInputAliases::badNotebook, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK], \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalA]\[ScriptC]\
\[ScriptT]\[ScriptI]\[ScriptV]\[ScriptE]\[ScriptCapitalI]\[ScriptN]\[ScriptP]\
\[ScriptU]\[ScriptT]\[ScriptCapitalA]\[ScriptL]\[ScriptI]\[ScriptA]\[ScriptS]\
\[ScriptE]\[ScriptS]]; \ $Failed)\) 
        /; \n\t\t\t\ Head\ @\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK]\  =!= \ 
          NotebookObject\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(ActiveInputAliases::badNotebook\  = \ 
        "\<The first argument of `2` is not a notebook object.\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["ActiveInputAliases", "MR"],
  " expects zero or one arguments "
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          ActiveInputAliases[_, __]\ \  := \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \ Message[ActiveInputAliases::argt, 
            HoldForm\ @\ ActiveInputAliases, 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 0, 1];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Definition of ",
  Cell[BoxData[
      \(TraditionalForm
      \`ActiveInputAliases[\ fullBoxes, shortForm, notebook\ ]\)]]
}], "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{

Cell[TextData[{
  "The ",
  StyleBox["ActiveInputAliases", "MR"],
  " has been correctly parsed and checked. Now list the active Aliases."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(ActiveInputAliases[
        HoldPattern[
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK]_:  SelectedNotebook[]]] := 
      \(\(Options[
              \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK], "\<InputAliases\>"]\)\[LeftDoubleBracket]1, 
            2\[RightDoubleBracket] // TableForm\) // DisplayForm\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Notation Preprocessing", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["setups before the Notation", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Wipe ",
  StyleBox["adjustedOptions", "MR"],
  ". This is purely a speed consideration, since ",
  StyleBox["AbsoluteOptions", "MR"],
  " takes so long to execute its value is cached for the duration of the \
calculation. "
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(Notation[
          \[ScriptA]\[ScriptN]\[ScriptY]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]___] /; 
        \((silentEvaluate\ [\ adjustedOptions\ @\ Notation\  =. ]\ ; 
          False)\)\  := \ $Failed\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["check Notation for parsing and valid  options.", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Handle ",
  StyleBox["RemoveNotation", "MR"],
  "."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(RemoveNotation[
        \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\
\[ScriptN]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  := 
      Notation[\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\
\[ScriptO]\[ScriptN], Action \[Rule] RemoveNotationRules, \ 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["Warn of legacy use of \[DoubleLeftRightArrow] vs. \
\[DoubleLongLeftRightArrow].", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(Notation[
        \[ScriptO]\[ScriptL]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]_, 
        \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]___]\  := 
      \((Message[Notation::oldNotation]; 
          Notation[
            DoubleLongLeftRightArrow\  @@ \ 
              \[ScriptO]\[ScriptL]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], 
            \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]])\) /; 
        MatchQ[SymbolName\ @\ 
            \(Head\ @\ 
              \[ScriptO]\[ScriptL]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\), \ 
          "\<DoubleLeftRightArrow\>"]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::oldNotation\  = \n\t
        "\<Future versions of the Notation package will no longer support \
\[DoubleLeftRightArrow], instead they will use \[DoubleLongLeftRightArrow]. \
Please make this change to all your Notations.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The main argument to ",
  StyleBox["Notation", "MR"],
  " must be of the form (external notation) arrow (internal notation)."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(validNotationHeads\  = \ 
        \(("\<DoubleLongRightArrow\>" | \ "\<DoubleLongLeftArrow\>" | \ 
            "\<DoubleLongLeftRightArrow\>")\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation[
          \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]_, 
          \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]___]\  
        := \n\t\ \ \ \((Message[Notation::badNotation, 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; $Failed)\) 
          /; \ \ \[Not] MatchQ[
              SymbolName\ @\ 
                \(Head\ @\ 
                  \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\), \ 
              validNotationHeads];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::badNotation\  = \n\t
        "\<The notation \"`1`\" is not of the form \[ScriptE]\[ScriptX]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\
\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS] \[DoubleLongLeftRightArrow] \
\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalE]\[ScriptX]\[ScriptP]\[ScriptR]\[ScriptE]\[ScriptS]\
\[ScriptS]\[ScriptI]\[ScriptO]\[ScriptN] or \[ScriptE]\[ScriptX]\[ScriptT]\
\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX]\[ScriptE]\[ScriptS] \[DoubleLongRightArrow] \[ScriptI]\[ScriptN]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalE]\
\[ScriptX]\[ScriptP]\[ScriptR]\[ScriptE]\[ScriptS]\[ScriptS]\[ScriptI]\
\[ScriptO]\[ScriptN] or \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS] \[DoubleLongLeftArrow] \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalE]\[ScriptX]\[ScriptP]\
\[ScriptR]\[ScriptE]\[ScriptS]\[ScriptS]\[ScriptI]\[ScriptO]\[ScriptN]. \
Examine the full box structures for possible unintended groupings.\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The ",
  StyleBox["Notation", "MR"],
  " statement must be created from the Palette."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\  : \ 
        Notation[
          \[ScriptD]\[ScriptI]\[ScriptR]\[ScriptE]\[ScriptC]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN]_[
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalE]\[ScriptX]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]_, _], 
          \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]___]\  
      := \ \n\ \ \ \((Message[Notation::badExternalNotationBoxes, 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalE]\[ScriptX]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; \ $Failed)\) 
        /; \n\t\t\t\ Head\ @\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalE]\[ScriptX]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\  
          =!= \ NotationBoxTag\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::badExternalNotationBoxes\  = \ 
        "\<The external representation `1` does not have an embedded \
NotationBoxTag TagBox. The Notation statement `2` may not have been entered \
using the palette, or the embedded TagBox may have been deleted. The embedded \
TagBox ensures correct parsing and retention of proper styling and grouping \
information.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\  : \ 
        Notation[
          \[ScriptD]\[ScriptI]\[ScriptR]\[ScriptE]\[ScriptC]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN]_[_, 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]_], 
          \[ScriptR]\[ScriptE]\[ScriptS]\[ScriptT]___]\  
      := \ \n\ \ \ \((Message[Notation::badInternalNotationBoxes, 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; \ $Failed)\) 
        /; \n\t\t\t\ Head\ @\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptN]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\  
          =!= \ NotationBoxTag\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::badInternalNotationBoxes\  = \ 
        "\<The internal representation `1` does not have an embedded \
NotationBoxTag TagBox. The Notation statement `2` may not have been entered \
using the palette, or the embedded TagBox may have been deleted. The embedded \
TagBox ensures correct parsing and retention of proper styling and grouping \
information.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The other arguments of ",
  StyleBox["Notation", "MR"],
  " must be options."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\  : \ 
        Notation[
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\
\[ScriptO]\[ScriptN]_, \ ___, 
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\[ScriptT]\
\[ScriptI]\[ScriptO]\[ScriptN]_, ___]\  
      := \n\ \ \ \((Message[Notation::nonopt, \ 
            HoldForm\ @\ 
              \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 1, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\ ]; $Failed)\) 
        /; \n\t\tNot\ @\ 
          \(OptionQ\ @\ 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "The value of option ",
  StyleBox["Action", "MR"],
  " should be valid."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\  : \ 
        Notation[
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\
\[ScriptO]\[ScriptN]_, \ ___, 
          \((Rule | RuleDelayed)\)[Action, \ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalV]\[ScriptA]\
\[ScriptL]\[ScriptU]\[ScriptE]_], ___]\  
      := \ \n\ \ \ \((Message[Notation::optcrp, \ Action, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalV]\[ScriptA]\
\[ScriptL]\[ScriptU]\[ScriptE], 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; \ $Failed)\) 
        /; \n\t\tNot\ @\ 
          MatchQ[\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalV]\[ScriptA]\
\[ScriptL]\[ScriptU]\[ScriptE], 
            CreateNotationRules\  | \ RemoveNotationRules\  | \ 
              PrintNotationRules]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::optcrp\  = \ 
        "\<Value of option \"`1` \[Rule] `2`\" in `3` should be \
CreateNotationRules, RemoveNotationRules or PrintNotationRules.\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["checkNotationParsing", "MR"],
  " checks that the internal expression argument of ",
  StyleBox["Notation", "MR"],
  " must be a parsable expression."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\  : \ 
          Notation[
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\
\[ScriptO]\[ScriptN]\[ScriptCapitalT]\[ScriptY]\[ScriptP]\[ScriptE]_[
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, 
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_], \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
        := \ \n\t\ \ \ \((Message[Notation::badRepresentationBoxes, 
              HoldForm\ @\ 
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], 
              HoldForm\ @\ 
                \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]]; \ $Failed)\) 
          /; \ silentEvaluate\ @\ 
            \(\[Not] \ 
              parsableQ\ [\ 
                stripNotationBoxTag\ @\ 
                  \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\ , \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]\);\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::badRepresentationBoxes\  
        = \n\t\ "\<Cannot parse the internal representation \"`1`\" occurring \
in `2`\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell["Options have all been checked and are o.k.", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["check form of complex NotationPattern's.", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
Check that the complex external patterns are of the right \
form.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(Notation[
        \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\
\[ScriptN]\[ScriptCapitalT]\[ScriptY]\[ScriptP]\[ScriptE]_[
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, 
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_], \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \n\t\tWith[
        {\[ScriptC]\[ScriptO]\[ScriptM]\[ScriptP]\[ScriptL]\[ScriptE]\
\[ScriptX]\[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS]\  = \ 
            complexPatternsInBoxes[
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], 
              \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]}, \n\t\ \ \ \ \
\((Message[Notation::externalPatternTooComplex, \ 
              HoldForm\  @@ \ 
                First\ @\ 
                  \[ScriptC]\[ScriptO]\[ScriptM]\[ScriptP]\[ScriptL]\[ScriptE]\
\[ScriptX]\[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS], 
              identityForm\  @@ \ 
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\ ]; \n\t\t\ \ \ \ $Failed)\)\  /; \ 
          \[ScriptC]\[ScriptO]\[ScriptM]\[ScriptP]\[ScriptL]\[ScriptE]\
\[ScriptX]\[ScriptCapitalE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS]\  =!= \ {}]\)], "Input",
  Evaluatable->False,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::externalPatternTooComplex\  = \n\t
        "\<Pattern \"`1`\" appearing in the external representation \"`2`\" \
cannot be used since its head is not Optional, Pattern, PatternTest, or \
Condition.\>";\)\)], "Input",
  PageWidth->PaperWidth,
  Evaluatable->False,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
Check that the complex internal patterns are of the right \
form.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(Notation[
        \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\
\[ScriptN]\[ScriptCapitalT]\[ScriptY]\[ScriptP]\[ScriptE]_[
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, 
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_], \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \n\t\tWith[
        {\[ScriptC]\[ScriptO]\[ScriptM]\[ScriptP]\[ScriptL]\[ScriptE]\
\[ScriptX]\[ScriptCapitalI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS]\  = \ 
            complexPatternsInBoxes[
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], 
              \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]}, \n\t\ \ \ \ \
\((Message[Notation::internalPatternTooComplex, \ 
              HoldForm\  @@ \ 
                First\ @\ 
                  \[ScriptC]\[ScriptO]\[ScriptM]\[ScriptP]\[ScriptL]\[ScriptE]\
\[ScriptX]\[ScriptCapitalI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS], 
              identityForm\  @@ \ 
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\ ]; \n\t\t\ \ \ \ $Failed)\)\  /; \ 
          \[ScriptC]\[ScriptO]\[ScriptM]\[ScriptP]\[ScriptL]\[ScriptE]\
\[ScriptX]\[ScriptCapitalI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS]\  =!= \ {}]\)], "Input",
  Evaluatable->False,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::internalPatternTooComplex\  = \n\t
        "\<Pattern \"`1`\" appearing in the internal representation \"`2`\" \
cannot be used since its head is not Optional, Pattern, PatternTest, or \
Condition.\>";\)\)], "Input",
  PageWidth->PaperWidth,
  Evaluatable->False,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Where ",
  StyleBox["complexPatternsInBoxes", "MR"],
  " is defined by."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\(\ 
    \)\(complexPatternsInBoxes\ [\ 
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \n\t\ \ \ Module[
        {\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \  = \ 
            \(WorkingForm\ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ Notation}, \n\t\ \ \ \ \ Union\ @\ 
          Cases[\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  
              //. \n\t\t\t\t\t\ \ \ \ \ \ {HoldPattern[NotationBoxTag]\ @\ 
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
                  \[RuleDelayed] \ 
                  \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \n\t\t\t\t\t\t\ \ \
\ TagBox[\[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                    NotationPatternTag, ___]\  \[RuleDelayed] \ 
                  HoldPattern\  @@ \ 
                    toMyHeldExpression\ [\ 
                      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
, \n\t\t\t\t\t\t\ \ \ TagBox[
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                    NotationMadeBoxesTag, ___]\  \[RuleDelayed] \ 
                  HoldPattern\  @@ \ 
                    toMyHeldExpression\ [\ 
                      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
}, \n\t\t\t\t\ \ \ \ \ \ \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]_HoldPattern 
              /; \((\ headIsNot[singleBlank | doubleBlank | tripleBlank]\  
                  @@ \ \((convertPatterns\ @\ 
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT])\))\), 
            {0, \[Infinity]}]]\)\)\)], "Input",
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["check form of the patterns in the Notation", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
The external and internal patterns now have to be compared to see \
if they are consistent with the notation.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(fullArrowsToShortArrowsRules\  
        = \n\t\ {"\<DoubleLongRightArrow\>"\ \ \ \ \  \[Rule] \ 
            "\<\[DoubleLongRightArrow]\>", \n\t\t\ "\<DoubleLongLeftArrow\>"\ \
\ \ \ \ \  \[Rule] \ 
            "\<\[DoubleLongLeftArrow]\>", \n\t\t\ "\<DoubleLongLeftRightArrow\
\>"\  \[Rule] \ "\<\[DoubleLongLeftRightArrow]\>"};\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(Notation[
        \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\
\[ScriptN]\[ScriptCapitalT]\[ScriptY]\[ScriptP]\[ScriptE]_[
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, 
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_], \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \n\t\t\ checkNotationPatterns[\n\t\t\ \ \ \ \ \ \[ScriptE]\[ScriptX]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL], \ 
        patternsInBoxes\ [
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], \ 
          \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]], \n\t\t\ \ \ \ \ \ \
SymbolName\ @\ 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptA]\[ScriptT]\[ScriptI]\
\[ScriptO]\[ScriptN]\[ScriptCapitalT]\[ScriptY]\[ScriptP]\[ScriptE]\  /. 
          fullArrowsToShortArrowsRules, \n\t\t\ \ \ \ \ \ \
\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL], \ 
        patternsInBoxes\ [
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]], \ 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
where the patterns present in the boxes can be found from the \
following.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\(\ 
    \)\(patternsInBoxes\ [\ 
        \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \n\t\ Module[
        {\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \  = \ 
            \(WorkingForm\ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ Notation}, \n\t\ \ \ \ \ Union\ @\ 
          Cases[\ \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  
              //. \n\t\t\t\t\ \ \ \ \ \ {\ 
                TagBox[\[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                    NotationPatternTag, ___]\  \[RuleDelayed] \ 
                  With[{eval = 
                        convertPatterns\ @\ 
                          toMyHeldExpression\ [\ 
                            \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                            \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
}, eval /; True], \n\t\t\t\t\t\t\ \ \ \ TagBox[
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                    NotationMadeBoxesTag, ___]\  \[RuleDelayed] \ 
                  With[{eval = 
                        convertPatterns\ @\ 
                          toMyHeldExpression\ [\ 
                            \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                            \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
}, eval /; 
                      True], \n\t\t\t\t\t\t\ \ \ \ \ \[ScriptS]\[ScriptT]\
\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]_String\  /; \ 
                    StringMatchQ[
                      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG], "\<*_\>"]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
                  \[RuleDelayed] \ \ \n\t\t\t\t\t\t\t\ \ \ With[
                    {eval = 
                        convertPatterns\ @\ 
                          toMyHeldExpression\ [\ 
                            \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG], \ 
                            \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
}, eval /; True]}, \n\t\t\t\t\ \ \ \ \ \ a_singleBlank | a_doubleBlank | 
                a_tripleBlank | a_complexPattern \[Rule] a, {0, \[Infinity]}]]
        \)\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell[" checkNotationPatterns for free blanks.", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["Free blanks cannot occur in the output.", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(checkNotationPatterns[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ 
        "\<\[DoubleLongLeftArrow]\>"\  | \ 
          "\<\[DoubleLongLeftRightArrow]\>", \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \ \n\t\ \ \((Message[Notation::freePattsInExternalNotation, 
            identityForm\  @@ \ 
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]]\
; \n\t\t\ \ $Failed)\)\  /; \ 
        containsFreeBlanksQ[
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::freePattsInExternalNotation\  = \ 
        "\<All patterns in the external representation must be able to be \
filled.  Free blank patterns found inside the external representation \
\"`1`\".\>";\)\)], "Input",
  PageWidth->WindowWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["Free blanks cannot occur in the input,", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(checkNotationPatterns[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ 
        "\<\[DoubleLongRightArrow]\>"\  | \ 
          "\<\[DoubleLongLeftRightArrow]\>", \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \ \n\t\ \ \((Message[Notation::freePattsInInternalNotation, 
            identityForm\  @@ \ 
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]]\
; \n\t\t\ \ $Failed)\)\  /; \ 
        containsFreeBlanksQ[
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::freePattsInInternalNotation\  = \ 
        "\<All patterns in the internal representation must be able to be \
filled.  Free blank patterns found inside the internal representation \
\"`1`\".\>";\)\)], "Input",
  PageWidth->WindowWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "where ",
  StyleBox["containsFreeBlanksQ", "MR"],
  " is defined by."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(containsFreeBlanksQ\ [\ 
        \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptS]_\ ] 
      := \ \ \ \[Not] \ 
        FreeQ[\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS], \ singleBlank[] | doubleBlank[] | tripleBlank[]]\)], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
 checkNotationPatterns to catch patterns that are not \
fillable.\
\>", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
Check for patterns in the external representation which are not \
being filled.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(checkNotationPatterns[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ 
        "\<\[DoubleLongLeftArrow]\>"\  | \ 
          "\<\[DoubleLongLeftRightArrow]\>", \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \ \n\t\tWith[
        {\[ScriptL]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptR]\[ScriptH]\[ScriptS]\  = \ 
            Complement[\ 
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS]\ , \ 
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS]]}, \n\t\ \ \ \ \((Message[
              Notation::externalPatternNotFilled, \n\t\t\t\t\ \ HoldForm\  
                @@ \ First\ @\ 
                  \[ScriptL]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\
\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptR]\[ScriptH]\[ScriptS],\
 identityForm\  @@ \ 
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 identityForm\  @@ \ 
                
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\ ]; \n\t\t\ \ \ \ $Failed)\)\  /; \ 
          \[ScriptL]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptR]\[ScriptH]\[ScriptS]\  =!= \ 
            {}]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::externalPatternNotFilled\  = \n\t
        "\<Pattern \"`1`\" appearing in the external representation \"`2`\" \
cannot be filled since \"`1`\" does not appear in the internal representation \
\"`3`\".\>";\)\)], "Input",
  PageWidth->PaperWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
Check for patterns in the internal representation which are not \
being filled.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(checkNotationPatterns[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ 
        "\<\[DoubleLongRightArrow]\>"\  | \ 
          "\<\[DoubleLongLeftRightArrow]\>", \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \ \n\t\tWith[
        {\[ScriptR]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptL]\[ScriptH]\[ScriptS]\  = \ 
            Complement[
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS], \ 
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS]]}, \n\t\ \ \ \ \((Message[
              Notation::internalPatternNotFilled, \n\t\t\t\t\ \ HoldForm\  
                @@ \ First\ @\ 
                  \[ScriptR]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\
\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptL]\[ScriptH]\[ScriptS],\
 identityForm\  @@ \ 
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 identityForm\  @@ \ 
                
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\ ]; \n\t\t\ \ \ \ $Failed)\)\  
          /; \ \ \[ScriptR]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\
\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptL]\[ScriptH]\[ScriptS]\
\  =!= \ {}]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::internalPatternNotFilled\  = \n\t
        "\<Pattern \"`1`\" appearing in the internal representation \"`2`\" \
cannot be filled since \"`1`\" does not appear in the external representation \
\"`3`\".\>";\)\)], "Input",
  PageWidth->PaperWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["checkNotationPatterns for patterns that are not used.", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
Check for named patterns in the external representation which are \
not being used.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(checkNotationPatterns[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ "\<\[DoubleLongRightArrow]\>", \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \ \n\t\tWith[
        {\[ScriptL]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptR]\[ScriptH]\[ScriptS]\  = \ 
            Complement[
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS], \ 
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS], 
              {singleBlank[], doubleBlank[], 
                tripleBlank[]}\ ]}, \n\t\t\ \ \ \ $Failed\  /; \ 
          \((\[ScriptL]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\
\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptR]\[ScriptH]\[ScriptS]\
\  =!= \ {})\)\  
            \[And] \ \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ Message[
              Notation::externalPatternsNotUsed, \n\t\t\t\t\t\t\t\t\
\(\((HoldForm\  @@ \ #)\) &\)\  /@ \ 
                \[ScriptL]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\
\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptR]\[ScriptH]\[ScriptS],\
 \n\t\t\t\t\t\t\t\tidentityForm\  @@ \ 
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \n\t\t\t\t\t\t\t\tidentityForm\  @@ \ 
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\ ]\n\t\ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::externalPatternsNotUsed\  = \n\t
        "\<Warning: The pattern(s) \"`1`\" appearing in the external \
representation \"`2`\" are not used in the internal representation \
\"`3`\".\>";\)\)], "Input",
  PageWidth->PaperWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
Check for named patterns in the internal representation which are \
not being used. \
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(checkNotationPatterns[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ "\<\[DoubleLongLeftArrow]\>", \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \ \n\t\tWith[
        {\[ScriptR]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\
\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptL]\[ScriptH]\[ScriptS]\  = \ 
            Complement[
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS], \ 
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptS], \ 
              {singleBlank[], doubleBlank[], 
                tripleBlank[]}\ ]}, \n\t\t\ \ \ \ $Failed\  /; \ 
          \((\[ScriptR]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\
\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptL]\[ScriptH]\[ScriptS]\
\  =!= \ {})\)\  
            \[And] \ \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ Message[
              Notation::internalPatternNotUsed, \n\t\t\t\t\t\ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\((HoldForm\  @@ \ #)\) &\)\  /@ \ 
                \[ScriptR]\[ScriptH]\[ScriptS]\[ScriptCapitalP]\[ScriptA]\
\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptS]\[ScriptCapitalN]\
\[ScriptO]\[ScriptT]\[ScriptCapitalI]\[ScriptN]\[ScriptL]\[ScriptH]\[ScriptS],\
 \n\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ident\
ityForm\  @@ \ 
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \n\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ident\
ityForm\  @@ \ 
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\ ]\n\t\ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::internalPatternNotUsed\  = \n\t
        "\<Warning: The pattern(s) \"`1`\" appearing in the internal \
representation \"`2`\" are not used in the external representation \
\"`3`\".\>";\)\)], "Input",
  PageWidth->PaperWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["checkNotationPatterns for patterns that are too General.", 
  "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
Check for patterns that are too general in the external \
representation.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(checkNotationPatterns[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptT]\[ScriptY]\[ScriptP]\[ScriptE]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \ \n\tWith[
        {\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]\ \ \  = \ 
            boxedStringPatternsToPatterns\ [\ 
              cleanBoxes\  @@ \ 
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \n\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \(WorkingForm\  \[Rule] \ WorkingForm\ \  /. \ 
                  {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
                adjustedOptions\ @\ Notation\ ]\ }, \n\ \ \ \ \((Message[
              Notation::externalPatternToGeneral, 
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS], \ 
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 identityForm\ @\ \[ScriptT]\[ScriptY]\[ScriptP]\[ScriptE], \ 
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]]\
; \n\t\t\t$Failed)\) /; \ 
          patternToGeneralQ\ @\ 
            \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\(Notation::externalPatternToGeneral\  = \ 
        "\<The external pattern `1` appearing in Notation[`2` `3` `4`] is too \
general to be used. Almost anything will match the external pattern \
`1`.\>";\)\(\t\)\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
Check for patterns that are too general in the internal \
representation.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(checkNotationPatterns[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptT]\[ScriptY]\[ScriptP]\[ScriptE]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \ \n\tWith[
        {\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]\ \ \  = \ 
            boxedStringPatternsToPatterns\ [\ 
              cleanBoxes\  @@ \ 
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \n\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \(WorkingForm\  \[Rule] \ WorkingForm\ \  /. \ 
                  {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
                adjustedOptions\ @\ Notation\ ]\ }, \n\ \ \ \ \((Message[
              Notation::internalPatternToGeneral, 
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS], \ 
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 identityForm\ @\ \[ScriptT]\[ScriptY]\[ScriptP]\[ScriptE], \ 
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]]\
; \n\t\t\t$Failed)\) /; \ 
          patternToGeneralQ\ @\ 
            \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptE]\[ScriptD]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\(Notation::internalPatternToGeneral\  = \ 
        "\<The internal pattern `1` appearing in Notation[`2` `3` `4`] is too \
general to be used. Almost anything will match the internal pattern \
`1`.\>";\)\(\t\)\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Definition of Notation.", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
The notation has been correctly parsed and checked. Now create the \
notation.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(checkNotationPatterns[\ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptT]\[ScriptY]\[ScriptP]\[ScriptE]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS]_, \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
      := \ \n\t\ executeNotation[
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
        \[ScriptT]\[ScriptY]\[ScriptP]\[ScriptE], \ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\[ScriptA]\[ScriptL]\[ScriptL]\[ScriptO]\[ScriptK]\  : \ 
        executeNotation[\ 
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, "\<\[DoubleLongLeftRightArrow]\>", 
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \n\t\ \ With[
        {\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\  = \ \ stripNotationBoxTag\ @\ 
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], 
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\  = \ \ stripNotationBoxTag\ @\ 
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]}, \n\t\ \ \ \ \ \ createExternalToInternalRule[
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
          \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]; \n\t\t\ \ \ \ \ \
createInternalToExternalRule[
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
          \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]];\n\t\ \ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptA]\[ScriptL]\[ScriptL]\[ScriptO]\[ScriptK]\  : \ 
          executeNotation[\ 
            \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, "\<\[DoubleLongRightArrow]\>", 
            \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
        := \ \n\t\ \ With[
          {\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\  = \ \ stripNotationBoxTag\ @\ 
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], 
            \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\  = \ \ stripNotationBoxTag\ @\ 
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]}, \n\t\t\ \ \ \ \ createExternalToInternalRule[
            \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
            \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]\n\t\ \ ];\)\)], "Input",\

  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptA]\[ScriptL]\[ScriptL]\[ScriptO]\[ScriptK]\  : \ 
          executeNotation[\ 
            \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, "\<\[DoubleLongLeftArrow]\>", 
            \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\  
        := \ \n\t\ \ With[
          {\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\  = \ \ stripNotationBoxTag\ @\ 
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], 
            \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\  = \ \ stripNotationBoxTag\ @\ 
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]}, \n\t\t\ \ \ \ \ createInternalToExternalRule[
            \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
            \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]\n\t\ \ ];\)\)], "Input",\

  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Notation error handling catch all's.", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
Have encountered an unknown error in notation parsing... Report it!\
\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation[\[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]___]\  
        := \n\t\ \ \ \((Message[
            Notation::unknownParseError]; \n\t\t\ \ StylePrint[
            identityForm\ @\ 
              colorizeStructuralBoxes[\ 
                \(HoldForm[Notation]\)[
                  \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]]\ , \ 
                1], "\<Output\>"]; \n\t\t\ \ $Failed)\);\)\)], "Input",
  PageWidth->Infinity,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\(\t
    \)\(Notation::unknownParseError\  = \ 
        "\<Unknown error occurred in parsing the notation statement. Please \
report this to jasonh@wri.com, Please carefully examine the following box \
structures for spurious characters weird groupings etc.\>";\)\)\)], "Input",
  PageWidth->WindowWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
Have encountered an unknown error in notation pattern checking... \
Report it!\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(checkNotationPatterns[
          \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]___]\  
        := \n\t\ \ \ \((Message[
            Notation::unknownPatternUsageError]; \n\t\t\ \ StylePrint[
            identityForm\ @\ 
              colorizeStructuralBoxes[\ 
                \(HoldForm[Notation]\)[
                  \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]]\ , \ 
                1], "\<Output\>"]; \n\t\t\ \ $Failed)\);\)\)], "Input",
  PageWidth->Infinity,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::unknownPatternUsageError\  = \ 
        "\<Unknown error occurred in checking the pattern used in the \
notation statement. It appears to have parsed ok. Please report this to \
jasonh@wri.com, Please carefully examine the following box structures for \
spurious characters weird groupings etc.\>";\)\)], "Input",
  PageWidth->WindowWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
Have encountered an unknown error in notation execution... Report \
it!\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell["\<\
executeNotation[\[ScriptA]\[ScriptL]\[ScriptL]_,\[ScriptO]\[ScriptT]\
\[ScriptH]\[ScriptE]\[ScriptR]___] :=
\t   (Message[Notation::unknownExecutionError];
\t\t  CellPrint[Cell[BoxData[ colorizeStructuralBoxes[ \[ScriptA]\[ScriptL]\
\[ScriptL] , 1]],\"Output\"]];
\t\t  HoldComplete @ Symbol @ \"$Failed\");\
\>", "Text",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::unknownExecutionError\  = \ 
        "\<Unknown error occurred in executing the notation statement. It \
appears to have parsed and been processed ok. Please report this to \
jasonh@wri.com, Please carefully examine the following box structures for \
spurious characters weird groupings etc.\>";\)\)], "Input",
  PageWidth->WindowWidth,
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Notation InternalToExternal", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["convertInternalPatternsForInternalToExternal", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(convertInternalPatternsForInternalToExternal[
        \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ] 
      := \n\t\ \ With[
        {\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \ \ \ \ \ \ \ \ \
\ \ \  = \ \(WorkingForm\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ 
                Notation}, \n\t\t\t\t\ \ \ \ \ cleanBoxes\ @\ 
            \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\  
          //. \n\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {TagBox[
                \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                NotationPatternTag, ___]\ \ \ \ \ \ \ \ \ \ \  
              \[RuleDelayed] \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \((\ 
                \(MakeBoxes[#, 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
 &\)\  @@ \ toInert\ @\ 
                    toMyHeldExpression[
                      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
)\), \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ TagBox[
                \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                NotationMadeBoxesTag, ___]\ \ \ \ \ \ \ \ \ \ \  
              \[RuleDelayed] \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \((\ 
                \(MakeBoxes[#, 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
 &\)\  @@ \ toInert\ @\ 
                    toMyHeldExpression[
                      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                      \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
)\)}]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["convertInternalBoxesForInternalToExternal", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(convertInternalBoxesForInternalToExternal[
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ] 
      := \n\t\ \ With[
        {\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \ \ \ \ \ \ \ \ \
\ \ \  = \ \(WorkingForm\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ Notation}, \n\t\t\ \ \ \ With[
          {\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  
              = \ \ toMyHeldExpression\ [\ 
                convertInternalPatternsForInternalToExternal\ [\ 
                  \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\
\ , \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]], 
                \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]}, \n\t\t\
\t\t\t\t\ \ fromInert\ @\ 
            \(transformNotationalPatterns\ @\ 
              \(flattenAllMyHold\ @\ 
                \(myHold\ @\ 
                  NotationMakeBoxes\ [\ 
                    \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\ , 
                    \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\)\)\)]]
        \)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["toInert", "MR"],
  " & ",
  StyleBox["fromInert", "MR"],
  " transform all system patterns into inert patterns and back again."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(toInert[expr_] 
      := \n\ \ \ \ expr\  
        /. \ \n\ \ \ \ \ \ \ \ {Pattern\  -> 
            Symbol[Context[] <> 
                "\<inert`Pattern\>"], \n\t\t\t\ \ \ PatternTest\  -> 
            Symbol[Context[] <> 
                "\<inert`PatternTest\>"], \n\t\t\t\ \ \ Condition\  -> 
            Symbol[Context[] <> 
                "\<inert`Condition\>"], \n\t\t\t\ \ \ Alternatives\  -> 
            Symbol[Context[] <> 
                "\<inert`Alternatives\>"], \n\t\t\t\ \ \ Optional\  -> 
            Symbol[Context[] <> 
                "\<inert`Optional\>"], \n\ \ \ \ \ \ \ \ \ \ Repeated\  -> 
            Symbol[Context[] <> 
                "\<inert`Repeated\>"], \n\ \ \ \ \ \ \ \ \ \ RepeatedNull\  -> 
            Symbol[Context[] <> "\<inert`RepeatedNull\>"]}\n\t\t\t\), "\n", 
    \(fromInert[expr_] 
      := \n\ \ \ \ expr\  
        /. \n\t\t\ \ \ {Symbol[Context[] <> "\<inert`Pattern\>"]\  -> \ 
            Pattern\ , \n\t\t\t\ \ \ Symbol[
              Context[] <> "\<inert`PatternTest\>"]\  -> \ 
            PatternTest, \n\t\t\t\ \ \ Symbol[
              Context[] <> "\<inert`Condition\>"]\  -> \ 
            Condition, \n\t\t\t\ \ \ Symbol[
              Context[] <> "\<inert`Alternatives\>"]\  -> \ 
            Alternatives, \n\t\t\t\ \ \ Symbol[
              Context[] <> "\<inert`Optional\>"]\  -> \ 
            Optional, \n\ \ \ \ \ \ \ \ \ \ Symbol[
              Context[] <> "\<inert`Repeated\>"]\  -> \ 
            Repeated, \n\ \ \ \ \ \ \ \ \ \ Symbol[
              Context[] <> "\<inert`RepeatedNull\>"] -> \ RepeatedNull}\n\), 
  "\n", 
    \(\(SetAttributes[inertHold, HoldAll];\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["transformNotationalPatterns", "MR"],
  " transforms all patterns that are not genuine patterns and converts them \
to match literal expressions."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(transformNotationalPatterns[
        \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptS]_] := \ 
      \((\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptS] 
            //. \n\t\tHoldPattern[
                \(HoldPattern[HoldPattern]\)[
                  \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]_]] \[Rule] 
              \(Verbatim[HoldPattern]\)[
                \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]])\) //. \n
        {\(HoldPattern[
                  \(HoldPattern[Pattern]\)[
                    \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptCapitalV]\[ScriptA]\[ScriptR]\[ScriptI]\[ScriptA]\
\[ScriptB]\[ScriptL]\[ScriptE]_, \ 
                    \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptCapitalC]\[ScriptO]\[ScriptN]\[ScriptT]\[ScriptE]\
\[ScriptN]\[ScriptT]_]] 
                /; \n\t\t\t\tNot\ @\ 
                  MatchQ[\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptCapitalC]\[ScriptO]\[ScriptN]\[ScriptT]\[ScriptE]\
\[ScriptN]\[ScriptT], 
                    \(HoldPattern[
                        Blank | BlankSequence | BlankNullSequence]\)[]]\) 
              /; \n\t\t\t\t\((Message[Notation::notationalPatternsUsed, 
                  HoldForm[
                    \(HoldForm\ [\ Pattern]\)[
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptCapitalV]\[ScriptA]\[ScriptR]\[ScriptI]\[ScriptA]\
\[ScriptB]\[ScriptL]\[ScriptE], 
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptCapitalC]\[ScriptO]\[ScriptN]\[ScriptT]\[ScriptE]\
\[ScriptN]\[ScriptT]]]]; True)\) \[Rule] 
            \((patt : Pattern)\)[
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalV]\[ScriptA]\[ScriptR]\[ScriptI]\[ScriptA]\[ScriptB]\
\[ScriptL]\[ScriptE], 
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalC]\[ScriptO]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptN]\
\[ScriptT]], \n\t\t\t\n
          HoldPattern[
                \(HoldPattern[PatternTest]\)[
                  \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]_, 
                  \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalT]\[ScriptE]\[ScriptS]\[ScriptT]_]] 
              /; \n\t\t\t\t\((Message[Notation::notationalPatternsUsed, 
                  HoldForm\ @\ 
                    PatternTest[\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT], 
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\
\[ScriptR]\[ScriptN]\[ScriptCapitalT]\[ScriptE]\[ScriptS]\[ScriptT]]]; 
                True)\) \[Rule] 
            \(HoldPattern[PatternTest]\)[
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT], 
              HoldPattern[
                \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalT]\[ScriptE]\[ScriptS]\[ScriptT]]], \n\t\t\t\n
          HoldPattern[
                \(HoldPattern[Condition]\)[
                  \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]_, 
                  \[ScriptC]\[ScriptO]\[ScriptN]\[ScriptD]_]] 
              /; \n\t\t\t\t\((Message[Notation::notationalPatternsUsed, 
                  HoldForm\ @\ 
                    Condition[\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT], 
                      \[ScriptC]\[ScriptO]\[ScriptN]\[ScriptD]]]; True)\) 
            \[Rule] HoldPattern[
              \(HoldPattern[Condition]\)[
                \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT], 
                \[ScriptC]\[ScriptO]\[ScriptN]\[ScriptD]]], \n\t\t\t\n
          HoldPattern[
                \(HoldPattern[Alternatives]\)[
                  \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]__]] 
              /; \n\t\t\t\t\((Message[Notation::notationalPatternsUsed, 
                  HoldForm\ @\ 
                    \(Alternatives\ @\ 
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\)]; True)\) 
            \[Rule] \(HoldPattern[Alternatives]\)[
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]], \n\t\t\t\n
          HoldPattern[
                \(HoldPattern[Optional]\)[
                  \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]__]] 
              /; \n\t\t\t\t\((Message[Notation::notationalPatternsUsed, 
                  HoldForm\ @\ 
                    \(Optional\ @\ 
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\)]; True)\) 
            \[Rule] \(HoldPattern[Optional]\)[
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]], \n\n
          HoldPattern[
                \(HoldPattern[Repeated]\)[
                  \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]__]] 
              /; \n\t\t\t\t\((Message[Notation::notationalPatternsUsed, 
                  HoldForm\ @\ 
                    \(Repeated\ @\ 
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\)]; True)\) 
            \[Rule] \(HoldPattern[Repeated]\)[
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]], \n\t\t\t\n
          HoldPattern[
                \(HoldPattern[RepeatedNull]\)[
                  \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]__]] 
              /; \n\t\t\t\t\((Message[Notation::notationalPatternsUsed, 
                  HoldForm\ @\ 
                    \(RepeatedNull\ @\ 
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\)]; True)\) 
            \[Rule] \(HoldPattern[RepeatedNull]\)[
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]]}\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(Notation::notationalPatternsUsed\  = \n\t
        "\<Warning: The pattern `1` is being interpreted as a notation and \
not a pattern. Use an embedded NotationPatternTag TagBox wrapper if you want \
this pattern to be treated as a genuine pattern.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["convertExternalPatternsForInternalToExternal", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["convertExternalPatternsForInternalToExternal", "MR"],
  " will take an expression consisting of boxes and convert all patterns \
present in the boxes\[LongDash]patterns that are currently still unparsed \
strings and not yet expressions\[LongDash]and convert them to the \
corresponding patterned expressions, leaving the other boxes alone."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(convertExternalPatternsForInternalToExternal[
        \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ] 
      := \n\t\ \ Module[
        {\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \ \ \ \ \ \ \ \ \
\ \ \  = \ \(WorkingForm\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ 
                Notation}, \n\n\t\ \ \ \ \ \ flattenAllMyHold\ [\ \ myHold\  
            @@ \ \n\t\t\t\ \ \ \ \ \ {\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\
\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]\  //. \n\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ {TagBox[
                      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                      NotationMadeBoxesTag, ___]\ \  
                    \[RuleDelayed] \n\t\t\t\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ myHold\  @@ \ removePatternsAndBlanks\ [\ 
                        complexPattern\  @@ \ 
                          toMyHeldExpression\ [\ 
                            \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                            \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
], \n\t\t\t\t\t\t\t\ \ \ TagBox[
                      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                      NotationPatternTag, ___]\ \  
                    \[RuleDelayed] \n\t\t\t\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ removePatternsAndBlanks\ [\ 
                      complexPattern\  @@ \ 
                        toMyHeldExpression\ [\ 
                          \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \ 
                          \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
], \n\t\t\t\t\t\t\t\ \ \ TagBox[
                      \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                      NotationBoxTag, ___]\ \ \ \ \ \ \ \ \ \ \ \  
                    \[RuleDelayed] \ 
                    \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], \n\t\t\t\
\ \ \ \ \ \ \ \ \ \ \ \ \ \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG]_String\  /; \ StringMatchQ[
                        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG], "\<*_\>"]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  
                    \[RuleDelayed] \ 
                    convertPatterns\ @\ 
                      toMyHeldExpression\ [\ 
                        \[ScriptS]\[ScriptT]\[ScriptR]\[ScriptI]\[ScriptN]\
\[ScriptG], \ 
                        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\
\[ScriptI]\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\
}\n\t\t\t\t\t\ \ \ \ \ \ }\n\t\t\t\ \ \ \ ]\n\t\ \ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
The second argument and beyond of \
convertExternalPatternsForInternalToExternal must be Options.\
\>", 
  "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          convertExternalPatternsForInternalToExternal[_, ___, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]_?\((isNot[_?OptionQ])\), ___]\ \  
        := \ $Failed 
          /; \n\t\ \ \ \ \ \ Message[
            convertExternalPatternsForInternalToExternal::nonopt, \ 
            HoldForm\ @\ 
              \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 1, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["convertExternalBoxesForInternalToExternal", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(convertExternalBoxesForInternalToExternal[
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ] 
      := \n\t\n\ \ \ Module[
        {\[ScriptCapitalC]\[ScriptO]\[ScriptM]\[ScriptM]\[ScriptA]\
\[ScriptCapitalQ]}, \n\t\t\ \ \ \ \ \[ScriptCapitalC]\[ScriptO]\[ScriptM]\
\[ScriptM]\[ScriptA]\[ScriptCapitalQ]["\<,\>" | "\<\[InvisibleComma]\>"] := 
          True; \n\t\t\ \ \ \ \ \[ScriptCapitalC]\[ScriptO]\[ScriptM]\
\[ScriptM]\[ScriptA]\[ScriptCapitalQ]\ @\ 
            \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]_\  := 
          False; \n\t\t\ With\ \ [
          {\[ScriptCapitalR]\[ScriptCapitalB]\  = \ RowBox, \ 
            \[ScriptCapitalB]\  = \ singleBlank, \ 
            \[ScriptCapitalB]\[ScriptCapitalB]\  = \ 
              \((doubleBlank\  | \ tripleBlank)\), \ 
            \[ScriptCapitalC]\[ScriptCapitalP]\  = \ 
              complexPattern, \n\t\t\t\t\ \ \ \ \ \ \ \[ScriptCapitalO]\
\[ScriptP]\[ScriptCapitalQ]\  = \ operatorQ, \ 
            \[ScriptCapitalI]\[ScriptN]\[ScriptCapitalQ]\  = \ 
              infixOperatorQ, \ 
            \[ScriptCapitalP]\[ScriptR]\[ScriptE]\[ScriptCapitalQ]\  = \ 
              prefixOperatorQ, \ 
            \[ScriptCapitalP]\[ScriptO]\[ScriptS]\[ScriptT]\[ScriptCapitalQ]\ \
 = \ postfixOperatorQ, \n\t\t\t\t\ \ \ \ \ \ \ \[ScriptCapitalD]\[ScriptE]\
\[ScriptL]\[ScriptI]\[ScriptM]\[ScriptCapitalQ]\  = \ delimiterQ, \ 
            \[ScriptCapitalE]\[ScriptF]\[ScriptF]\[ScriptCapitalO]\[ScriptP]\ \
 = \ effectiveOperator\ , \ 
            \[ScriptCapitalP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN]\  = \ 
              Parenthesize, \ 
            \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ]\  = \ 
              whiteSpaceQ, \n\t\t\t\t\ \ \ \ \ \ \ \[ScriptF]\[ScriptO]\
\[ScriptR]\[ScriptM]\ \  = \ 
              \(WorkingForm\  /. \ 
                  {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
                adjustedOptions\ @\ 
                  Notation}, \n\t\t\t\t\n\ \ \ \t\ \ \ \ \
convertExternalPatternsForInternalToExternal\ [\ 
              tidyBoxes\ @\ 
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]\ ]\  //. \n\t\t\t\n\t
            {\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \ {\[ScriptL]___, \ 
                    \[ScriptO]\[ScriptP]_?
                      \[ScriptCapitalP]\[ScriptR]\[ScriptE]\[ScriptCapitalQ], \
\ \[ScriptW]___?\[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptR]___}\ \ \  \[RuleDelayed] \ 
                With[{\[ScriptP]\[ScriptR]\[ScriptE]\[ScriptC]\  = \ 
                      \[ScriptCapitalE]\[ScriptF]\[ScriptF]\[ScriptCapitalO]\
\[ScriptP]\ @\ \[ScriptO]\[ScriptP]}, \ 
                  \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                      {\[ScriptL], \ \[ScriptO]\[ScriptP], \ \[ScriptW], \ 
                        \[ScriptCapitalP]\[ScriptA]\[ScriptR]\[ScriptE]\
\[ScriptN][\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB], \ 
                          \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                          \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptC]], \ 
                        \[ScriptR]} /; \ 
                    True], \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \ {\
\[ScriptL]___, \ \[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptO]\[ScriptP]_?
                      \[ScriptCapitalI]\[ScriptN]\[ScriptCapitalQ], \ 
                    \[ScriptR]___}\ \ \  \[RuleDelayed] \ 
                With[{\[ScriptP]\[ScriptR]\[ScriptE]\[ScriptC]\  = \ 
                      \[ScriptCapitalE]\[ScriptF]\[ScriptF]\[ScriptCapitalO]\
\[ScriptP]\ @\ \[ScriptO]\[ScriptP]}, \ 
                  \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                      {\[ScriptL], \ 
                        \[ScriptCapitalP]\[ScriptA]\[ScriptR]\[ScriptE]\
\[ScriptN][\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB], \ 
                          \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                          \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptC]], \ 
                        \[ScriptW], \ \[ScriptO]\[ScriptP], \ \[ScriptR]} 
                    /; \ True], \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \
\ {\[ScriptL]___, \ \[ScriptO]\[ScriptP]_?
                      \[ScriptCapitalI]\[ScriptN]\[ScriptCapitalQ], \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptR]___}\ \ \  \[RuleDelayed] \ 
                With[{\[ScriptP]\[ScriptR]\[ScriptE]\[ScriptC]\  = \ 
                      \[ScriptCapitalE]\[ScriptF]\[ScriptF]\[ScriptCapitalO]\
\[ScriptP]\ @\ \[ScriptO]\[ScriptP]}, \ 
                  \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                      {\[ScriptL], \ \[ScriptO]\[ScriptP], \ \[ScriptW], \ 
                        \[ScriptCapitalP]\[ScriptA]\[ScriptR]\[ScriptE]\
\[ScriptN][\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB], \ 
                          \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                          \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptC]], \ 
                        \[ScriptR]} /; \ 
                    True], \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \ {\
\[ScriptL]___, \ \[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptO]\[ScriptP]_?
                      \[ScriptCapitalP]\[ScriptO]\[ScriptS]\[ScriptT]\
\[ScriptCapitalQ], \ \[ScriptR]___}\ \  \[RuleDelayed] \ 
                With[{\[ScriptP]\[ScriptR]\[ScriptE]\[ScriptC]\  = \ 
                      \[ScriptCapitalE]\[ScriptF]\[ScriptF]\[ScriptCapitalO]\
\[ScriptP]\ @\ \[ScriptO]\[ScriptP]}, \ 
                  \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                      {\[ScriptL], \ 
                        \[ScriptCapitalP]\[ScriptA]\[ScriptR]\[ScriptE]\
\[ScriptN][\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB], \ 
                          \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                          \[ScriptP]\[ScriptR]\[ScriptE]\[ScriptC]], \ 
                        \[ScriptW], \ \[ScriptO]\[ScriptP], \ \[ScriptR]} 
                    /; \ True], \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \
\ {\[ScriptD]1_?
                      \[ScriptCapitalD]\[ScriptE]\[ScriptL]\[ScriptI]\
\[ScriptM]\[ScriptCapitalQ], \ 
                    \[ScriptW]3___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptW]4___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptD]2_?
                      \[ScriptCapitalD]\[ScriptE]\[ScriptL]\[ScriptI]\
\[ScriptM]\[ScriptCapitalQ]}\  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptD]1, \ \[ScriptW]3, \ 
                    MakeBoxes[\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB], \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]], \ 
                    \[ScriptW]4, \ 
                    \[ScriptD]2}, \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\
\ \ {\[ScriptL]__, \ \ \[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptR]___}\ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ 
                    \[ScriptCapitalP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN][
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB], \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ Times], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \
\ {\[ScriptL]___, \ \[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptR]__}\ \ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ 
                    \[ScriptCapitalP]\[ScriptA]\[ScriptR]\[ScriptE]\[ScriptN][
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB], \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ Times], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalB]\ \ @\ \ \[ScriptS]\
\[ScriptY]\[ScriptM]\[ScriptB]_\  \[RuleDelayed] \ 
                MakeBoxes[\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB], \ 
                  \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]], \t\n\t\t\
\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \ {\[ScriptL]___, \ 
                    \[ScriptD]_?
                      \[ScriptCapitalC]\[ScriptO]\[ScriptM]\[ScriptM]\
\[ScriptA]\[ScriptCapitalQ], \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptCapitalB]\[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptR]___}\ \ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ \[ScriptD], \ \[ScriptW], \ 
                    makeHeldSequenceOfBoxes[
                      {\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]}, \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ None], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \
\ {\[ScriptL]___, \ \[ScriptCapitalB]\[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptD]_?
                      \[ScriptCapitalC]\[ScriptO]\[ScriptM]\[ScriptM]\
\[ScriptA]\[ScriptCapitalQ], \ \[ScriptR]___}\ \ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ 
                    makeHeldSequenceOfBoxes[
                      {\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]}, \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ None], \ 
                    \[ScriptW], \ \[ScriptD], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \
\ {\[ScriptL]___, \ \[ScriptD]_?
                      \[ScriptCapitalD]\[ScriptE]\[ScriptL]\[ScriptI]\
\[ScriptM]\[ScriptCapitalQ], \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptCapitalB]\[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptR]___}\ \ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ \[ScriptD], \ \[ScriptW], \ 
                    makeHeldRowBoxOfBoxes[
                      {\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]}, \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ None], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \
\ {\[ScriptL]___, \ \[ScriptCapitalB]\[ScriptCapitalB]\ @\ 
                      \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_, \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptD]_?
                      \[ScriptCapitalD]\[ScriptE]\[ScriptL]\[ScriptI]\
\[ScriptM]\[ScriptCapitalQ], \ \[ScriptR]___}\ \ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ 
                    makeHeldRowBoxOfBoxes[
                      {\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]}, \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ None], \ 
                    \[ScriptW], \ \[ScriptD], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalB]\[ScriptCapitalB]\ @\ \
\ \[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]_\ \ \  \[RuleDelayed] \ 
                makeHeldRowBoxOfBoxes[
                  {\[ScriptS]\[ScriptY]\[ScriptM]\[ScriptB]}, \ 
                  \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                  None], \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \ {\
\[ScriptL]___, \ \[ScriptD]_?
                      \[ScriptCapitalC]\[ScriptO]\[ScriptM]\[ScriptM]\
\[ScriptA]\[ScriptCapitalQ], \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptCapitalC]\[ScriptCapitalP]\ @\ 
                      \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_, \ 
                    \[ScriptR]___}\ \ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ \[ScriptD], \ \[ScriptW], \ 
                    makeEvaluatedSequenceOfBoxes[
                      {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ None], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \
\ {\[ScriptL]___, \ \[ScriptCapitalC]\[ScriptCapitalP]\ @\ 
                      \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_, \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptD]_?
                      \[ScriptCapitalC]\[ScriptO]\[ScriptM]\[ScriptM]\
\[ScriptA]\[ScriptCapitalQ], \ \[ScriptR]___}\ \ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ 
                    makeEvaluatedSequenceOfBoxes[
                      {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ None], \ 
                    \[ScriptW], \ \[ScriptD], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \
\ {\[ScriptL]___, \ \[ScriptD]_?
                      \[ScriptCapitalD]\[ScriptE]\[ScriptL]\[ScriptI]\
\[ScriptM]\[ScriptCapitalQ], \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptCapitalC]\[ScriptCapitalP]\ @\ 
                      \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_, \ 
                    \[ScriptR]___}\ \ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ \[ScriptD], \ \[ScriptW], \ 
                    makeEvaluatedRowBoxOfBoxes[
                      {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ None], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalR]\[ScriptCapitalB]\ @\ \
\ {\[ScriptL]___, \ \[ScriptCapitalC]\[ScriptCapitalP]\ @\ 
                      \[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]_, \ 
                    \[ScriptW]___?
                      \[ScriptCapitalW]\[ScriptH]\[ScriptCapitalQ], \ 
                    \[ScriptD]_?
                      \[ScriptCapitalD]\[ScriptE]\[ScriptL]\[ScriptI]\
\[ScriptM]\[ScriptCapitalQ], \ \[ScriptR]___}\ \ \  
                \[RuleDelayed] \ \ \[ScriptCapitalR]\[ScriptCapitalB]\ @\ 
                  {\[ScriptL], \ 
                    makeEvaluatedRowBoxOfBoxes[
                      {\[ScriptE]\[ScriptX]\[ScriptP]\[ScriptR]}, \ 
                      \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ None], \ 
                    \[ScriptW], \ \[ScriptD], \ 
                    \[ScriptR]}, \n\t\t\[ScriptCapitalC]\[ScriptCapitalP]\ @\ \
\ \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]_\ \ \  \[RuleDelayed] \ 
                makeEvaluatedRowBoxOfBoxes[
                  {\[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]}, \ 
                  \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM], \ None]}\n\t\t\t]]
        \)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["\<\
The 2nd argument and beyond of \
convertExternalBoxesForInternalToExternal must be Options.\
\>", "CommentText",\

  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          convertExternalBoxesForInternalToExternal[_, ___, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]_?\((isNot[_?OptionQ])\), ___]\ \  
        := \ $Failed 
          /; \n\t\ \ \ \ \ \ Message[
            convertExternalBoxesForInternalToExternal::nonopt, \ 
            HoldForm\ @\ 
              \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 1, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Definition of createInternalToExternalRule", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "This creates a ",
  StyleBox["MakeBoxes", "MR"],
  " rule that will format an internal expression into an external box \
structure."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(createInternalToExternalRule[
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] 
      := \n\t\ \ With[
        {\[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  = \ 
            convertExternalBoxesForInternalToExternal\ [\ 
              \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]\ ], \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \
\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\  = \ 
            convertInternalBoxesForInternalToExternal\ [\ 
              \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]\ ], \n\t\t\t\ \ \ \ \ \t\ \ \ \ \
\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \  = \ 
            \(WorkingForm\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ 
                Notation, \n\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \[ScriptCapitalA]\
\[ScriptC]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
 = \ \(Action\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  /. \ 
                {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
              adjustedOptions\ @\ 
                Notation}, \n\t\t\t\ \ \ \ \ \ \ \ \ \ \ \
\(executeInternalToExternalAction[
            \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], \ 
            \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], \ 
            \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
            \[ScriptCapitalA]\[ScriptC]\[ScriptT]\[ScriptI]\[ScriptO]\
\[ScriptN]];\)\n\t\ \ ]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
This determines if the rule should be entered, removed or \
printed.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(executeInternalToExternalAction[\ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]_\ , \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        CreateNotationRules] 
      := \n\t\ \ \ releaseMyHold[\ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\  := \ 
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\ ]\n\), "\n", 
    \(executeInternalToExternalAction[\ 
        \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]_\ , \ 
        \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]_\ , \ 
        \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
        RemoveNotationRules] 
      := \n\t\ \ releaseMyHold[\ 
        silentEvaluate\ @\ 
          \((\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  =. \ )\)]\n\), "\n", 
    \(\(executeInternalToExternalAction[\ 
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_\ , \ 
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_\ , \ 
          \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
          PrintNotationRules] 
        := \n\t\ \ releaseMyHold\ @\ 
          \(CellPrint\ @\ 
            Cell[BoxData\ @\ 
                MakeBoxes[
                  \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  := \ 
                    \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL], \ StandardForm], "\<Output\>", 
              ShowStringCharacters -> True]\);\)\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Notation ExternalToInternal", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["convertInternalPatternsForExternalToInternal", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["convertInternalPatternsForExternalToInternal", "MR",
    FontFamily->"Helvetica"],
  StyleBox[
  " will take an expression consisting of boxes and convert all patterns \
present in the boxes\[LongDash]patterns that are currently still unparsed \
strings and not yet expressions\[LongDash]and convert them to the \
corresponding naked patterned variables stripping out the pattern content , \
leaving all other boxes alone.",
    FontFamily->"Helvetica"]
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(convertInternalPatternsForExternalToInternal[
        \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
        \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ] 
      := \n\t\t\ \ \ convertPatterns\ @\ 
          \(flattenAllMyHold\ @\ 
            boxedStringPatternsToPatterns[
              \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
              \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]\) 
        //. \n\t\t\t\ \ \ \ \ \ {singleBlank\ @\ \[ScriptA]_\  \[Rule] \ 
            \[ScriptA], \t
          doubleBlank\ @\ \[ScriptA]_\  \[RuleDelayed] \ 
            stripSpuriousRowBox\ @\ \[ScriptA], \t
          tripleBlank\ @\ \[ScriptA]_\  \[RuleDelayed] \ 
            stripSpuriousRowBox\ @\ \[ScriptA], \ 
          complexPattern\ \ @\ \[ScriptA]_\  \[RuleDelayed] \ 
            stripSpuriousRowBox\ @\ \[ScriptA]}\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
The 2nd argument and beyond of \
convertInternalPatternsForExternalToInternal must be Options.\
\>", 
  "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          convertInternalPatternsForExternalToInternal[_, ___, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]_?\((isNot[_?OptionQ])\), ___]\ \  
        := \ $Failed 
          /; \n\t\ \ \ \ \ \ Message[
            convertInternalPatternsForExternalToInternal::nonopt, \ 
            HoldForm\ @\ 
              \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 1, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(stripSpuriousRowBox\ @\ 
          \(RowBox\ @\ {\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]___}\) /; 
        MemberQ[{\[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]}, \ 
          "\<,\>"\  | \ "\<\[InvisibleComma]\>"]\  := \ 
      \[ScriptA]\[ScriptR]\[ScriptG]\[ScriptS]\), "\n", 
    \(stripSpuriousRowBox\ @\ 
        \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]___\  := \ 
      \[ScriptO]\[ScriptT]\[ScriptH]\[ScriptE]\[ScriptR]\)}], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["convertInternalBoxesForExternalToInternal", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    RowBox[{
      RowBox[{
      \(convertInternalBoxesForExternalToInternal[
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\
, \ \[ScriptH]\[ScriptE]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptS]\
\[ScriptCapitalR]\[ScriptO]\[ScriptW]\[ScriptCapitalB]\[ScriptO]\[ScriptX]_, \
\ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ]\), ":=", "\n", 
        StyleBox[
          RowBox[{"\t  ", 
            StyleBox["\t",
              FontColor->GrayLevel[0.500008]]}]], 
        \(With[{\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  = \ 
              convertInternalPatternsForExternalToInternal\ [\ 
                cleanBoxes\ @\ 
                  \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]\ ], \n\t\t\t\t\t\ \ \ \ \
\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \  = \ 
              \(WorkingForm\ \  /. \ 
                  {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
                adjustedOptions\ @\ Notation}, \n\t\t\ \ \ \ \ \ \ \ \ If[
            \[ScriptH]\[ScriptE]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\
\[ScriptS]\[ScriptCapitalR]\[ScriptO]\[ScriptW]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX], \n\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ myHold\ @\ 
              MakeExpression[
                RowBox[{l, 
                    \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL], r}], 
                \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]], \n\t\t\t\
\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ myHold\ @\ 
              MakeExpression[
                \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], 
                \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]]]\)}], 
      ";"}]], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["convertExternalPatternsForExternalToInternal", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["convertExternalPatternsForExternalToInternal", "MR"],
  " will take an expression consisting of boxes and convert all patterns \
present in the boxes\[LongDash]patterns that are currently still unparsed \
strings and not yet expressions\[LongDash]and convert them to the \
corresponding patterned expressions, leaving the other boxes alone."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(convertExternalPatternsForExternalToInternal[
          \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
          \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ] 
        := \n\t\ \ \ boxedStringPatternsToPatterns[
          \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
          \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
The 2nd argument and beyond of \
convertExternalPatternsForExternalToInternal must be Options.\
\>", 
  "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          convertExternalPatternsForExternalToInternal[_, ___, 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]_?\((isNot[_?OptionQ])\), ___]\ \  
        := \ $Failed 
          /; \n\t\ \ \ \ \ \ Message[
            convertExternalPatternsForExternalToInternal::nonopt, \ 
            HoldForm\ @\ 
              \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptCapitalO]\[ScriptP]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN], \ 1, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["convertExternalBoxesForExternalToInternal", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    RowBox[{
      RowBox[{
      \(convertExternalBoxesForExternalToInternal[
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\
, \ \[ScriptH]\[ScriptE]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\[ScriptS]\
\[ScriptCapitalR]\[ScriptO]\[ScriptW]\[ScriptCapitalB]\[ScriptO]\[ScriptX]_, \
\ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ]\), ":=", "\n", 
        StyleBox[
          RowBox[{"\t  ", 
            StyleBox["\t",
              FontColor->GrayLevel[0.500008]]}]], 
        \(With[{\[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  = \ 
              convertExternalPatternsForExternalToInternal\ [\ 
                cleanBoxes\ @\ 
                  \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS],\
 \ \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]\ ], \n\t\t\t\t\t\ \ \ \ \
\[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\[ScriptG]\
\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \  = \ 
              \(WorkingForm\ \  /. \ 
                  {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
                adjustedOptions\ @\ Notation}, \n\t\t\ \ \ \ \ \ \ \ \ If[
            \[ScriptH]\[ScriptE]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\
\[ScriptS]\[ScriptCapitalR]\[ScriptO]\[ScriptW]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX], \n\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ With[
              {\[ScriptN]\[ScriptE]\[ScriptW]\[ScriptE]\[ScriptX]\[ScriptT]\
\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL]\  = \ 
                  RowBox\ @\ 
                    {l___, Sequence\  @@ \ 
                        \(Sequence\  @@ \ 
                          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\), 
                      r___}}, \n\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
myHold\ @\ NotationMakeExpression[
                  \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptE]\[ScriptX]\[ScriptT]\
\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\[ScriptL], \ 
                  \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]], \n\t\t\
\t\ \ \ \ \ \ \ \ \ \ \ \ \ \ myHold\ @\ 
              NotationMakeExpression[
                \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], \ 
                \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]]\n\t\t\t\t\
\ \ \ \ \ \ ]\n\t\ \ ]\)}], ";"}]], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["Definition of createExternalToInternalRule", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "This creates a ",
  StyleBox["MakeExpression", "MR"],
  " rule that will parse an external box structure into an internal box \
structure."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    RowBox[{
      RowBox[{
      \(createExternalToInternalRule[
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_\
, \ \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\[ScriptA]\
\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
          \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___]\), ":=", "\n", 
        "\t   ", 
        RowBox[{"With", "[", 
          RowBox[{
          \({\[ScriptH]\[ScriptE]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\
\[ScriptS]\[ScriptCapitalR]\[ScriptO]\[ScriptW]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX]\  = \ 
                \((Head\ @\ 
                      \(convertExternalPatternsForExternalToInternal\ @\ 
                        \(cleanBoxes\ @\ 
                          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS]\)\)\  === \ RowBox)\)}\), ",", "\n", 
            StyleBox[
              RowBox[{"\t  ", 
                StyleBox["\t",
                  FontColor->GrayLevel[0.500008]]}]], 
            \(With[{\[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\  = \ 
                  convertInternalBoxesForExternalToInternal\ [\ 
                    \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS], \ 
                    \[ScriptH]\[ScriptE]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\
\[ScriptS]\[ScriptCapitalR]\[ScriptO]\[ScriptW]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX], \ 
                    \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]\ ], \n\t\t\t\t\ \
\t\t\t\ \ \ \ \ \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  = \ 
                  convertExternalBoxesForExternalToInternal\ [\ 
                    \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL]\[ScriptCapitalB]\[ScriptO]\[ScriptX]\[ScriptE]\
\[ScriptS], \ 
                    \[ScriptH]\[ScriptE]\[ScriptA]\[ScriptD]\[ScriptCapitalI]\
\[ScriptS]\[ScriptCapitalR]\[ScriptO]\[ScriptW]\[ScriptCapitalB]\[ScriptO]\
\[ScriptX], \ 
                    \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]\ ], \n\t\t\t\ \t\
\t\ \ \ \ \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]\ \ \  = \ 
                  \(WorkingForm\ \  /. \ 
                      {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
                    adjustedOptions\ @\ 
                      Notation, \n\t\t\t\t\ \ \ \ \ \ \ \ \[ScriptCapitalA]\
\[ScriptC]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\ \ \ \ \ \ \ \  = \ 
                  \(Action\ \ \ \ \ \ \  /. \ 
                      {\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}\)\  /. \ 
                    adjustedOptions\ @\ 
                      Notation}, \n\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \
\(executeExternalToInternalAction[
                  \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], \ 
                  \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL], \ 
                  \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\
\[ScriptN]\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM], \ 
                  \[ScriptCapitalA]\[ScriptC]\[ScriptT]\[ScriptI]\[ScriptO]\
\[ScriptN]];\)\n\t\ \ ]\)}], "]"}]}], ";"}]], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
This determines if the rule should be entered, removed or \
printed.\
\>", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(executeExternalToInternalAction[\ 
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, \ 
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_\ , \ 
          \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
          CreateNotationRules] := \n\t
        releaseMyHold[\ 
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  := \ 
            \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\ ];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(executeExternalToInternalAction[\ 
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, \ 
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_\ , \ 
          \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
          RemoveNotationRules] := \n\t
        releaseMyHold[
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  =. \ ];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(executeExternalToInternalAction[\ 
          \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_, \ 
          \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]_\ , \ 
          \[ScriptCapitalW]\[ScriptO]\[ScriptR]\[ScriptK]\[ScriptI]\[ScriptN]\
\[ScriptG]\[ScriptCapitalF]\[ScriptO]\[ScriptR]\[ScriptM]_, \ 
          PrintNotationRules] 
        := \n\t\ releaseMyHold\ @\ 
          \(CellPrint\ @\ 
            Cell[BoxData\ @\ 
                MakeBoxes[
                  \[ScriptE]\[ScriptX]\[ScriptT]\[ScriptE]\[ScriptR]\[ScriptN]\
\[ScriptA]\[ScriptL]\  := \ 
                    \[ScriptI]\[ScriptN]\[ScriptT]\[ScriptE]\[ScriptR]\
\[ScriptN]\[ScriptA]\[ScriptL], \ StandardForm], "\<Output\>", 
              ShowStringCharacters -> True]\);\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Utilities for the Package and Cleanups", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["ClearNotations", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "This function removes all definitions for ",
  StyleBox["MakeBoxes", "MR"],
  " and ",
  StyleBox["MakeExpression", "MR"],
  ", leaving only the definitions of this package, Notation.m. Use this \
function to reset the notation handling to a pristine state."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(If[$NewVersion, \n\t\n\t
      ClearNotations[]\  
        := \n\t\ \ \((Clear[NotationMakeExpression, NotationMakeBoxes]; 
          NotationMakeExpression[
              TagBox[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
                NotationBoxTag, 
                \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___], \ 
              \[ScriptA]\[ScriptN]\[ScriptY]_]\  := \ 
            HoldComplete\ @\ 
              \(NotationBoxTag\ @\ 
                \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\); \n\t\t\t\
NotationMakeBoxes[NotationBoxTag[\[ScriptA]\[ScriptN]\[ScriptY]__], \ 
              \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_] := \ 
            TagBox[\[ScriptA]\[ScriptN]\[ScriptY], NotationBoxTag, 
              TagStyle \[Rule] 
                "\<NotationTemplateStyle\>"]; \n\t\t\tNotationMakeBoxes[
              identityForm[\[ScriptA]\[ScriptN]\[ScriptY]___], \ 
              \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_] := \ 
            \[ScriptA]\[ScriptN]\[ScriptY];)\), \n\t\n\t
      ClearNotations[]\  
        := \n\t\ \ \((Clear[NotationMakeExpression, 
            NotationMakeBoxes]; \n\t\t\tNotationMakeExpression[
              TagBox[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, \ 
                NotationBoxTag, 
                \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___], \ 
              \[ScriptA]\[ScriptN]\[ScriptY]_]\  := \ 
            HoldComplete\ @\ 
              \(NotationBoxTag\ @\ 
                \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]\); \n\t\t\t\
NotationMakeBoxes[NotationBoxTag[\[ScriptA]\[ScriptN]\[ScriptY]__], \ 
              \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_] := \ 
            TagBox[\[ScriptA]\[ScriptN]\[ScriptY], 
              NotationBoxTag]; \n\t\t\tNotationMakeBoxes[
              identityForm[\[ScriptA]\[ScriptN]\[ScriptY]___], \ 
              \[ScriptF]\[ScriptO]\[ScriptR]\[ScriptM]_] := \ 
            \[ScriptA]\[ScriptN]\[ScriptY];)\)\n]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["ClearNotations", "MR"],
  " expects no arguments."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[{
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          ClearNotations[_]\ \ \  := \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \ Message[ClearNotations::argr, 
            HoldForm\ @\ ClearNotations, 0];\)\), "\n", 
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          ClearNotations[_, __]\ \  := \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \ Message[ClearNotations::argrx, 
            HoldForm\ @\ ClearNotations, 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 0];\)\)}], 
  "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["UpdateNotebookStyles", "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["UpdateNotebookStyles", "MR"],
  " will ensure ",
  "the Notation styles are part of the Style Sheet ",
  "add the new notation styles to the style sheet if not. It will also add \
aliases for ",
  StyleBox["Notation", "MR"],
  ", ",
  StyleBox["Symbolize", "MR"],
  ", ",
  StyleBox["InfixNotation", "MR"],
  ", and ",
  StyleBox["AddInputAlias", "MR"],
  ". "
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(UpdateNotebookStyles[] := UpdateNotebookStyles[SelectedNotebook[]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(UpdateNotebookStyles[
        \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\
\[ScriptK]_NotebookObject] := \ \n\n\t
      If[AddStylesToNotebook[notationPackageStyles, 
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK]], \n\n\t
        SelectionMove[MessagesNotebook[], After, Notebook]; \n\t
        NotebookWrite[MessagesNotebook[], 
          Cell[TextData\ @\ \n\t\tStyleBox[
                "\<Adding the Notation styles to the current style sheet. You \
might want to execute the command UpdateNotationsInNotebook[] to update any \
legacy notations present in the current notebook.\>", \ "\<Message\>"], \ 
            "\<Output\>", 
            CellLabel \[Rule] \ 
              "\<From In[\>" <> ToString\ @\ $Line <> "\<]:=\>"]]; \t\n\t
        SetOptions[MessagesNotebook[], Visible \[Rule] True]; \n\t\n\t
        AddInputAlias[
          NotationBoxTag @@ 
            {RowBox[{"\<Notation\>", "\<[\>", 
                  RowBox[{TagBox["\<\[Placeholder]\>", NotationBoxTag, 
                        TagStyle \[Rule] "\<NotationTemplateStyle\>"], 
                      "\< \>", "\<\[DoubleLongLeftRightArrow]\>", "\< \>", 
                      TagBox["\<\[Placeholder]\>", NotationBoxTag, 
                        TagStyle \[Rule] "\<NotationTemplateStyle\>"]}], 
                  "\<]\>"}]}, "\<notation\>"]; \n\t\t\n\t
        AddInputAlias[
          NotationBoxTag @@ 
            {RowBox[{"\<Notation\>", "\<[\>", 
                  RowBox[{TagBox["\<\[Placeholder]\>", NotationBoxTag, 
                        TagStyle \[Rule] "\<NotationTemplateStyle\>"], 
                      "\< \>", "\<\[DoubleLongRightArrow]\>", "\< \>", 
                      TagBox["\<\[Placeholder]\>", NotationBoxTag, 
                        TagStyle \[Rule] "\<NotationTemplateStyle\>"]}], 
                  "\<]\>"}]}, "\<notation>\>"]; \n\t\t\n\t
        AddInputAlias[
          NotationBoxTag @@ 
            {RowBox[{"\<Notation\>", "\<[\>", 
                  RowBox[{TagBox["\<\[Placeholder]\>", NotationBoxTag, 
                        TagStyle \[Rule] "\<NotationTemplateStyle\>"], 
                      "\< \>", "\<\[DoubleLongLeftArrow]\>", "\< \>", 
                      TagBox["\<\[Placeholder]\>", NotationBoxTag, 
                        TagStyle \[Rule] "\<NotationTemplateStyle\>"]}], 
                  "\<]\>"}]}, "\<notation<\>"]; \n\t\t\n\t
        AddInputAlias[
          NotationBoxTag @@ 
            {RowBox[{"\<Symbolize\>", "\<[\>", 
                  TagBox["\<\[Placeholder]\>", NotationBoxTag, 
                    TagStyle \[Rule] "\<NotationTemplateStyle\>"], 
                  "\<]\>"}]}, "\<symb\>"]; \n\t\t\n\t
        AddInputAlias[
          NotationBoxTag @@ 
            {RowBox[{"\<InfixNotation\>", "\<[\>", 
                  RowBox[{TagBox["\<\[Placeholder]\>", NotationBoxTag, 
                        TagStyle \[Rule] "\<NotationTemplateStyle\>"], 
                      "\<,\>", "\<\[Placeholder]\>"}], "\<]\>"}]}, 
          "\<infixnotation\>"]; \n\t\t\n\t
        AddInputAlias[
          NotationBoxTag @@ 
            {RowBox[{"\<AddInputAlias\>", "\<[\>", 
                  RowBox[{TagBox["\<\[Placeholder]\>", NotationBoxTag, 
                        TagStyle \[Rule] "\<NotationTemplateStyle\>"], 
                      "\<,\>", "\<\[Placeholder]\>"}], "\<]\>"}]}, 
          "\<addia\>"]; \n\n\t
        AddInputAlias[\ 
          NotationBoxTag @@ 
            {TagBox["\<\[Placeholder]\>", \ 
                NotationPatternTag, \ \n\ \ \ \ \ \ \ \ \ \ TagStyle\  -> \ 
                  "\<NotationPatternWrapperStyle\>"]}, \ 
          "\<pattwraper\>"]; \n\t\t\n\t
        AddInputAlias[\ 
          NotationBoxTag @@ 
            {TagBox["\<\[Placeholder]\>", \ 
                NotationMadeBoxesTag, \ \n\ \ \ \ \ \ \ \ \ \ TagStyle\  -> \ 
                  "\<NotationMadeBoxesWrapperStyle\>"]}, \ 
          "\<madeboxeswraper\>"];\n\n\t]\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
    FormBox[
      RowBox[{"The", " ", "1", "st", " ", "argument", " ", "of", " ", 
        StyleBox["UpdateNotebookStyles",
          "MR"], " ", "must", " ", "be", " ", "a", " ", 
        StyleBox["Cell",
          "MR"]}], TextForm]], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          UpdateNotebookStyles[
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalA]\[ScriptR]\
\[ScriptG]_?\((headIsNot[NotebookObject])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[UpdateNotebookStyles::badarg, \ 
            NotebookObject, \ 1, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
    FormBox[
      RowBox[{
        RowBox[{
          StyleBox["UpdateNotebookStyles",
            "MR"], " ", "expects", " ", "zero", " ", "or", " ", "one", " ", 
          "arguments"}], " "}], TextForm]], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          UpdateNotebookStyles[_, __]\ \  := \ 
        $Failed\  
          /; \n\t\ \ \ \ \ \ Message[UpdateNotebookStyles::argt, 
            HoldForm\ @\ UpdateNotebookStyles, 
            heldLength\ @\ 
              \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR], 0, 1];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["AddStylesToNotebook", "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{

Cell[BoxData[
    FormBox[
      RowBox[{"The", " ", "1", "st", " ", "argument", " ", "of", " ", 
        StyleBox["AddStylesToNotebook",
          "MR"], " ", "must", " ", "be", " ", "a", " ", 
        StyleBox["Cell",
          "MR"]}], TextForm]], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          AddStylesToNotebook[
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalA]\[ScriptR]\
\[ScriptG]_?\((headIsNot[Cell])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[AddStylesToNotebook::badarg, \ 
            Cell, \ 1, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
    FormBox[
      RowBox[{
        RowBox[{"The", " ", "2", "nd", " ", "argument", " ", "of", " ", 
          StyleBox["AddStylesToNotebook",
            "MR"], " ", "must", " ", "be", " ", "a", " ", 
          StyleBox["NotebookObject",
            "MR"]}], " "}], TextForm]], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          AddStylesToNotebook[_, 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalA]\[ScriptR]\
\[ScriptG]_?\((headIsNot[NotebookObject])\), ___]\ \  := \ 
        $Failed /; \n\t\ \ \ \ \ \ Message[AddStylesToNotebook::badarg, \ 
            NotebookObject, \ 2, \ 
            HoldForm\ @\ \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
    FormBox[
      RowBox[{
        RowBox[{"The", " ", "3", "rd", " ", "argument", " ", "of", " ", 
          StyleBox["AddStylesToNotebook",
            "MR"], " ", "must", " ", "be", " ", "a", " ", 
          StyleBox["Notebook",
            "MR"]}], " "}], TextForm]], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          AddStylesToNotebook[_, _, 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalA]\[ScriptR]\
\[ScriptG]_?\((headIsNot[Notebook])\), ___]\ \  := 
        $Failed /; \n\t\ \ \ \ \ \ Message[AddStylesToNotebook::badarg, \ 
            Notebook, \ 3, \ 
            HoldForm@\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]];
      \)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
    FormBox[
      RowBox[{
        RowBox[{
          StyleBox["AddStylesToNotebook",
            "MR"], " ", "expects", " ", "between", " ", "1", " ", "and", " ", 
          "3", "arguments"}], " "}], TextForm]], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\  : 
          AddStylesToNotebook[___]\ \  := \ 
        With[{\[ScriptN]\[ScriptU]\[ScriptM]\  = \ 
              heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]}, \ 
          $Failed\  
            /; \n\t\ \ \ \ \ Which[
              1\  > \ \[ScriptN]\[ScriptU]\[ScriptM]\  \[Or] \ 
                \[ScriptN]\[ScriptU]\[ScriptM]\  > \ 3, \ 
              Message[AddStylesToNotebook::argb, 
                HoldForm\ @\ AddStylesToNotebook, 
                \[ScriptN]\[ScriptU]\[ScriptM], 1, \ 
                3], \n\t\ \ \ \ \ \ \ \ \ \ \ True, \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ False]];\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["AddStylesToNotebook", "MR"],
  " will check to see that the style to be added is not part of the style \
sheet. If it is not then copy all the styles into a temporary notebook, add \
the new styles, then change the style sheet to a copy of this temporary \
notebook. The given styles must be contained in a cell or cell group. Also \
make sure that the global context is active to avoid problems with symbol \
contexts. Hopefully this is fixed in a later verion of ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  "."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(AddStylesToNotebook::usage\  = \n\t
        "\<AddStylesToNotebook[\[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL]], \
adds the styles in the cell \[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL] to the \
curret notebook. \[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL] can consist of a \
single cell or a cellgroup of other cells. AddStylesToNotebook[\[ScriptC]\
\[ScriptE]\[ScriptL]\[ScriptL],\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\
\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK]] adds the styles to the notebook \
\[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\
\[ScriptK]. This function is mainly intended as a utility for package \
desginers who use the Notation package.\>";\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(AddStylesToNotebook\ @\ \[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL]_Cell 
        := AddStylesToNotebook[\[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL], 
          SelectedNotebook[]];\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(AddStylesToNotebook[\[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL]_Cell, 
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK]_NotebookObject] := \n\t
        AddStylesToNotebook[\[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL], 
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK], 
          getStyleSheet\ @\ 
            \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK]];\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(AddStylesToNotebook[\[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL]_Cell, 
        \[ScriptN]\[ScriptB]_NotebookObject, 
        \[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\[ScriptCapitalS]\
\[ScriptH]\[ScriptE]\[ScriptE]\[ScriptT]_Notebook] := \n\t
      If[Or\  @@ \ \(\((FreeQ[
                  {\[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\
\[ScriptCapitalS]\[ScriptH]\[ScriptE]\[ScriptE]\[ScriptT]}, #] &)\)\  /@ \ 
            Union\ @\ 
              Cases[\[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL], 
                StyleData[_String], {0, \[Infinity]}]\), \n\t\tModule[
          {\[ScriptT]\[ScriptE]\[ScriptM]\[ScriptP]\[ScriptCapitalN]\[ScriptB]\
}, \n\t\t\tBegin\ @\ 
            "\<Global`\>"; \n\t\t\t\[ScriptT]\[ScriptE]\[ScriptM]\[ScriptP]\
\[ScriptCapitalN]\[ScriptB] = \ 
            NotebookCreate[\ Visible \[Rule] False]; \n\t\t\tNotebookPut[
            \[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\
\[ScriptCapitalS]\[ScriptH]\[ScriptE]\[ScriptE]\[ScriptT], 
            \[ScriptT]\[ScriptE]\[ScriptM]\[ScriptP]\[ScriptCapitalN]\
\[ScriptB]]; \n\t\t\tSelectionMove[
            \[ScriptT]\[ScriptE]\[ScriptM]\[ScriptP]\[ScriptCapitalN]\
\[ScriptB], After, Notebook]; \n\t\t\tNotebookWrite[
            \[ScriptT]\[ScriptE]\[ScriptM]\[ScriptP]\[ScriptCapitalN]\
\[ScriptB], \[ScriptC]\[ScriptE]\[ScriptL]\[ScriptL]]; \n\t\t\tSetOptions[
            \[ScriptN]\[ScriptB], 
            StyleDefinitions \[Rule] 
              NotebookGet\ @\ 
                \[ScriptT]\[ScriptE]\[ScriptM]\[ScriptP]\[ScriptCapitalN]\
\[ScriptB], Visible \[Rule] True\ ]; \n\t\t\tNotebookClose\ @\ 
            \[ScriptT]\[ScriptE]\[ScriptM]\[ScriptP]\[ScriptCapitalN]\
\[ScriptB]; \n\t\tEnd[];]; \n\t\tTrue, False]\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["GetStyleSheet", "MR"],
  " will return a notebook corresponding to the styles sheet of the current \
notebook. ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " 4.0 currently returns failed if there is no ",
  StyleBox["StyleDefinitions", "MR"],
  " specified for the notebook. Also ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " 4.0 returns blanks in the StyleSheetPath directory list, which me must \
remove. Finally make sure when returning the style sheet notebook that ",
  StyleBox["Visible", "MR"],
  " is ",
  StyleBox["False", "MR"],
  " so that the style notebook remains hidden. Also make sure the global \
context is active when getting the style sheet since in 4.0 some system \
symbols appear in the active context."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(getStyleSheet[
        \[ScriptCapitalC]\[ScriptU]\[ScriptR]\[ScriptR]\[ScriptE]\[ScriptN]\
\[ScriptT]\[ScriptCapitalN]\[ScriptB]_NotebookObject] := 
      getStyleSheetAux\ @\ 
        SilentCheck[
          StyleDefinitions /. 
            AbsoluteOptions[
              \[ScriptCapitalC]\[ScriptU]\[ScriptR]\[ScriptR]\[ScriptE]\
\[ScriptN]\[ScriptT]\[ScriptCapitalN]\[ScriptB], StyleDefinitions], 
          "\<Default.nb\>"]\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[{
    \(\(getStyleSheetAux\ @\ $Failed := getStyleSheetAux\ @\ "\<Default.nb\>";
      \)\), "\n", 
    \(\(getStyleSheetAux\ @\ 
          Notebook[
            \[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\
\[ScriptCapitalS]\[ScriptH]\[ScriptE]\[ScriptE]\[ScriptT]_List, 
            \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___?OptionQ] := \ 
        Notebook[
          \[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\[ScriptCapitalS]\
\[ScriptH]\[ScriptE]\[ScriptE]\[ScriptT], Visible -> False, 
          \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]];\)\), "\n", 
    \(getStyleSheetAux\ @\ 
        \[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\[ScriptCapitalN]\
\[ScriptA]\[ScriptM]\[ScriptE]_String := \n\t
      Block[{result}, \n\t\tBegin\ @\ "\<Global`\>"; \n\t\tresult\  = \ 
          Get\ @\ \ \(FileNames[\ 
                \[ScriptS]\[ScriptT]\[ScriptY]\[ScriptL]\[ScriptE]\
\[ScriptCapitalN]\[ScriptA]\[ScriptM]\[ScriptE], 
                \(\((StyleSheetPath /. 
                        AbsoluteOptions[$FrontEnd, StyleSheetPath])\) 
                    /. \n\t\tFrontEnd`FileName[
                        {___, Verbatim\ @\ Blank[], ___}, _] \[RuleDelayed] \ 
                      Sequence\  @@ \ {}\) 
                  /. \n\t\t\tFrontEnd`FileName[
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptH]_List, _] 
                    \[RuleDelayed] \ 
                    ToFileName\ @\ 
                      \[ScriptP]\[ScriptA]\[ScriptT]\[ScriptH]]\)\
\[LeftDoubleBracket]1\[RightDoubleBracket]; \n\t\tEnd[]; \n\t\t\
getStyleSheetAux\ @\ result]\)}], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["UpdateNotationsInNotebook", "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{

Cell[TextData[{
  "The first argument of ",
  StyleBox["UpdateNotationsInNotebook", "MR"],
  " must be a notebook object."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalU]\[ScriptP]\[ScriptD]\
\[ScriptA]\[ScriptT]\[ScriptE]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\[ScriptA]\
\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\[ScriptS] : \ 
        UpdateNotationsInNotebook[
          \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK]_, ___]\  
      := \ \n\ \ \ \((Message[UpdateNotationsInNotebook::badNotebook, \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK], \ 
            HoldForm\ @\ 
              \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalU]\[ScriptP]\
\[ScriptD]\[ScriptA]\[ScriptT]\[ScriptE]\[ScriptCapitalN]\[ScriptO]\[ScriptT]\
\[ScriptA]\[ScriptT]\[ScriptI]\[ScriptO]\[ScriptN]\[ScriptS]]; \ $Failed)\) 
        /; \n\t\t\t\ Head\ @\ 
            \[ScriptB]\[ScriptA]\[ScriptD]\[ScriptCapitalN]\[ScriptO]\
\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\[ScriptK]\  =!= \ 
          NotebookObject\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(UpdateNotationsInNotebook::badNotebook\  = \ 
        "\<The first argument of `2` is not a notebook object.\>";\)\)], 
  "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["UpdateNotationsInNotebook", "MR"],
  " expects zero or one arguments "
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    RowBox[{
      RowBox[{
        RowBox[{
        "\[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]", " ", ":", 
          RowBox[{
            StyleBox["UpdateNotationsInNotebook",
              "MR"], "[", \(_, __\), "]"}]}], "  ", ":=", " ", 
        RowBox[{"$Failed", " ", "/;", "\n", "\t      ", 
          RowBox[{"Message", "[", 
            RowBox[{
              RowBox[{
                StyleBox["UpdateNotationsInNotebook",
                  "MR"], "::", "argt"}], ",", 
              RowBox[{"HoldForm", " ", "@", " ", 
                StyleBox["UpdateNotationsInNotebook",
                  "MR"]}], ",", 
              \(heldLength\ @\ 
                \[ScriptE]\[ScriptR]\[ScriptR]\[ScriptO]\[ScriptR]\), ",", 
              "0", ",", "1"}], "]"}]}]}], ";"}]], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "If the Notebook contains old notation statement usages then ",
  StyleBox["UpdateNotationsInNotebook", "MR"],
  " will create a new updated duplicate."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(UpdateNotationsInNotebook\ [] := \ 
        UpdateNotationsInNotebook\ @\ SelectedNotebook[];\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(UpdateNotationsInNotebook\ @\ 
          \(HoldPattern\ @\ \[ScriptN]\[ScriptB]_NotebookObject\) := \n\t
        If[$NewVersion\  \[And] \ 
            \[Not] FreeQ[
                NotebookGet\ @\ 
                  \[ScriptN]\[ScriptB], \n\t\t\tTagBox[
                    \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
                    NotationBoxTag, 
                    \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] /; 
                  FreeQ[{\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}, 
                    TagStyle -> "\<NotationTemplateStyle\>"]], \n\t\tModule[
            {\[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalN]\[ScriptB] = 
                NotebookCreate[Visible -> False]}, \n\t\t\tSetOptions[
              \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalN]\[ScriptB], 
              Sequence\  @@ \ 
                DeleteCases[
                  AbsoluteOptions\ @\ 
                    \[ScriptN]\[ScriptB], \n\t\t\t\t\t\((ScreenRectangle 
                        \[Rule] \ _)\) | \((WindowSize\  \[Rule] \ _)\) | 
                    \((WindowMargins\  \[Rule] \ _)\) | 
                    \((Visible \[Rule] \ _\ )\), 1]]; \n\t\t\tNotebookPut\ [\ 
              massageNotebook\ @\ \(NotebookGet\ @\ \[ScriptN]\[ScriptB]\), 
              \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalN]\[ScriptB]]; \n\t\
\t\tSetOptions[\[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalN]\[ScriptB], 
              Sequence\  
                @@ \n\t\t\t\t\tMapAt["\<Updated Notations - \>" <> # &, 
                  AbsoluteOptions[\[ScriptN]\[ScriptB], WindowTitle], 
                  {1, 2}]]; \n\t\t\tSetOptions[
              \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalN]\[ScriptB], 
              Visible \[Rule] True]; \n\t\t\tSetSelectedNotebook\ @\ 
              \[ScriptN]\[ScriptE]\[ScriptW]\[ScriptCapitalN]\[ScriptB]; \n\t\
\t]\n\t];\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell["\<\
Where we need to message a notebook by removing any references to \
its window size and positioning or else it will appear right on top of the \
old window. Also we must update any legacy notation statments, which was the \
whole point of the original function.\
\>", "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(\(massageNotebook\ @\ 
        \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\[ScriptO]\
\[ScriptK]_Notebook\  := \n\t
      DeleteCases[
          \[ScriptN]\[ScriptO]\[ScriptT]\[ScriptE]\[ScriptB]\[ScriptO]\
\[ScriptO]\[ScriptK], 
          \((ScreenRectangle \[Rule] \ _)\) | \((WindowSize\  \[Rule] \ _)\) 
            | \((WindowMargins\  \[Rule] \ _)\), 1] 
        //. \n\t\tTagBox[\[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS]_, 
              NotationBoxTag, \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]___] /; 
            FreeQ[{\[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]}, 
              TagStyle -> "\<NotationTemplateStyle\>"]\  
          \[RuleDelayed] \n\t\t\t\t\t\t\tTagBox[
            \[ScriptB]\[ScriptO]\[ScriptX]\[ScriptE]\[ScriptS], 
            NotationBoxTag, TagStyle -> "\<NotationTemplateStyle\>", 
            \[ScriptO]\[ScriptP]\[ScriptT]\[ScriptS]]\)\(\n\)\)\)], "Input",
  InitializationCell->True]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Package Endings", "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["Establish Auto interactive values", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["If any of these values are undefined they default to True.", 
  "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(If[\[Not] ValueQ\ @\ AutoLoadNotationPalette, 
        AutoLoadNotationPalette = True];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(If[\[Not] ValueQ\ @\ AutoUpdateNotationStyleSheet, 
        AutoUpdateNotationStyleSheet = True];\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Open the Palettes", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell[TextData[{
  "Open the Notation palette by default. Note with remote kernels ",
  StyleBox["NotebookOpen", "MR"],
  " does not work properly.  Make sure the main notebook ",
  "remains",
  " selected."
}], "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(If[\ 
      AutoLoadNotationPalette\  === \ True, \n\t\tModule[
        {\[ScriptN]\[ScriptB]\  = \ SelectedNotebook[], 
          \[ScriptD]\[ScriptI]\[ScriptR]\  = 
            {$TopDirectory, "\<AddOns\>", "\<ExtraPackages\>", 
              "\<Utilities\>"}\ }, \n\t\t\tIf[
          $Remote, \n\t\t\t\tNotebookPut\ @\ 
            \(Get\ @\ \ ToFileName[\[ScriptD]\[ScriptI]\[ScriptR], \ 
                "\<NotationPalette.nb\>"]\), \n\t\t\t\tNotebookOpen\ @\ \ \
ToFileName[\[ScriptD]\[ScriptI]\[ScriptR], \ 
              "\<NotationPalette.nb\>"]]; \n\t\t\tSetSelectedNotebook\ @\ 
          \[ScriptN]\[ScriptB];]]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Update the style sheet if necessary", "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{

Cell["\<\
This defines the styles the Notation package adds to the style \
sheet.\
\>", "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    \(\(notationPackageStyles := \n
        Cell[CellGroupData[
            {\nCell["\<Notation Package Styles\>", \ 
                "\<Section\>", \n\ \ GeneratedCell -> True, \n\ \ CellTags -> 
                  "\<NotationPackage\>"], \n\n
              Cell["\<The cells below define certain styles needed by the \
Notation package. These styles serve to make visible otherwise invisible \
tagboxes.\>", \ "\<Text\>", \n\ \ GeneratedCell -> True, \n\ \ CellTags -> 
                  "\<NotationPackage\>"], \n\n
              Cell[StyleData[
                  "\<NotationTemplateStyle\>"], \n\ \ GeneratedCell -> 
                  True, \n\ \ StyleMenuListing -> None, \n\ \ Background -> 
                  RGBColor[1, \ 1, \ 0.85], \n\ \ TagBoxOptions -> 
                  {SyntaxForm -> "\<symbol\>"}, \n\ \ CellTags -> 
                  "\<NotationPackage\>"], \n\n
              Cell[StyleData[
                  "\<NotationPatternWrapperStyle\>"], \n\ \ GeneratedCell -> 
                  True, \n\ \ StyleMenuListing -> None, \n\ \ Background -> 
                  RGBColor[1, \ 0.9, \ 0.98], \n\ \ TagBoxOptions -> 
                  {SyntaxForm -> "\<symbol\>"}, \n\ \ CellTags -> 
                  "\<NotationPackage\>"], \n\n
              Cell[StyleData[
                  "\<NotationMadeBoxesWrapperStyle\>"], \n\ \ GeneratedCell -> 
                  True, \n\ \ StyleMenuListing -> None, \n\ \ Background -> 
                  RGBColor[0.9, \ 0.89, \ 1], \n\ \ TagBoxOptions -> 
                  {SyntaxForm -> "\<symbol\>"}, \n\ \ CellTags -> 
                  "\<NotationPackage\>"]\n}, \ Closed\ \ ]];\)\)], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
  "Finally if the version of ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " is 4.0 or greater than ensure the ",
  StyleBox["Notation",
    FontSlant->"Italic"],
  " styles are in the Style Sheet and if not add them to the style sheet."
}], "CommentText",
  CellTags->"4.0 Code"],

Cell[BoxData[
    RowBox[{
      RowBox[{"If", "[", 
        RowBox[{
        \($NewVersion\  \[And] \ AutoUpdateNotationStyleSheet\), ",", 
          RowBox[{
            RowBox[{
              StyleBox["UpdateNotebookStyles",
                "MR"], " ", "@", " ", \(SelectedNotebook[]\)}], ";"}]}], "]"}]
        , ";"}]], "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["End the package", "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{

Cell["End Private.", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(End[];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["Protect Notation functions.", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(SetAttributes[
      {ClearNotations, InfixNotation, Notation, NotationBoxTag, 
        RemoveInfixNotation, RemoveNotation, RemoveSymbolize, Symbolize, \n\t
        AddInputAlias, ActiveInputAliases, UpdateNotationsInNotebook}, 
      {ReadProtected, Protected}]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(SetAttributes[
      {Action, CreateNotationRules, NotationBoxTag, NotationPatternTag, 
        NotationMadeBoxesTag, PrintNotationRules, RemoveNotationRules, 
        SymbolizeRootName, WorkingForm}, {Protected}]\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{

Cell["End the Package.", "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[BoxData[
    \(\(EndPackage[];\)\)], "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]]
}, Open  ]]
},
FrontEndVersion->"4.0 for Macintosh",
ScreenRectangle->{{0, 1024}, {0, 748}},
AutoGeneratedPackage->None,
WindowToolbars->{},
WindowSize->{606, 696},
WindowMargins->{{9, Automatic}, {Automatic, 3}},
PrintingCopies->1,
PrintingPageRange->{1, Automatic},
InputAliases->{"notation"->RowBox[ {"Notation", "[", 
        RowBox[ {
          TagBox[ 
          "\[Placeholder]", NotationBoxTag, TagStyle -> 
            "NotationTemplateStyle"], " ", "\[DoubleLongLeftRightArrow]", 
          " ", 
          TagBox[ 
          "\[Placeholder]", NotationBoxTag, TagStyle -> 
            "NotationTemplateStyle"]}], "]"}], 
    "notation>"->RowBox[ {"Notation", "[", 
        RowBox[ {
          TagBox[ 
          "\[Placeholder]", NotationBoxTag, TagStyle -> 
            "NotationTemplateStyle"], " ", "\[DoubleLongRightArrow]", " ", 
          TagBox[ 
          "\[Placeholder]", NotationBoxTag, TagStyle -> 
            "NotationTemplateStyle"]}], "]"}], 
    "notation<"->RowBox[ {"Notation", "[", 
        RowBox[ {
          TagBox[ 
          "\[Placeholder]", NotationBoxTag, TagStyle -> 
            "NotationTemplateStyle"], " ", "\[DoubleLongLeftArrow]", " ", 
          TagBox[ 
          "\[Placeholder]", NotationBoxTag, TagStyle -> 
            "NotationTemplateStyle"]}], "]"}], 
    "symb"->RowBox[ {"Symbolize", "[", 
        TagBox[ 
        "\[Placeholder]", NotationBoxTag, TagStyle -> "NotationTemplateStyle"]
        , "]"}], "infixnotation"->RowBox[ {"InfixNotation", "[", 
        RowBox[ {
          TagBox[ 
          "\[Placeholder]", NotationBoxTag, TagStyle -> 
            "NotationTemplateStyle"], ",", "\[Placeholder]"}], "]"}], 
    "addia"->RowBox[ {"AddInputAlias", "[", 
        RowBox[ {
          TagBox[ 
          "\[Placeholder]", NotationBoxTag, TagStyle -> 
            "NotationTemplateStyle"], ",", "\[Placeholder]"}], "]"}], 
    "pattwraper"->TagBox[ 
      "\[Placeholder]", NotationPatternTag, TagStyle -> 
        "NotationPatternWrapperStyle"], 
    "madeboxeswraper"->TagBox[ 
      "\[Placeholder]", NotationMadeBoxesTag, TagStyle -> 
        "NotationMadeBoxesWrapperStyle"]},
Magnification->1,
StyleDefinitions -> Notebook[{
  
  Cell[CellGroupData[{
  Cell["Style Definitions", "Subtitle"],
  
  Cell["\<\
Modify the definitions below to change the default appearance of \
all cells in a given style.  Make modifications to any definition using \
commands in the Format menu.\
\>", "Text"],
  
  Cell[CellGroupData[{
  
  Cell["Style Environment Names", "Section"],
  
  Cell[StyleData[All, "Working"],
    PageWidth->WindowWidth,
    ScriptMinSize->9],
  
  Cell[StyleData[All, "Presentation"],
    PageWidth->WindowWidth,
    ScriptMinSize->12,
    FontSize->16],
  
  Cell[StyleData[All, "Condensed"],
    PageWidth->WindowWidth,
    CellBracketOptions->{"Margins"->{1, 1},
    "Widths"->{0, 5}},
    ScriptMinSize->8,
    FontSize->11],
  
  Cell[StyleData[All, "Printout"],
    PageWidth->PaperWidth,
    ScriptMinSize->5,
    FontSize->10,
    PrivateFontOptions->{"FontType"->"Outline"}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Notebook Options", "Section"],
  
  Cell["\<\
The options defined for the style below will be used at the \
Notebook level.\
\>", "Text"],
  
  Cell[StyleData["Notebook"],
    PageHeaders->{{Cell[ 
            TextData[ {
              CounterBox[ "Page"]}], "PageNumber"], None, Cell[ 
            TextData[ {
              ValueBox[ "FileName"]}], "Header"]}, {Cell[ 
            TextData[ {
              ValueBox[ "FileName"]}], "Header"], None, Cell[ 
            TextData[ {
              CounterBox[ "Page"]}], "PageNumber"]}},
    CellFrameLabelMargins->6,
    StyleMenuListing->None]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Styles for Headings", "Section"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Title"],
    CellMargins->{{12, Inherited}, {20, 40}},
    CellGroupingRules->{"TitleGrouping", 0},
    PageBreakBelow->False,
    CounterIncrements->"Title",
    CounterAssignments->{
      {"Section", 0}, {"Equation", 0}, {"Figure", 0}, {"Subtitle", 0}, {
        "Subsubtitle", 0}},
    FontFamily->"Helvetica",
    FontSize->36,
    FontWeight->"Bold"],
  
  Cell[StyleData["Title", "Presentation"],
    CellMargins->{{24, 10}, {20, 40}},
    LineSpacing->{1, 0},
    FontSize->44],
  
  Cell[StyleData["Title", "Condensed"],
    CellMargins->{{8, 10}, {4, 8}},
    FontSize->20],
  
  Cell[StyleData["Title", "Printout"],
    CellMargins->{{2, 10}, {15, 30}},
    FontSize->24]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Subtitle"],
    CellMargins->{{12, Inherited}, {10, 15}},
    CellGroupingRules->{"TitleGrouping", 10},
    PageBreakBelow->False,
    CounterIncrements->"Subtitle",
    CounterAssignments->{
      {"Section", 0}, {"Equation", 0}, {"Figure", 0}, {"Subsubtitle", 0}},
    FontFamily->"Helvetica",
    FontSize->24],
  
  Cell[StyleData["Subtitle", "Presentation"],
    CellMargins->{{24, 10}, {15, 20}},
    LineSpacing->{1, 0},
    FontSize->36],
  
  Cell[StyleData["Subtitle", "Condensed"],
    CellMargins->{{8, 10}, {4, 4}},
    FontSize->14],
  
  Cell[StyleData["Subtitle", "Printout"],
    CellMargins->{{2, 10}, {10, 15}},
    FontSize->18]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Subsubtitle"],
    CellMargins->{{12, Inherited}, {10, 20}},
    CellGroupingRules->{"TitleGrouping", 20},
    PageBreakBelow->False,
    CounterIncrements->"Subsubtitle",
    CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}},
    FontFamily->"Helvetica",
    FontSize->14,
    FontSlant->"Italic"],
  
  Cell[StyleData["Subsubtitle", "Presentation"],
    CellMargins->{{24, 10}, {10, 20}},
    LineSpacing->{1, 0},
    FontSize->24],
  
  Cell[StyleData["Subsubtitle", "Condensed"],
    CellMargins->{{8, 10}, {8, 12}},
    FontSize->12],
  
  Cell[StyleData["Subsubtitle", "Printout"],
    CellMargins->{{2, 10}, {8, 10}},
    FontSize->14]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Section"],
    CellDingbat->"\[FilledSquare]",
    CellMargins->{{25, Inherited}, {8, 24}},
    CellGroupingRules->{"SectionGrouping", 30},
    PageBreakBelow->False,
    CounterIncrements->"Section",
    CounterAssignments->{{"Subsection", 0}, {"Subsubsection", 0}},
    FontFamily->"Helvetica",
    FontSize->24,
    FontWeight->"Bold"],
  
  Cell[StyleData["Section", "Presentation"],
    CellMargins->{{40, 10}, {11, 32}},
    LineSpacing->{1, 0},
    FontSize->24],
  
  Cell[StyleData["Section", "Condensed"],
    CellMargins->{{18, Inherited}, {6, 12}},
    FontSize->12],
  
  Cell[StyleData["Section", "Printout"],
    CellMargins->{{13, 0}, {7, 22}},
    FontSize->14]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Subsection"],
    CellDingbat->"\[FilledSmallSquare]",
    CellMargins->{{22, Inherited}, {8, 20}},
    CellGroupingRules->{"SectionGrouping", 40},
    PageBreakBelow->False,
    CounterIncrements->"Subsection",
    CounterAssignments->{{"Subsubsection", 0}},
    FontSize->18,
    FontWeight->"Bold"],
  
  Cell[StyleData["Subsection", "Presentation"],
    CellMargins->{{36, 10}, {11, 32}},
    LineSpacing->{1, 0},
    FontSize->22],
  
  Cell[StyleData["Subsection", "Condensed"],
    CellMargins->{{16, Inherited}, {6, 12}},
    FontSize->12],
  
  Cell[StyleData["Subsection", "Printout"],
    CellMargins->{{9, 0}, {7, 22}},
    FontSize->12]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Subsubsection"],
    ShowGroupOpenCloseIcon->True,
    CellMargins->{{46, Inherited}, {2, 4}},
    CellElementSpacings->{"ClosedGroupTopMargin"->2},
    CellGroupingRules->{"SectionGrouping", 50},
    PageBreakBelow->False,
    CounterIncrements->"Subsubsection",
    FontSize->14,
    FontWeight->"Bold"],
  
  Cell[StyleData["Subsubsection", "Presentation"],
    CellMargins->{{34, 10}, {11, 26}},
    LineSpacing->{1, 0},
    FontSize->18],
  
  Cell[StyleData["Subsubsection", "Condensed"],
    CellMargins->{{17, Inherited}, {6, 12}},
    FontSize->10],
  
  Cell[StyleData["Subsubsection", "Printout"],
    CellMargins->{{9, 0}, {7, 14}},
    FontSize->11]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Styles for Body Text", "Section"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Text"],
    CellMargins->{{12, 10}, {7, 7}},
    LineSpacing->{1, 3},
    CounterIncrements->"Text"],
  
  Cell[StyleData["Text", "Presentation"],
    CellMargins->{{24, 10}, {10, 10}},
    LineSpacing->{1, 5}],
  
  Cell[StyleData["Text", "Condensed"],
    CellMargins->{{8, 10}, {6, 6}},
    LineSpacing->{1, 1}],
  
  Cell[StyleData["Text", "Printout"],
    CellMargins->{{2, 2}, {6, 6}}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["SmallText"],
    CellMargins->{{12, 10}, {6, 6}},
    LineSpacing->{1, 3},
    CounterIncrements->"SmallText",
    FontFamily->"Helvetica",
    FontSize->9],
  
  Cell[StyleData["SmallText", "Presentation"],
    CellMargins->{{24, 10}, {8, 8}},
    LineSpacing->{1, 5},
    FontSize->12],
  
  Cell[StyleData["SmallText", "Condensed"],
    CellMargins->{{8, 10}, {5, 5}},
    LineSpacing->{1, 2},
    FontSize->9],
  
  Cell[StyleData["SmallText", "Printout"],
    CellMargins->{{2, 2}, {5, 5}},
    FontSize->7]
  }, Closed]],
  
  Cell[StyleData["MR"],
    StyleMenuListing->None,
    FontFamily->"Courier",
    FontWeight->"Plain",
    FontSlant->"Plain"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["CommentText"],
    CellFrame->True,
    CellMargins->{{40, Inherited}, {4, 4}},
    CellGroupingRules->{"SectionGrouping", 60},
    CellFrameColor->RGBColor[0.635462, 0.297017, 0.992798],
    FontFamily->"Helvetica",
    FontSize->12,
    FontWeight->"Bold",
    FontSlant->"Plain",
    FontTracking->"Plain",
    FontColor->RGBColor[0.544305, 0.0644388, 0.234394],
    Background->RGBColor[0.946792, 0.921813, 0.998779],
    FontVariations->{"Underline"->False,
    "Outline"->False,
    "Shadow"->False}],
  
  Cell[StyleData["CommentText", "Presentation"],
    CellMargins->{{24, Inherited}, {Inherited, Inherited}},
    LineSpacing->{1, 0},
    FontSize->16,
    FontWeight->"Bold",
    FontColor->RGBColor[0.544305, 0.0644388, 0.234394]],
  
  Cell[StyleData["CommentText", "Printout"],
    CellMargins->{{14, Inherited}, {Inherited, Inherited}},
    FontFamily->"Helvetica",
    FontSize->9,
    FontColor->GrayLevel[0]],
  
  Cell[StyleData["CommentText", "Condensed"],
    CellMargins->{{4, Inherited}, {2, 2}},
    FontSize->9]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Styles for Input/Output", "Section"],
  
  Cell["\<\
The cells in this section define styles used for input and output \
to the kernel.  Be careful when modifying, renaming, or removing these \
styles, because the front end associates special meanings with these style \
names.\
\>", "Text"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Input"],
    CellMargins->{{45, 10}, {5, 7}},
    Evaluatable->True,
    CellGroupingRules->"InputGrouping",
    CellHorizontalScrolling->True,
    PageBreakWithin->False,
    GroupPageBreakWithin->False,
    CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}},
    DefaultFormatType->DefaultInputFormatType,
    AutoItalicWords->{},
    FormatType->InputForm,
    ShowStringCharacters->True,
    NumberMarks->True,
    CounterIncrements->"Input",
    FontFamily->"Courier",
    FontWeight->"Plain",
    FontSlant->"Plain",
    FontTracking->"Plain",
    FontVariations->{"Underline"->False,
    "Outline"->False,
    "Shadow"->False}],
  
  Cell[StyleData["Input", "Presentation"],
    CellMargins->{{72, Inherited}, {8, 10}},
    LineSpacing->{1, 0}],
  
  Cell[StyleData["Input", "Condensed"],
    CellMargins->{{40, 10}, {2, 3}}],
  
  Cell[StyleData["Input", "Printout"],
    CellMargins->{{39, 0}, {4, 6}},
    FontSize->9]
  }, Closed]],
  
  Cell[StyleData["InputOnly"],
    Evaluatable->True,
    CellGroupingRules->"InputGrouping",
    CellHorizontalScrolling->True,
    DefaultFormatType->DefaultInputFormatType,
    AutoItalicWords->{},
    FormatType->InputForm,
    ShowStringCharacters->True,
    NumberMarks->True,
    CounterIncrements->"Input",
    StyleMenuListing->None,
    FontWeight->"Bold"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Output"],
    CellMargins->{{47, 10}, {7, 5}},
    CellEditDuplicate->True,
    CellGroupingRules->"OutputGrouping",
    CellHorizontalScrolling->True,
    PageBreakWithin->False,
    GroupPageBreakWithin->False,
    GeneratedCell->True,
    CellAutoOverwrite->True,
    CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}},
    DefaultFormatType->DefaultOutputFormatType,
    AutoItalicWords->{},
    FormatType->InputForm,
    CounterIncrements->"Output",
    FontColor->RGBColor[0.148882, 0.00015259, 0.188235]],
  
  Cell[StyleData["Output", "Presentation"],
    CellMargins->{{72, Inherited}, {10, 8}},
    LineSpacing->{1, 0}],
  
  Cell[StyleData["Output", "Condensed"],
    CellMargins->{{41, Inherited}, {3, 2}}],
  
  Cell[StyleData["Output", "Printout"],
    CellMargins->{{39, 0}, {6, 4}},
    FontSize->9]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Message"],
    CellMargins->{{45, Inherited}, {Inherited, Inherited}},
    CellGroupingRules->"OutputGrouping",
    PageBreakWithin->False,
    GroupPageBreakWithin->False,
    GeneratedCell->True,
    CellAutoOverwrite->True,
    ShowCellLabel->False,
    CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}},
    DefaultFormatType->DefaultOutputFormatType,
    AutoItalicWords->{},
    FormatType->InputForm,
    CounterIncrements->"Message",
    StyleMenuListing->None,
    FontColor->RGBColor[0, 0, 1]],
  
  Cell[StyleData["Message", "Presentation"],
    CellMargins->{{72, Inherited}, {Inherited, Inherited}},
    LineSpacing->{1, 0}],
  
  Cell[StyleData["Message", "Condensed"],
    CellMargins->{{41, Inherited}, {Inherited, Inherited}}],
  
  Cell[StyleData["Message", "Printout"],
    CellMargins->{{39, Inherited}, {Inherited, Inherited}},
    FontSize->8,
    FontColor->GrayLevel[0]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Print"],
    CellMargins->{{45, Inherited}, {Inherited, Inherited}},
    CellGroupingRules->"OutputGrouping",
    CellHorizontalScrolling->True,
    PageBreakWithin->False,
    GroupPageBreakWithin->False,
    GeneratedCell->True,
    CellAutoOverwrite->True,
    ShowCellLabel->False,
    CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}},
    DefaultFormatType->DefaultOutputFormatType,
    AutoItalicWords->{},
    FormatType->InputForm,
    CounterIncrements->"Print",
    StyleMenuListing->None],
  
  Cell[StyleData["Print", "Presentation"],
    CellMargins->{{72, Inherited}, {Inherited, Inherited}},
    LineSpacing->{1, 0}],
  
  Cell[StyleData["Print", "Condensed"],
    CellMargins->{{41, Inherited}, {Inherited, Inherited}}],
  
  Cell[StyleData["Print", "Printout"],
    CellMargins->{{39, Inherited}, {Inherited, Inherited}},
    FontSize->8]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Graphics"],
    CellMargins->{{4, Inherited}, {Inherited, Inherited}},
    CellGroupingRules->"GraphicsGrouping",
    CellHorizontalScrolling->True,
    PageBreakWithin->False,
    GeneratedCell->True,
    CellAutoOverwrite->True,
    ShowCellLabel->False,
    DefaultFormatType->DefaultOutputFormatType,
    FormatType->InputForm,
    CounterIncrements->"Graphics",
    ImageMargins->{{43, Inherited}, {Inherited, 0}},
    StyleMenuListing->None],
  
  Cell[StyleData["Graphics", "Presentation"],
    ImageMargins->{{62, Inherited}, {Inherited, 0}}],
  
  Cell[StyleData["Graphics", "Condensed"],
    ImageSize->{175, 175},
    ImageMargins->{{38, Inherited}, {Inherited, 0}}],
  
  Cell[StyleData["Graphics", "Printout"],
    ImageSize->{250, 250},
    ImageMargins->{{30, Inherited}, {Inherited, 0}},
    FontSize->9]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["CellLabel"],
    StyleMenuListing->None,
    FontFamily->"Helvetica",
    FontSize->9,
    FontColor->RGBColor[0, 0, 1]],
  
  Cell[StyleData["CellLabel", "Presentation"],
    FontSize->12],
  
  Cell[StyleData["CellLabel", "Condensed"],
    FontSize->9],
  
  Cell[StyleData["CellLabel", "Printout"],
    FontFamily->"Courier",
    FontSize->8,
    FontSlant->"Italic",
    FontColor->GrayLevel[0]]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Formulas and Programming", "Section"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["InlineFormula"],
    CellMargins->{{10, 4}, {0, 8}},
    CellHorizontalScrolling->True,
    ScriptLevel->1,
    SingleLetterItalics->True],
  
  Cell[StyleData["InlineFormula", "Presentation"],
    CellMargins->{{24, 10}, {10, 10}},
    LineSpacing->{1, 5}],
  
  Cell[StyleData["InlineFormula", "Condensed"],
    CellMargins->{{8, 10}, {6, 6}},
    LineSpacing->{1, 1}],
  
  Cell[StyleData["InlineFormula", "Printout"],
    CellMargins->{{2, 0}, {6, 6}}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["DisplayFormula"],
    CellMargins->{{42, Inherited}, {Inherited, Inherited}},
    CellHorizontalScrolling->True,
    ScriptLevel->0,
    SingleLetterItalics->True,
    StyleMenuListing->None,
    UnderoverscriptBoxOptions->{LimitsPositioning->True}],
  
  Cell[StyleData["DisplayFormula", "Presentation"],
    LineSpacing->{1, 5}],
  
  Cell[StyleData["DisplayFormula", "Condensed"],
    LineSpacing->{1, 1}],
  
  Cell[StyleData["DisplayFormula", "Printout"]]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Styles for Headers and Footers", "Section"],
  
  Cell[StyleData["Header"],
    CellMargins->{{0, 0}, {4, 1}},
    StyleMenuListing->None,
    FontSize->10,
    FontSlant->"Italic"],
  
  Cell[StyleData["Footer"],
    CellMargins->{{0, 0}, {0, 4}},
    StyleMenuListing->None,
    FontSize->9,
    FontSlant->"Italic"],
  
  Cell[StyleData["PageNumber"],
    CellMargins->{{0, 0}, {4, 1}},
    StyleMenuListing->None,
    FontFamily->"Times",
    FontSize->10]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Palette Styles", "Section"],
  
  Cell["\<\
The cells below define styles that define standard \
ButtonFunctions, for use in palette buttons.\
\>", "Text"],
  
  Cell[StyleData["Paste"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`NotebookApply[ 
          FrontEnd`InputNotebook[ ], #, After]}]&)}],
  
  Cell[StyleData["Evaluate"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`NotebookApply[ 
          FrontEnd`InputNotebook[ ], #, All], 
        SelectionEvaluate[ 
          FrontEnd`InputNotebook[ ], All]}]&)}],
  
  Cell[StyleData["EvaluateCell"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`NotebookApply[ 
          FrontEnd`InputNotebook[ ], #, All], 
        FrontEnd`SelectionMove[ 
          FrontEnd`InputNotebook[ ], All, Cell, 1], 
        FrontEnd`SelectionEvaluateCreateCell[ 
          FrontEnd`InputNotebook[ ], All]}]&)}],
  
  Cell[StyleData["CopyEvaluate"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`SelectionCreateCell[ 
          FrontEnd`InputNotebook[ ], All], 
        FrontEnd`NotebookApply[ 
          FrontEnd`InputNotebook[ ], #, All], 
        FrontEnd`SelectionEvaluate[ 
          FrontEnd`InputNotebook[ ], All]}]&)}],
  
  Cell[StyleData["CopyEvaluateCell"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`SelectionCreateCell[ 
          FrontEnd`InputNotebook[ ], All], 
        FrontEnd`NotebookApply[ 
          FrontEnd`InputNotebook[ ], #, All], 
        FrontEnd`SelectionEvaluateCreateCell[ 
          FrontEnd`InputNotebook[ ], All]}]&)}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Hyperlink Styles", "Section"],
  
  Cell["\<\
The cells below define styles useful for making hypertext \
ButtonBoxes.  The \"Hyperlink\" style is for links within the same Notebook, \
or between Notebooks.\
\>", "Text"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Hyperlink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`NotebookLocate[ #2]}]&),
    Active->True,
    ButtonNote->ButtonData}],
  
  Cell[StyleData["Hyperlink", "Presentation"]],
  
  Cell[StyleData["Hyperlink", "Condensed"]],
  
  Cell[StyleData["Hyperlink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell["\<\
The following styles are for linking automatically to the on-line \
help system.\
\>", "Text"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["MainBookLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "MainBook", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["MainBookLink", "Presentation"]],
  
  Cell[StyleData["MainBookLink", "Condensed"]],
  
  Cell[StyleData["MainBookLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["AddOnsLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontFamily->"Courier",
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "AddOns", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["AddOnsLink", "Presentation"]],
  
  Cell[StyleData["AddOnsLink", "Condensed"]],
  
  Cell[StyleData["AddOnLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["RefGuideLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontFamily->"Courier",
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "RefGuideLink", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["RefGuideLink", "Presentation"]],
  
  Cell[StyleData["RefGuideLink", "Condensed"]],
  
  Cell[StyleData["RefGuideLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["GettingStartedLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "GettingStarted", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["GettingStartedLink", "Presentation"]],
  
  Cell[StyleData["GettingStartedLink", "Condensed"]],
  
  Cell[StyleData["GettingStartedLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["OtherInformationLink"],
    StyleMenuListing->None,
    ButtonStyleMenuListing->Automatic,
    FontColor->RGBColor[0, 0, 1],
    FontVariations->{"Underline"->True},
    ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ {
        FrontEnd`HelpBrowserLookup[ "OtherInformation", #]}]&),
    Active->True,
    ButtonFrame->"None"}],
  
  Cell[StyleData["OtherInformationLink", "Presentation"]],
  
  Cell[StyleData["OtherInformationLink", "Condensed"]],
  
  Cell[StyleData["OtherInformationLink", "Printout"],
    FontColor->GrayLevel[0],
    FontVariations->{"Underline"->False}]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Placeholder Styles", "Section"],
  
  Cell["\<\
The cells below define styles useful for making placeholder \
objects in palette templates.\
\>", "Text"],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["Placeholder"],
    Placeholder->True,
    StyleMenuListing->None,
    FontSlant->"Italic",
    FontColor->RGBColor[0.890623, 0.864698, 0.384756],
    TagBoxOptions->{Editable->False,
    Selectable->False,
    StripWrapperBoxes->False}],
  
  Cell[StyleData["Placeholder", "Presentation"]],
  
  Cell[StyleData["Placeholder", "Condensed"]],
  
  Cell[StyleData["Placeholder", "Printout"]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell[StyleData["PrimaryPlaceholder"],
    StyleMenuListing->None,
    DrawHighlighted->True,
    FontSlant->"Italic",
    Background->RGBColor[0.912505, 0.891798, 0.507774],
    TagBoxOptions->{Editable->False,
    Selectable->False,
    StripWrapperBoxes->False}],
  
  Cell[StyleData["PrimaryPlaceholder", "Presentation"]],
  
  Cell[StyleData["PrimaryPlaceholder", "Condensed"]],
  
  Cell[StyleData["PrimaryPlaceholder", "Printout"]]
  }, Closed]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["FormatType Styles", "Section"],
  
  Cell["\<\
The cells below define styles that are mixed in with the styles \
of most cells.  If a cell's FormatType matches the name of one of the styles \
defined below, then that style is applied between the cell's style and its \
own options.\
\>", "Text"],
  
  Cell[StyleData["CellExpression"],
    PageWidth->Infinity,
    CellMargins->{{6, Inherited}, {Inherited, Inherited}},
    ShowCellLabel->False,
    ShowSpecialCharacters->False,
    AllowInlineCells->False,
    AutoItalicWords->{},
    StyleMenuListing->None,
    FontFamily->"Courier",
    Background->GrayLevel[1]],
  
  Cell[StyleData["InputForm"],
    AllowInlineCells->False,
    StyleMenuListing->None,
    FontFamily->"Courier"],
  
  Cell[StyleData["OutputForm"],
    PageWidth->Infinity,
    TextAlignment->Left,
    LineSpacing->{1, -5},
    StyleMenuListing->None,
    FontFamily->"Courier"],
  
  Cell[StyleData["StandardForm"],
    LineSpacing->{1.25, 0},
    StyleMenuListing->None,
    FontFamily->"Courier"],
  
  Cell[StyleData["TraditionalForm"],
    LineSpacing->{1.25, 0},
    SingleLetterItalics->True,
    TraditionalFunctionNotation->True,
    DelimiterMatching->None,
    StyleMenuListing->None],
  
  Cell["\<\
The style defined below is mixed in to any cell that is in an \
inline cell within another.\
\>", "Text"],
  
  Cell[StyleData["InlineCell"],
    TextAlignment->Left,
    ScriptLevel->1,
    StyleMenuListing->None],
  
  Cell[StyleData["InlineCellEditing"],
    StyleMenuListing->None,
    Background->RGBColor[1, 0.749996, 0.8]]
  }, Closed]],
  
  Cell[CellGroupData[{
  
  Cell["Notation Package Styles", "Section",
    GeneratedCell->True,
    CellTags->"NotationPackage"],
  
  Cell["\<\
The cells below define certain styles needed by the Notation \
package. These styles serve to make visible otherwise invisible \
tagboxes.\
\>", "Text",
    GeneratedCell->True,
    CellTags->"NotationPackage"],
  
  Cell[StyleData["NotationTemplateStyle"],
    GeneratedCell->True,
    StyleMenuListing->None,
    Background->RGBColor[1, 1, 0.850004],
    TagBoxOptions->{SyntaxForm->"symbol"},
    CellTags->"NotationPackage"],
  
  Cell[StyleData["NotationPatternWrapperStyle"],
    GeneratedCell->True,
    StyleMenuListing->None,
    Background->RGBColor[1, 0.900008, 0.979995],
    TagBoxOptions->{SyntaxForm->"symbol"},
    CellTags->"NotationPackage"],
  
  Cell[StyleData["NotationMadeBoxesWrapperStyle"],
    GeneratedCell->True,
    StyleMenuListing->None,
    Background->RGBColor[0.900008, 0.889998, 1],
    TagBoxOptions->{SyntaxForm->"symbol"},
    CellTags->"NotationPackage"]
  }, Closed]]
  }, Open  ]]
  }],
MacintoshSystemPageSetup->"\<\
00<0004/0B`000002O`==?mjog0:S0g30fD5:0?l0080004/0B`000000]P2:001
0000FP0000400`<300000BL?00400@>2BW0000000000060801T1T00000000000
00000000004000000000000000000000\>"
]


(***********************************************************************
Cached data follows.  If you edit this Notebook file directly, not using
Mathematica, you must remove the line containing CacheID at the top of 
the file.  The cache data will then be recreated when you save this file 
from within Mathematica.
***********************************************************************)

(*CellTagsOutline
CellTagsIndex->{
  "3.0 Code"->{
    Cell[1979, 62, 78, 1, 51, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[2082, 67, 80, 1, 24, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[2187, 72, 153, 5, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[2878, 97, 603, 11, 128, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[3530, 114, 76, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[3609, 117, 161, 4, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[3773, 123, 418, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[4228, 136, 81, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[4312, 139, 129, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[4466, 146, 270, 8, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[4739, 156, 1399, 27, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[6175, 188, 236, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[6414, 195, 331, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[6782, 206, 242, 4, 48, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[7027, 212, 247, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[7311, 223, 234, 4, 48, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[7548, 229, 577, 11, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[8128, 242, 328, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[8459, 250, 573, 12, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9069, 267, 298, 8, 48, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9370, 277, 148, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9555, 285, 104, 1, 44, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9662, 288, 109, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9820, 297, 95, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9918, 300, 409, 8, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[10330, 310, 327, 7, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[10660, 319, 267, 5, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[10930, 326, 661, 11, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[11594, 339, 476, 9, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[12073, 350, 1880, 27, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[13956, 379, 1538, 22, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[15497, 403, 357, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[15857, 412, 474, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[16334, 422, 462, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[16799, 432, 377, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[17179, 441, 416, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[17598, 450, 372, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[17973, 459, 402, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[18378, 468, 403, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[18784, 477, 424, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[19211, 486, 569, 9, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[19783, 497, 355, 6, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[20141, 505, 330, 6, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[24331, 590, 89, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[24445, 595, 113, 1, 24, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[24583, 600, 137, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[24723, 607, 273, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25033, 619, 138, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25174, 626, 322, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25533, 638, 142, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25678, 645, 240, 5, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25967, 656, 84, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[26054, 659, 129, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[26220, 667, 78, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[26323, 672, 465, 13, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[26791, 687, 570, 12, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[27422, 706, 82, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[27529, 711, 85, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[27639, 716, 515, 13, 94, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[28157, 731, 1252, 27, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[29412, 760, 168, 4, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[29583, 766, 300, 7, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[29932, 779, 86, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[30043, 784, 200, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[30246, 791, 518, 9, 221, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[30801, 805, 271, 5, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[31075, 812, 1564, 32, 133, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[32688, 850, 72, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[32785, 855, 462, 11, 78, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[33250, 868, 1018, 21, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[34271, 891, 938, 22, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[35258, 919, 74, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[35357, 924, 353, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[36309, 950, 73, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[36407, 955, 124, 2, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[36556, 961, 231, 7, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[36790, 970, 612, 11, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[37439, 986, 221, 7, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[37663, 995, 153, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[37819, 1000, 613, 11, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[38481, 1017, 77, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[38583, 1022, 401, 13, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[38987, 1037, 454, 10, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[39444, 1049, 695, 15, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[40142, 1066, 142, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[40333, 1075, 82, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[40440, 1080, 383, 11, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[40826, 1093, 690, 11, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[41565, 1110, 86, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[41676, 1115, 337, 11, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42016, 1128, 290, 6, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42309, 1136, 135, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42505, 1146, 87, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42617, 1151, 74, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42716, 1156, 174, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42893, 1162, 1045, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[43941, 1182, 188, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44178, 1192, 77, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44280, 1197, 177, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44460, 1203, 222, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44731, 1213, 139, 4, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44895, 1221, 477, 13, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[45375, 1236, 2761, 48, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[48139, 1286, 1391, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[49567, 1316, 174, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[49744, 1323, 522, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[50303, 1338, 157, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[50463, 1344, 635, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[51147, 1362, 96, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[51246, 1365, 253, 6, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[51524, 1375, 233, 6, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[51760, 1383, 482, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[52245, 1393, 345, 8, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[52627, 1406, 233, 5, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[52863, 1413, 781, 15, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[53681, 1433, 200, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[53884, 1440, 657, 14, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[54590, 1460, 90, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[54705, 1465, 170, 4, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[54878, 1471, 4381, 73, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[59296, 1549, 165, 5, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[59464, 1556, 520, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[60021, 1571, 166, 5, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[60190, 1578, 494, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[60721, 1592, 149, 4, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[60873, 1598, 753, 15, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[61687, 1620, 96, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[61808, 1625, 149, 4, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[61982, 1633, 222, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[62207, 1640, 302, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[62546, 1651, 232, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[62781, 1658, 373, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[63191, 1670, 237, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[63431, 1677, 251, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[63685, 1686, 316, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[64050, 1700, 76, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[64151, 1705, 167, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[64321, 1711, 703, 17, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[65061, 1733, 139, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[65203, 1739, 604, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[65856, 1757, 88, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[65969, 1762, 278, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[66250, 1771, 349, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[66636, 1784, 151, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[66790, 1790, 617, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[67456, 1808, 92, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[67573, 1813, 282, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[67858, 1822, 365, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[68260, 1835, 155, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[68418, 1841, 629, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[69096, 1859, 77, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[69198, 1864, 328, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[69529, 1875, 1543, 33, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[71109, 1913, 166, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[71278, 1920, 472, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[71753, 1931, 204, 5, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[71994, 1941, 140, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[72137, 1947, 578, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[72764, 1965, 78, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[72845, 1968, 204, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[73074, 1978, 159, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[73236, 1984, 658, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[73931, 2005, 126, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[74060, 2011, 759, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[74856, 2030, 132, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[74991, 2036, 530, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[75558, 2052, 141, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[75702, 2058, 587, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[76338, 2076, 77, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[76418, 2079, 210, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[76653, 2089, 159, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[76815, 2095, 654, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[77506, 2116, 125, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[77634, 2122, 2521, 41, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[80192, 2168, 132, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[80327, 2174, 476, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[80840, 2190, 140, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[80983, 2196, 578, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[81610, 2214, 79, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[81692, 2217, 207, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[81924, 2227, 159, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[82086, 2233, 662, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[82785, 2254, 127, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[82915, 2260, 851, 15, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[83803, 2280, 134, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[83940, 2286, 478, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[84455, 2302, 142, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[84600, 2308, 590, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[85239, 2326, 72, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[85336, 2331, 195, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[85534, 2339, 479, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[86050, 2354, 135, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[86188, 2360, 554, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[86791, 2377, 73, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[86867, 2380, 201, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[87093, 2390, 159, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[87255, 2396, 638, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[87930, 2417, 121, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[88054, 2423, 542, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[88633, 2438, 128, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[88764, 2444, 1002, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[89803, 2467, 136, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[89942, 2473, 557, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[90548, 2490, 86, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[90659, 2495, 383, 10, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[91045, 2507, 813, 15, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[91861, 2524, 1466, 27, 180, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[93330, 2553, 932, 17, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[94311, 2576, 107, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[94443, 2581, 171, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[94617, 2588, 543, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[95197, 2604, 172, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[95372, 2611, 545, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[95954, 2627, 173, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[96130, 2634, 547, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[96714, 2650, 152, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[96869, 2656, 620, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[97526, 2673, 153, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[97682, 2679, 623, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[98342, 2696, 154, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[98499, 2702, 626, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99174, 2720, 80, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99257, 2723, 187, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99469, 2731, 130, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99602, 2737, 359, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99964, 2748, 157, 3, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[100124, 2753, 578, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[100739, 2770, 135, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[100877, 2776, 577, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[101491, 2790, 143, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[101637, 2796, 593, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[102291, 2815, 77, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[102393, 2820, 137, 4, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[102555, 2828, 404, 13, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[102962, 2843, 160, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[103125, 2849, 413, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[103541, 2859, 417, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[103961, 2869, 265, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[104275, 2881, 86, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[104386, 2886, 202, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[104591, 2893, 1088, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[105716, 2916, 149, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[105868, 2922, 611, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[106528, 2940, 78, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[106631, 2945, 460, 14, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[107094, 2961, 2060, 33, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[109157, 2996, 185, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[109379, 3005, 141, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[109523, 3011, 587, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[110159, 3029, 85, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[110269, 3034, 263, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[110535, 3043, 938, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[111476, 3063, 822, 17, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[112335, 3085, 136, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[112474, 3091, 557, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[113068, 3107, 135, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[113206, 3113, 554, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[113809, 3130, 80, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[113914, 3135, 278, 10, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[114195, 3147, 2169, 45, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[116401, 3197, 143, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[116547, 3203, 593, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[117189, 3221, 70, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[117284, 3226, 305, 8, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[117592, 3236, 548, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[118177, 3251, 150, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[118330, 3258, 438, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[118805, 3271, 129, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[118937, 3277, 832, 17, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[119818, 3300, 95, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[119938, 3305, 305, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[120246, 3316, 621, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[120928, 3335, 102, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[121055, 3340, 92, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[121172, 3345, 411, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[121586, 3354, 3443, 54, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[125066, 3413, 185, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[125254, 3420, 689, 13, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[125992, 3439, 80, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[126097, 3444, 222, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[126322, 3453, 140, 3, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[126465, 3458, 1147, 23, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[127661, 3487, 112, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[127798, 3492, 371, 10, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[128172, 3504, 188, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[128363, 3510, 2889, 49, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[131289, 3564, 421, 10, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[131713, 3576, 2867, 49, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[134629, 3631, 125, 2, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[134779, 3637, 364, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[135146, 3648, 2913, 49, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[138096, 3702, 414, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[138513, 3713, 2904, 50, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[141466, 3769, 105, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[141596, 3774, 147, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[141746, 3780, 948, 19, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[142731, 3804, 164, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[142898, 3811, 483, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[143418, 3825, 166, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[143587, 3832, 500, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[144124, 3846, 166, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[144293, 3853, 503, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[144845, 3868, 103, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[144973, 3873, 145, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[145121, 3879, 938, 19, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[146096, 3903, 162, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[146261, 3910, 479, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[146777, 3924, 164, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[146944, 3931, 496, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[147477, 3945, 164, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[147644, 3952, 499, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[148192, 3967, 110, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[148327, 3972, 148, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[148478, 3978, 973, 19, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[149488, 4002, 169, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[149660, 4009, 506, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[150203, 4024, 171, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[150377, 4031, 510, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[150924, 4045, 171, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[151098, 4052, 513, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[151660, 4067, 108, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[151793, 4072, 150, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[151946, 4078, 963, 19, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[152946, 4102, 167, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[153116, 4109, 489, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[153642, 4123, 169, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[153814, 4130, 506, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[154357, 4144, 169, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[154529, 4151, 509, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[155099, 4167, 83, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[155207, 4172, 93, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[155303, 4175, 6957, 130, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[162297, 4310, 97, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[162397, 4313, 3206, 58, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[165652, 4377, 84, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[165761, 4382, 90, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[165876, 4387, 299, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[166178, 4397, 421, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[166648, 4411, 138, 2, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[166789, 4415, 169, 4, 70, "Text",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[166983, 4423, 128, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[167114, 4430, 592, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[167743, 4446, 162, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[167908, 4453, 1096, 21, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[169007, 4476, 453, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[169497, 4489, 154, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[169654, 4496, 1103, 22, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[170794, 4523, 148, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[170945, 4530, 1212, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[172160, 4556, 264, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[172461, 4567, 168, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[172632, 4574, 1089, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[173736, 4597, 103, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[173876, 4603, 106, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[174007, 4608, 112, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[174122, 4611, 1854, 34, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[176013, 4650, 187, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[176203, 4657, 940, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[177180, 4678, 143, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[177326, 4684, 764, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[178139, 4704, 107, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[178271, 4709, 171, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[178445, 4715, 3512, 57, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[181994, 4777, 198, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[182195, 4784, 712, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[182910, 4800, 617, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[183530, 4814, 908, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[184487, 4838, 104, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[184616, 4843, 268, 8, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[184887, 4853, 2780, 45, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[187704, 4903, 218, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[187925, 4910, 2664, 45, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[190592, 4957, 1708, 28, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[192303, 4987, 2057, 38, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[194363, 5027, 320, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[194720, 5038, 268, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[194991, 5049, 2095, 36, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[197089, 5087, 143, 3, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[197281, 5096, 97, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[197403, 5101, 174, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[197580, 5108, 541, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[198124, 5120, 381, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[198566, 5134, 88, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[198679, 5139, 94, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[198798, 5144, 299, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[199100, 5154, 409, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[199558, 5168, 114, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[199697, 5173, 132, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[199832, 5180, 815, 15, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[200684, 5200, 166, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[200853, 5207, 1142, 20, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[201998, 5229, 469, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[202504, 5242, 158, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[202665, 5249, 1246, 24, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[203948, 5278, 148, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[204099, 5285, 1362, 27, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[205464, 5314, 268, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[205769, 5325, 199, 7, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[205971, 5334, 1346, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[207354, 5363, 163, 5, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[207520, 5370, 1744, 31, 116, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[209301, 5406, 219, 7, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[209523, 5415, 1041, 19, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[210601, 5439, 177, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[210781, 5446, 841, 15, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[211671, 5467, 203, 6, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[211899, 5477, 253, 8, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[212155, 5487, 1697, 31, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[213889, 5523, 228, 6, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[214120, 5531, 2906, 51, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[217029, 5584, 1548, 27, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[218580, 5613, 3360, 58, 161, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[221977, 5676, 172, 4, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[222152, 5682, 267, 5, 41, "Input",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[222422, 5689, 166, 4, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[222591, 5695, 1056, 20, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[223650, 5717, 1913, 34, 206, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[225566, 5753, 315, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[225884, 5761, 1730, 35, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[239461, 6127, 82, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[239568, 6132, 89, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[239682, 6137, 299, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[239984, 6147, 350, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[240383, 6160, 109, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[240517, 6165, 127, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[240647, 6172, 448, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[241132, 6185, 141, 2, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[241276, 6189, 835, 17, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[242114, 6208, 338, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[242489, 6219, 201, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[242693, 6226, 248, 5, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[242944, 6233, 776, 15, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[243723, 6250, 1348, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[245108, 6275, 161, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[245272, 6282, 1416, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[246691, 6308, 468, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[247162, 6318, 1416, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[248581, 6344, 468, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[249086, 6357, 153, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[249242, 6364, 1005, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[250284, 6389, 148, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[250435, 6396, 1123, 23, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[251561, 6421, 263, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[251861, 6432, 235, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[252099, 6440, 1302, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[253404, 6467, 229, 5, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[253648, 6475, 103, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[253788, 6481, 103, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[253916, 6486, 134, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[254053, 6492, 1799, 32, 70, "Input",
      Evaluatable->False,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[255855, 6526, 333, 7, 70, "Input",
      Evaluatable->False,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[256225, 6538, 134, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[256362, 6544, 1799, 32, 70, "Input",
      Evaluatable->False,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[258164, 6578, 333, 7, 70, "Input",
      Evaluatable->False,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[258534, 6590, 148, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[258685, 6597, 3118, 49, 70, "Input",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[261852, 6652, 105, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[261982, 6657, 178, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[262163, 6663, 432, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[262598, 6673, 1357, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[263992, 6703, 143, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[264138, 6709, 3281, 56, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[267468, 6771, 102, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[267595, 6776, 100, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[267698, 6779, 1440, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[269141, 6805, 334, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[269512, 6817, 99, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[269614, 6820, 1441, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[271058, 6846, 334, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[271429, 6858, 145, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[271577, 6865, 394, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[272020, 6880, 136, 4, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[272181, 6888, 148, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[272332, 6894, 2633, 43, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[274968, 6939, 342, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[275347, 6951, 148, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[275498, 6957, 2621, 43, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[278122, 7002, 342, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[278513, 7015, 116, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[278654, 7020, 152, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[278809, 7026, 2709, 43, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[281521, 7071, 323, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[281881, 7083, 153, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[282037, 7089, 2869, 45, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[284909, 7136, 322, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[285280, 7149, 122, 2, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[285427, 7155, 142, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[285572, 7161, 2425, 39, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[288000, 7202, 313, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[288350, 7213, 142, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[288495, 7219, 2425, 39, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[290923, 7260, 313, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[291285, 7272, 86, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[291396, 7277, 147, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[291546, 7283, 1332, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[292881, 7305, 1852, 30, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[294736, 7337, 1478, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[296217, 7364, 1477, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[297743, 7395, 99, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[297867, 7400, 138, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[298008, 7406, 533, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[298544, 7419, 392, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[298973, 7432, 147, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[299123, 7438, 564, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[299690, 7452, 437, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[300164, 7465, 140, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[300307, 7471, 369, 8, 70, "Text",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[300679, 7481, 434, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[301174, 7496, 87, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[301286, 7501, 107, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[301396, 7504, 3086, 50, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[304519, 7559, 104, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[304626, 7562, 1762, 31, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[306413, 7597, 212, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[306628, 7605, 1745, 35, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[308410, 7645, 230, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[308643, 7652, 5671, 106, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[314317, 7760, 353, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[314719, 7772, 107, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[314851, 7777, 426, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[315280, 7786, 4065, 64, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[319382, 7855, 169, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[319554, 7862, 732, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[320335, 7882, 104, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[320442, 7885, 16466, 278, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[336933, 8167, 162, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[337098, 8174, 726, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[337873, 8194, 105, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[338003, 8199, 208, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[338214, 8207, 2445, 41, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[340696, 8253, 137, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[340836, 8259, 2165, 44, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[343062, 8310, 87, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[343174, 8315, 107, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[343306, 8320, 538, 11, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[343847, 8333, 1101, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[344985, 8358, 166, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[345154, 8365, 732, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[345889, 8381, 535, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[346473, 8397, 104, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[346580, 8400, 2290, 42, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[348907, 8447, 107, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[349039, 8452, 426, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[349468, 8461, 602, 10, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[350107, 8476, 166, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[350276, 8483, 732, 14, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[351057, 8503, 104, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[351164, 8506, 2759, 49, 146, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[353960, 8560, 105, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[354090, 8565, 215, 6, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[354308, 8573, 3629, 66, 131, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[357974, 8644, 137, 4, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[358114, 8650, 741, 15, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[358858, 8667, 642, 13, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[359503, 8682, 920, 19, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[360484, 8708, 98, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[360607, 8713, 77, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[360709, 8718, 334, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[361046, 8728, 2067, 38, 251, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[363150, 8771, 135, 4, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[363288, 8777, 665, 15, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[387645, 9385, 75, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[387745, 9390, 96, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[387866, 9395, 122, 2, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[387991, 9399, 190, 4, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[388419, 9415, 80, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[388524, 9420, 263, 7, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[388790, 9429, 723, 14, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[392294, 9522, 78, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[392397, 9527, 73, 1, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[392473, 9530, 109, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[392619, 9538, 88, 1, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[392710, 9541, 362, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[393075, 9550, 312, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[393424, 9561, 77, 1, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[393504, 9564, 116, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}]},
  "4.0 Code"->{
    Cell[1979, 62, 78, 1, 51, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[2082, 67, 80, 1, 24, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[2187, 72, 153, 5, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[2878, 97, 603, 11, 128, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[3530, 114, 76, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[3609, 117, 161, 4, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[3773, 123, 418, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[4228, 136, 81, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[4312, 139, 129, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[4466, 146, 270, 8, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[4739, 156, 1399, 27, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[6175, 188, 236, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[6414, 195, 331, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[6782, 206, 242, 4, 48, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[7027, 212, 247, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[7311, 223, 234, 4, 48, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[7548, 229, 577, 11, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[8128, 242, 328, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[8459, 250, 573, 12, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9069, 267, 298, 8, 48, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9370, 277, 148, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9555, 285, 104, 1, 44, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9662, 288, 109, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9820, 297, 95, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[9918, 300, 409, 8, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[10330, 310, 327, 7, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[10660, 319, 267, 5, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[10930, 326, 661, 11, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[11594, 339, 476, 9, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[12073, 350, 1880, 27, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[13956, 379, 1538, 22, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[15497, 403, 357, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[15857, 412, 474, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[16334, 422, 462, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[16799, 432, 377, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[17179, 441, 416, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[17598, 450, 372, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[17973, 459, 402, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[18378, 468, 403, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[18784, 477, 424, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[19211, 486, 569, 9, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[19783, 497, 355, 6, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[20141, 505, 330, 6, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[20508, 516, 81, 1, 22, "Subsubsection",
      CellTags->"4.0 Code"],
    Cell[20592, 519, 572, 9, 86, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[21167, 530, 885, 14, 116, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[22055, 546, 737, 12, 101, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[22795, 560, 1053, 17, 56, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[23851, 579, 465, 8, 56, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[24331, 590, 89, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[24445, 595, 113, 1, 24, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[24583, 600, 137, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[24723, 607, 273, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25033, 619, 138, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25174, 626, 322, 7, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25533, 638, 142, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25678, 645, 240, 5, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[25967, 656, 84, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[26054, 659, 129, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[26220, 667, 78, 1, 22, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[26323, 672, 465, 13, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[26791, 687, 570, 12, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[27422, 706, 82, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[27529, 711, 85, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[27639, 716, 515, 13, 94, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[28157, 731, 1252, 27, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[29412, 760, 168, 4, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[29583, 766, 300, 7, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[29932, 779, 86, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[30043, 784, 200, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[30246, 791, 518, 9, 221, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[30801, 805, 271, 5, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[31075, 812, 1564, 32, 133, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[32688, 850, 72, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[32785, 855, 462, 11, 78, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[33250, 868, 1018, 21, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[34271, 891, 938, 22, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[35258, 919, 74, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[35357, 924, 353, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[36309, 950, 73, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[36407, 955, 124, 2, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[36556, 961, 231, 7, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[36790, 970, 612, 11, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[37439, 986, 221, 7, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[37663, 995, 153, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[37819, 1000, 613, 11, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[38481, 1017, 77, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[38583, 1022, 401, 13, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[38987, 1037, 454, 10, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[39444, 1049, 695, 15, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[40142, 1066, 142, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[40333, 1075, 82, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[40440, 1080, 383, 11, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[40826, 1093, 690, 11, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[41565, 1110, 86, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[41676, 1115, 337, 11, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42016, 1128, 290, 6, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42309, 1136, 135, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42505, 1146, 87, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42617, 1151, 74, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42716, 1156, 174, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[42893, 1162, 1045, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[43941, 1182, 188, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44178, 1192, 77, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44280, 1197, 177, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44460, 1203, 222, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44731, 1213, 139, 4, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[44895, 1221, 477, 13, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[45375, 1236, 2761, 48, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[48139, 1286, 1391, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[49567, 1316, 174, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[49744, 1323, 522, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[50303, 1338, 157, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[50463, 1344, 635, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[51147, 1362, 96, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[51246, 1365, 253, 6, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[51524, 1375, 233, 6, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[51760, 1383, 482, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[52245, 1393, 345, 8, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[52627, 1406, 233, 5, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[52863, 1413, 781, 15, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[53681, 1433, 200, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[53884, 1440, 657, 14, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[54590, 1460, 90, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[54705, 1465, 170, 4, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[54878, 1471, 4381, 73, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[59296, 1549, 165, 5, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[59464, 1556, 520, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[60021, 1571, 166, 5, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[60190, 1578, 494, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[60721, 1592, 149, 4, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[60873, 1598, 753, 15, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[61687, 1620, 96, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[61808, 1625, 149, 4, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[61982, 1633, 222, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[62207, 1640, 302, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[62546, 1651, 232, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[62781, 1658, 373, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[63191, 1670, 237, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[63431, 1677, 251, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[63685, 1686, 316, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[64050, 1700, 76, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[64151, 1705, 167, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[64321, 1711, 703, 17, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[65061, 1733, 139, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[65203, 1739, 604, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[65856, 1757, 88, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[65969, 1762, 278, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[66250, 1771, 349, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[66636, 1784, 151, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[66790, 1790, 617, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[67456, 1808, 92, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[67573, 1813, 282, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[67858, 1822, 365, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[68260, 1835, 155, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[68418, 1841, 629, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[69096, 1859, 77, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[69198, 1864, 328, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[69529, 1875, 1543, 33, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[71109, 1913, 166, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[71278, 1920, 472, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[71753, 1931, 204, 5, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[71994, 1941, 140, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[72137, 1947, 578, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[72764, 1965, 78, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[72845, 1968, 204, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[73074, 1978, 159, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[73236, 1984, 658, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[73931, 2005, 126, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[74060, 2011, 759, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[74856, 2030, 132, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[74991, 2036, 530, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[75558, 2052, 141, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[75702, 2058, 587, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[76338, 2076, 77, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[76418, 2079, 210, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[76653, 2089, 159, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[76815, 2095, 654, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[77506, 2116, 125, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[77634, 2122, 2521, 41, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[80192, 2168, 132, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[80327, 2174, 476, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[80840, 2190, 140, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[80983, 2196, 578, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[81610, 2214, 79, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[81692, 2217, 207, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[81924, 2227, 159, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[82086, 2233, 662, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[82785, 2254, 127, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[82915, 2260, 851, 15, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[83803, 2280, 134, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[83940, 2286, 478, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[84455, 2302, 142, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[84600, 2308, 590, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[85239, 2326, 72, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[85336, 2331, 195, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[85534, 2339, 479, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[86050, 2354, 135, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[86188, 2360, 554, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[86791, 2377, 73, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[86867, 2380, 201, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[87093, 2390, 159, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[87255, 2396, 638, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[87930, 2417, 121, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[88054, 2423, 542, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[88633, 2438, 128, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[88764, 2444, 1002, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[89803, 2467, 136, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[89942, 2473, 557, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[90548, 2490, 86, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[90659, 2495, 383, 10, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[91045, 2507, 813, 15, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[91861, 2524, 1466, 27, 180, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[93330, 2553, 932, 17, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[94311, 2576, 107, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[94443, 2581, 171, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[94617, 2588, 543, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[95197, 2604, 172, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[95372, 2611, 545, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[95954, 2627, 173, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[96130, 2634, 547, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[96714, 2650, 152, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[96869, 2656, 620, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[97526, 2673, 153, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[97682, 2679, 623, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[98342, 2696, 154, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[98499, 2702, 626, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99174, 2720, 80, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99257, 2723, 187, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99469, 2731, 130, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99602, 2737, 359, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[99964, 2748, 157, 3, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[100124, 2753, 578, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[100739, 2770, 135, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[100877, 2776, 577, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[101491, 2790, 143, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[101637, 2796, 593, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[102291, 2815, 77, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[102393, 2820, 137, 4, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[102555, 2828, 404, 13, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[102962, 2843, 160, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[103125, 2849, 413, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[103541, 2859, 417, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[103961, 2869, 265, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[104275, 2881, 86, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[104386, 2886, 202, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[104591, 2893, 1088, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[105716, 2916, 149, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[105868, 2922, 611, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[106528, 2940, 78, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[106631, 2945, 460, 14, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[107094, 2961, 2060, 33, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[109157, 2996, 185, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[109379, 3005, 141, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[109523, 3011, 587, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[110159, 3029, 85, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[110269, 3034, 263, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[110535, 3043, 938, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[111476, 3063, 822, 17, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[112335, 3085, 136, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[112474, 3091, 557, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[113068, 3107, 135, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[113206, 3113, 554, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[113809, 3130, 80, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[113914, 3135, 278, 10, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[114195, 3147, 2169, 45, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[116401, 3197, 143, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[116547, 3203, 593, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[117189, 3221, 70, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[117284, 3226, 305, 8, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[117592, 3236, 548, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[118177, 3251, 150, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[118330, 3258, 438, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[118805, 3271, 129, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[118937, 3277, 832, 17, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[119818, 3300, 95, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[119938, 3305, 305, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[120246, 3316, 621, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[120928, 3335, 102, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[121055, 3340, 92, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[121172, 3345, 411, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[121586, 3354, 3443, 54, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[125066, 3413, 185, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[125254, 3420, 689, 13, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[125992, 3439, 80, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[126097, 3444, 222, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[126322, 3453, 140, 3, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[126465, 3458, 1147, 23, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[127661, 3487, 112, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[127798, 3492, 371, 10, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[128172, 3504, 188, 4, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[128363, 3510, 2889, 49, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[131289, 3564, 421, 10, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[131713, 3576, 2867, 49, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[134629, 3631, 125, 2, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[134779, 3637, 364, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[135146, 3648, 2913, 49, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[138096, 3702, 414, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[138513, 3713, 2904, 50, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[141466, 3769, 105, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[141596, 3774, 147, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[141746, 3780, 948, 19, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[142731, 3804, 164, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[142898, 3811, 483, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[143418, 3825, 166, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[143587, 3832, 500, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[144124, 3846, 166, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[144293, 3853, 503, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[144845, 3868, 103, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[144973, 3873, 145, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[145121, 3879, 938, 19, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[146096, 3903, 162, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[146261, 3910, 479, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[146777, 3924, 164, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[146944, 3931, 496, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[147477, 3945, 164, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[147644, 3952, 499, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[148192, 3967, 110, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[148327, 3972, 148, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[148478, 3978, 973, 19, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[149488, 4002, 169, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[149660, 4009, 506, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[150203, 4024, 171, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[150377, 4031, 510, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[150924, 4045, 171, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[151098, 4052, 513, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[151660, 4067, 108, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[151793, 4072, 150, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[151946, 4078, 963, 19, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[152946, 4102, 167, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[153116, 4109, 489, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[153642, 4123, 169, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[153814, 4130, 506, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[154357, 4144, 169, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[154529, 4151, 509, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[155099, 4167, 83, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[155207, 4172, 93, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[155303, 4175, 6957, 130, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[162297, 4310, 97, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[162397, 4313, 3206, 58, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[165652, 4377, 84, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[165761, 4382, 90, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[165876, 4387, 299, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[166178, 4397, 421, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[166648, 4411, 138, 2, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[166789, 4415, 169, 4, 70, "Text",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[166983, 4423, 128, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[167114, 4430, 592, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[167743, 4446, 162, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[167908, 4453, 1096, 21, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[169007, 4476, 453, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[169497, 4489, 154, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[169654, 4496, 1103, 22, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[170794, 4523, 148, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[170945, 4530, 1212, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[172160, 4556, 264, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[172461, 4567, 168, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[172632, 4574, 1089, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[173736, 4597, 103, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[173876, 4603, 106, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[174007, 4608, 112, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[174122, 4611, 1854, 34, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[176013, 4650, 187, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[176203, 4657, 940, 16, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[177180, 4678, 143, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[177326, 4684, 764, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[178139, 4704, 107, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[178271, 4709, 171, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[178445, 4715, 3512, 57, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[181994, 4777, 198, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[182195, 4784, 712, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[182910, 4800, 617, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[183530, 4814, 908, 18, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[184487, 4838, 104, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[184616, 4843, 268, 8, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[184887, 4853, 2780, 45, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[187704, 4903, 218, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[187925, 4910, 2664, 45, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[190592, 4957, 1708, 28, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[192303, 4987, 2057, 38, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[194363, 5027, 320, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[194720, 5038, 268, 9, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[194991, 5049, 2095, 36, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[197089, 5087, 143, 3, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[197281, 5096, 97, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[197403, 5101, 174, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[197580, 5108, 541, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[198124, 5120, 381, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[198566, 5134, 88, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[198679, 5139, 94, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[198798, 5144, 299, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[199100, 5154, 409, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[199558, 5168, 114, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[199697, 5173, 132, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[199832, 5180, 815, 15, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[200684, 5200, 166, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[200853, 5207, 1142, 20, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[201998, 5229, 469, 8, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[202504, 5242, 158, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[202665, 5249, 1246, 24, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[203948, 5278, 148, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[204099, 5285, 1362, 27, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[205464, 5314, 268, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[205769, 5325, 199, 7, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[205971, 5334, 1346, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[207354, 5363, 163, 5, 40, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[207520, 5370, 1744, 31, 116, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[209301, 5406, 219, 7, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[209523, 5415, 1041, 19, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[210601, 5439, 177, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[210781, 5446, 841, 15, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[211671, 5467, 203, 6, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[211899, 5477, 253, 8, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[212155, 5487, 1697, 31, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[213889, 5523, 228, 6, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[214120, 5531, 2906, 51, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[217029, 5584, 1548, 27, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[218580, 5613, 3360, 58, 161, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[221977, 5676, 172, 4, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[222152, 5682, 267, 5, 41, "Input",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[222422, 5689, 166, 4, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[222591, 5695, 1056, 20, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[223650, 5717, 1913, 34, 206, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[225566, 5753, 315, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[225884, 5761, 1730, 35, 86, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[227675, 5803, 97, 1, 35, "Subsection",
      CellTags->"4.0 Code"],
    Cell[227797, 5808, 100, 1, 70, "Subsubsection",
      CellTags->"4.0 Code"],
    Cell[227922, 5813, 152, 5, 70, "CommentText",
      CellTags->"4.0 Code"],
    Cell[228077, 5820, 925, 18, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[229005, 5840, 454, 8, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[229496, 5853, 145, 5, 70, "CommentText",
      CellTags->"4.0 Code"],
    Cell[229644, 5860, 1164, 21, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[230811, 5883, 211, 5, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[231059, 5893, 153, 5, 70, "CommentText",
      CellTags->"4.0 Code"],
    Cell[231215, 5900, 1252, 23, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[232470, 5925, 192, 5, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[232699, 5935, 124, 4, 70, "CommentText",
      CellTags->"4.0 Code"],
    Cell[232826, 5941, 949, 19, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[233824, 5966, 182, 6, 70, "Subsubsection",
      CellTags->"4.0 Code"],
    Cell[234031, 5976, 255, 6, 70, "CommentText",
      CellTags->"4.0 Code"],
    Cell[234289, 5984, 1833, 34, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[236171, 6024, 108, 2, 70, "Subsubsection",
      CellTags->"4.0 Code"],
    Cell[236304, 6030, 158, 5, 70, "CommentText",
      CellTags->"4.0 Code"],
    Cell[236465, 6037, 1216, 22, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[237684, 6061, 197, 5, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[237918, 6071, 134, 4, 70, "CommentText",
      CellTags->"4.0 Code"],
    Cell[238055, 6077, 427, 10, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[238531, 6093, 187, 6, 70, "Subsubsection",
      CellTags->"4.0 Code"],
    Cell[238743, 6103, 181, 5, 70, "CommentText",
      CellTags->"4.0 Code"],
    Cell[238927, 6110, 473, 10, 70, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[239461, 6127, 82, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[239568, 6132, 89, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[239682, 6137, 299, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[239984, 6147, 350, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[240383, 6160, 109, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[240517, 6165, 127, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[240647, 6172, 448, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[241132, 6185, 141, 2, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[241276, 6189, 835, 17, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[242114, 6208, 338, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[242489, 6219, 201, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[242693, 6226, 248, 5, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[242944, 6233, 776, 15, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[243723, 6250, 1348, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[245108, 6275, 161, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[245272, 6282, 1416, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[246691, 6308, 468, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[247162, 6318, 1416, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[248581, 6344, 468, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[249086, 6357, 153, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[249242, 6364, 1005, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[250284, 6389, 148, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[250435, 6396, 1123, 23, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[251561, 6421, 263, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[251861, 6432, 235, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[252099, 6440, 1302, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[253404, 6467, 229, 5, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[253648, 6475, 103, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[253788, 6481, 103, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[253916, 6486, 134, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[254053, 6492, 1799, 32, 70, "Input",
      Evaluatable->False,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[255855, 6526, 333, 7, 70, "Input",
      Evaluatable->False,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[256225, 6538, 134, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[256362, 6544, 1799, 32, 70, "Input",
      Evaluatable->False,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[258164, 6578, 333, 7, 70, "Input",
      Evaluatable->False,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[258534, 6590, 148, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[258685, 6597, 3118, 49, 70, "Input",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[261852, 6652, 105, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[261982, 6657, 178, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[262163, 6663, 432, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[262598, 6673, 1357, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[263992, 6703, 143, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[264138, 6709, 3281, 56, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[267468, 6771, 102, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[267595, 6776, 100, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[267698, 6779, 1440, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[269141, 6805, 334, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[269512, 6817, 99, 1, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[269614, 6820, 1441, 24, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[271058, 6846, 334, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[271429, 6858, 145, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[271577, 6865, 394, 9, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[272020, 6880, 136, 4, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[272181, 6888, 148, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[272332, 6894, 2633, 43, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[274968, 6939, 342, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[275347, 6951, 148, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[275498, 6957, 2621, 43, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[278122, 7002, 342, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[278513, 7015, 116, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[278654, 7020, 152, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[278809, 7026, 2709, 43, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[281521, 7071, 323, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[281881, 7083, 153, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[282037, 7089, 2869, 45, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[284909, 7136, 322, 7, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[285280, 7149, 122, 2, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[285427, 7155, 142, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[285572, 7161, 2425, 39, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[288000, 7202, 313, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[288350, 7213, 142, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[288495, 7219, 2425, 39, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[290923, 7260, 313, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[291285, 7272, 86, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[291396, 7277, 147, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[291546, 7283, 1332, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[292881, 7305, 1852, 30, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[294736, 7337, 1478, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[296217, 7364, 1477, 25, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[297743, 7395, 99, 1, 30, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[297867, 7400, 138, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[298008, 7406, 533, 11, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[298544, 7419, 392, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[298973, 7432, 147, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[299123, 7438, 564, 12, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[299690, 7452, 437, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[300164, 7465, 140, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[300307, 7471, 369, 8, 70, "Text",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[300679, 7481, 434, 8, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[301174, 7496, 87, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[301286, 7501, 107, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[301396, 7504, 3086, 50, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[304519, 7559, 104, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[304626, 7562, 1762, 31, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[306413, 7597, 212, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[306628, 7605, 1745, 35, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[308410, 7645, 230, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[308643, 7652, 5671, 106, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[314317, 7760, 353, 6, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[314719, 7772, 107, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[314851, 7777, 426, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[315280, 7786, 4065, 64, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[319382, 7855, 169, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[319554, 7862, 732, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[320335, 7882, 104, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[320442, 7885, 16466, 278, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[336933, 8167, 162, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[337098, 8174, 726, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[337873, 8194, 105, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[338003, 8199, 208, 6, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[338214, 8207, 2445, 41, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[340696, 8253, 137, 4, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[340836, 8259, 2165, 44, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[343062, 8310, 87, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[343174, 8315, 107, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[343306, 8320, 538, 11, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[343847, 8333, 1101, 20, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[344985, 8358, 166, 5, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[345154, 8365, 732, 14, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[345889, 8381, 535, 10, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[346473, 8397, 104, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[346580, 8400, 2290, 42, 70, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[348907, 8447, 107, 1, 70, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[349039, 8452, 426, 7, 70, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[349468, 8461, 602, 10, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[350107, 8476, 166, 5, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[350276, 8483, 732, 14, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[351057, 8503, 104, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[351164, 8506, 2759, 49, 146, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[353960, 8560, 105, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[354090, 8565, 215, 6, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[354308, 8573, 3629, 66, 131, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[357974, 8644, 137, 4, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[358114, 8650, 741, 15, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[358858, 8667, 642, 13, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[359503, 8682, 920, 19, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[360484, 8708, 98, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[360607, 8713, 77, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[360709, 8718, 334, 8, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[361046, 8728, 2067, 38, 251, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[363150, 8771, 135, 4, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[363288, 8777, 665, 15, 71, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[364002, 8798, 69, 1, 30, "Subsubsection",
      CellTags->"4.0 Code"],
    Cell[364096, 8803, 431, 15, 62, "CommentText",
      CellTags->"4.0 Code"],
    Cell[364530, 8820, 163, 4, 26, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[364696, 8826, 4065, 77, 596, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[368798, 8908, 290, 7, 40, "CommentText",
      CellTags->"4.0 Code"],
    Cell[369091, 8917, 504, 10, 41, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[369632, 8932, 261, 7, 40, "CommentText",
      CellTags->"4.0 Code"],
    Cell[369896, 8941, 433, 10, 41, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[370378, 8957, 68, 1, 30, "Subsubsection",
      CellTags->"4.0 Code"],
    Cell[370471, 8962, 289, 7, 46, "CommentText",
      CellTags->"4.0 Code"],
    Cell[370763, 8971, 482, 10, 41, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[371282, 8986, 331, 8, 40, "CommentText",
      CellTags->"4.0 Code"],
    Cell[371616, 8996, 505, 10, 41, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[372158, 9011, 325, 8, 46, "CommentText",
      CellTags->"4.0 Code"],
    Cell[372486, 9021, 490, 10, 41, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[373013, 9036, 267, 7, 46, "CommentText",
      CellTags->"4.0 Code"],
    Cell[373283, 9045, 771, 16, 56, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[374091, 9066, 596, 12, 94, "CommentText",
      CellTags->"4.0 Code"],
    Cell[374690, 9080, 767, 12, 71, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[375460, 9094, 264, 5, 26, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[375727, 9101, 565, 11, 41, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[376295, 9114, 1816, 32, 191, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[378148, 9151, 822, 20, 94, "CommentText",
      CellTags->"4.0 Code"],
    Cell[378973, 9173, 513, 12, 41, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[379489, 9187, 1666, 32, 161, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[381204, 9225, 74, 1, 30, "Subsubsection",
      CellTags->"4.0 Code"],
    Cell[381303, 9230, 165, 5, 46, "CommentText",
      CellTags->"4.0 Code"],
    Cell[381471, 9237, 1152, 20, 56, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[382626, 9259, 204, 5, 26, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[382867, 9269, 141, 4, 40, "CommentText",
      CellTags->"4.0 Code"],
    Cell[383011, 9275, 857, 21, 41, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[383905, 9301, 213, 5, 40, "CommentText",
      CellTags->"4.0 Code"],
    Cell[384121, 9308, 182, 4, 26, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[384306, 9314, 1955, 34, 206, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[386298, 9353, 316, 6, 56, "CommentText",
      CellTags->"4.0 Code"],
    Cell[387645, 9385, 75, 1, 35, "Subsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[387745, 9390, 96, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[387866, 9395, 122, 2, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[387991, 9399, 190, 4, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[388184, 9405, 186, 4, 26, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[388419, 9415, 80, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[388524, 9420, 263, 7, 62, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[388790, 9429, 723, 14, 101, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[389562, 9449, 84, 1, 44, "Subsubsection",
      CellTags->"4.0 Code"],
    Cell[389671, 9454, 126, 4, 46, "CommentText",
      CellTags->"4.0 Code"],
    Cell[389800, 9460, 1713, 29, 491, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[391550, 9494, 307, 9, 46, "CommentText",
      CellTags->"4.0 Code"],
    Cell[391860, 9505, 385, 11, 26, "Input",
      InitializationCell->True,
      CellTags->"4.0 Code"],
    Cell[392294, 9522, 78, 1, 44, "Subsubsection",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[392397, 9527, 73, 1, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[392473, 9530, 109, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[392619, 9538, 88, 1, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[392710, 9541, 362, 7, 56, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[393075, 9550, 312, 6, 41, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[393424, 9561, 77, 1, 46, "CommentText",
      CellTags->{"3.0 Code", "4.0 Code"}],
    Cell[393504, 9564, 116, 3, 26, "Input",
      InitializationCell->True,
      CellTags->{"3.0 Code", "4.0 Code"}]}
  }
*)

(*CellTagsIndex
CellTagsIndex->{
  {"3.0 Code", 422272, 10573},
  {"4.0 Code", 483182, 12008}
  }
*)

(*NotebookFileOutline
Notebook[{

Cell[CellGroupData[{
Cell[1739, 51, 137, 4, 108, "Subtitle"],
Cell[1879, 57, 75, 1, 46, "Subsubtitle"],

Cell[CellGroupData[{
Cell[1979, 62, 78, 1, 51, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[2082, 67, 80, 1, 24, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[2187, 72, 153, 5, 40, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[2365, 81, 269, 6, 56, "Input",
  InitializationCell->True],
Cell[2637, 89, 226, 5, 41, "Output"]
}, Closed]],
Cell[2878, 97, 603, 11, 128, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[3530, 114, 76, 1, 22, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[3609, 117, 161, 4, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[3773, 123, 418, 8, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[4228, 136, 81, 1, 22, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[4312, 139, 129, 3, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[4466, 146, 270, 8, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[4739, 156, 1399, 27, 86, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[6175, 188, 236, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[6414, 195, 331, 6, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[6782, 206, 242, 4, 48, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[7027, 212, 247, 6, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[7311, 223, 234, 4, 48, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[7548, 229, 577, 11, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[8128, 242, 328, 6, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[8459, 250, 573, 12, 101, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[9069, 267, 298, 8, 48, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[9370, 277, 148, 3, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[9555, 285, 104, 1, 44, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[9662, 288, 109, 3, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[9820, 297, 95, 1, 22, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[9918, 300, 409, 8, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[10330, 310, 327, 7, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[10660, 319, 267, 5, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[10930, 326, 661, 11, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[11594, 339, 476, 9, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[12073, 350, 1880, 27, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[13956, 379, 1538, 22, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[15497, 403, 357, 7, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[15857, 412, 474, 8, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[16334, 422, 462, 8, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[16799, 432, 377, 7, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[17179, 441, 416, 7, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[17598, 450, 372, 7, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[17973, 459, 402, 7, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[18378, 468, 403, 7, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[18784, 477, 424, 7, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[19211, 486, 569, 9, 86, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[19783, 497, 355, 6, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[20141, 505, 330, 6, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[20508, 516, 81, 1, 22, "Subsubsection",
  CellTags->"4.0 Code"],
Cell[20592, 519, 572, 9, 86, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[21167, 530, 885, 14, 116, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[22055, 546, 737, 12, 101, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[22795, 560, 1053, 17, 56, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[23851, 579, 465, 8, 56, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],
Cell[24331, 590, 89, 1, 22, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[24445, 595, 113, 1, 24, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[24583, 600, 137, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[24723, 607, 273, 7, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[25033, 619, 138, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[25174, 626, 322, 7, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[25533, 638, 142, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[25678, 645, 240, 5, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[25967, 656, 84, 1, 22, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[26054, 659, 129, 3, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[26220, 667, 78, 1, 22, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[26323, 672, 465, 13, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[26791, 687, 570, 12, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[27422, 706, 82, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[27529, 711, 85, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[27639, 716, 515, 13, 94, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[28157, 731, 1252, 27, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[29412, 760, 168, 4, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[29583, 766, 300, 7, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[29932, 779, 86, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[30043, 784, 200, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[30246, 791, 518, 9, 221, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[30801, 805, 271, 5, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[31075, 812, 1564, 32, 133, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[32688, 850, 72, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[32785, 855, 462, 11, 78, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[33250, 868, 1018, 21, 86, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[34271, 891, 938, 22, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[35258, 919, 74, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[35357, 924, 353, 8, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[35713, 934, 535, 9, 191, "Input",
  InitializationCell->True]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[36309, 950, 73, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[36407, 955, 124, 2, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[36556, 961, 231, 7, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[36790, 970, 612, 11, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[37439, 986, 221, 7, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[37663, 995, 153, 3, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[37819, 1000, 613, 11, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[38481, 1017, 77, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[38583, 1022, 401, 13, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[38987, 1037, 454, 10, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[39444, 1049, 695, 15, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[40142, 1066, 142, 3, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[40333, 1075, 82, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[40440, 1080, 383, 11, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[40826, 1093, 690, 11, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[41565, 1110, 86, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[41676, 1115, 337, 11, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[42016, 1128, 290, 6, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[42309, 1136, 135, 3, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[42505, 1146, 87, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[42617, 1151, 74, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[42716, 1156, 174, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[42893, 1162, 1045, 18, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[43941, 1182, 188, 4, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[44178, 1192, 77, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[44280, 1197, 177, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[44460, 1203, 222, 4, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[44731, 1213, 139, 4, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[44895, 1221, 477, 13, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[45375, 1236, 2761, 48, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[48139, 1286, 1391, 25, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[49567, 1316, 174, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[49744, 1323, 522, 10, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[50303, 1338, 157, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[50463, 1344, 635, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[51147, 1362, 96, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[51246, 1365, 253, 6, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[51524, 1375, 233, 6, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[51760, 1383, 482, 8, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[52245, 1393, 345, 8, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[52627, 1406, 233, 5, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[52863, 1413, 781, 15, 101, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[53681, 1433, 200, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[53884, 1440, 657, 14, 101, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[54590, 1460, 90, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[54705, 1465, 170, 4, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[54878, 1471, 4381, 73, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[59296, 1549, 165, 5, 40, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[59464, 1556, 520, 10, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[60021, 1571, 166, 5, 40, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[60190, 1578, 494, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[60721, 1592, 149, 4, 40, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[60873, 1598, 753, 15, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[61687, 1620, 96, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[61808, 1625, 149, 4, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[61982, 1633, 222, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[62207, 1640, 302, 6, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[62546, 1651, 232, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[62781, 1658, 373, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[63191, 1670, 237, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[63431, 1677, 251, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[63685, 1686, 316, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[64050, 1700, 76, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[64151, 1705, 167, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[64321, 1711, 703, 17, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[65061, 1733, 139, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[65203, 1739, 604, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[65856, 1757, 88, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[65969, 1762, 278, 7, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[66250, 1771, 349, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[66636, 1784, 151, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[66790, 1790, 617, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[67456, 1808, 92, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[67573, 1813, 282, 7, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[67858, 1822, 365, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[68260, 1835, 155, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[68418, 1841, 629, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[69096, 1859, 77, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[69198, 1864, 328, 9, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[69529, 1875, 1543, 33, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[71109, 1913, 166, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[71278, 1920, 472, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[71753, 1931, 204, 5, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[71994, 1941, 140, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[72137, 1947, 578, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[72764, 1965, 78, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[72845, 1968, 204, 6, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[73074, 1978, 159, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[73236, 1984, 658, 16, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[73931, 2005, 126, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[74060, 2011, 759, 14, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[74856, 2030, 132, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[74991, 2036, 530, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[75558, 2052, 141, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[75702, 2058, 587, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[76338, 2076, 77, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[76418, 2079, 210, 6, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[76653, 2089, 159, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[76815, 2095, 654, 16, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[77506, 2116, 125, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[77634, 2122, 2521, 41, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[80192, 2168, 132, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[80327, 2174, 476, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[80840, 2190, 140, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[80983, 2196, 578, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[81610, 2214, 79, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[81692, 2217, 207, 6, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[81924, 2227, 159, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[82086, 2233, 662, 16, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[82785, 2254, 127, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[82915, 2260, 851, 15, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[83803, 2280, 134, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[83940, 2286, 478, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[84455, 2302, 142, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[84600, 2308, 590, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[85239, 2326, 72, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[85336, 2331, 195, 6, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[85534, 2339, 479, 10, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[86050, 2354, 135, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[86188, 2360, 554, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[86791, 2377, 73, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[86867, 2380, 201, 6, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[87093, 2390, 159, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[87255, 2396, 638, 16, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[87930, 2417, 121, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[88054, 2423, 542, 10, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[88633, 2438, 128, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[88764, 2444, 1002, 18, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[89803, 2467, 136, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[89942, 2473, 557, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[90548, 2490, 86, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[90659, 2495, 383, 10, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[91045, 2507, 813, 15, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[91861, 2524, 1466, 27, 180, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[93330, 2553, 932, 17, 86, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[94311, 2576, 107, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[94443, 2581, 171, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[94617, 2588, 543, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[95197, 2604, 172, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[95372, 2611, 545, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[95954, 2627, 173, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[96130, 2634, 547, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[96714, 2650, 152, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[96869, 2656, 620, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[97526, 2673, 153, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[97682, 2679, 623, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[98342, 2696, 154, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[98499, 2702, 626, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[99174, 2720, 80, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[99257, 2723, 187, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[99469, 2731, 130, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[99602, 2737, 359, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[99964, 2748, 157, 3, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[100124, 2753, 578, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[100739, 2770, 135, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[100877, 2776, 577, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[101491, 2790, 143, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[101637, 2796, 593, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[102291, 2815, 77, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[102393, 2820, 137, 4, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[102555, 2828, 404, 13, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[102962, 2843, 160, 4, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[103125, 2849, 413, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[103541, 2859, 417, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[103961, 2869, 265, 6, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[104275, 2881, 86, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[104386, 2886, 202, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[104591, 2893, 1088, 18, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[105716, 2916, 149, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[105868, 2922, 611, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[106528, 2940, 78, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[106631, 2945, 460, 14, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[107094, 2961, 2060, 33, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[109157, 2996, 185, 4, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[109379, 3005, 141, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[109523, 3011, 587, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[110159, 3029, 85, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[110269, 3034, 263, 7, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[110535, 3043, 938, 18, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[111476, 3063, 822, 17, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[112335, 3085, 136, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[112474, 3091, 557, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[113068, 3107, 135, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[113206, 3113, 554, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[113809, 3130, 80, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[113914, 3135, 278, 10, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[114195, 3147, 2169, 45, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[116401, 3197, 143, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[116547, 3203, 593, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[117189, 3221, 70, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[117284, 3226, 305, 8, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[117592, 3236, 548, 10, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[118177, 3251, 150, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[118330, 3258, 438, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[118805, 3271, 129, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[118937, 3277, 832, 17, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[119818, 3300, 95, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[119938, 3305, 305, 9, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[120246, 3316, 621, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[120928, 3335, 102, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[121055, 3340, 92, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[121172, 3345, 411, 7, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[121586, 3354, 3443, 54, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[125066, 3413, 185, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[125254, 3420, 689, 13, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[125992, 3439, 80, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[126097, 3444, 222, 7, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[126322, 3453, 140, 3, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[126465, 3458, 1147, 23, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[127661, 3487, 112, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[127798, 3492, 371, 10, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[128172, 3504, 188, 4, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[128363, 3510, 2889, 49, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[131289, 3564, 421, 10, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[131713, 3576, 2867, 49, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[134629, 3631, 125, 2, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[134779, 3637, 364, 9, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[135146, 3648, 2913, 49, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[138096, 3702, 414, 9, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[138513, 3713, 2904, 50, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[141466, 3769, 105, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[141596, 3774, 147, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[141746, 3780, 948, 19, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[142731, 3804, 164, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[142898, 3811, 483, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[143418, 3825, 166, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[143587, 3832, 500, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[144124, 3846, 166, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[144293, 3853, 503, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[144845, 3868, 103, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[144973, 3873, 145, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[145121, 3879, 938, 19, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[146096, 3903, 162, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[146261, 3910, 479, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[146777, 3924, 164, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[146944, 3931, 496, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[147477, 3945, 164, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[147644, 3952, 499, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[148192, 3967, 110, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[148327, 3972, 148, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[148478, 3978, 973, 19, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[149488, 4002, 169, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[149660, 4009, 506, 10, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[150203, 4024, 171, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[150377, 4031, 510, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[150924, 4045, 171, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[151098, 4052, 513, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[151660, 4067, 108, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[151793, 4072, 150, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[151946, 4078, 963, 19, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[152946, 4102, 167, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[153116, 4109, 489, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[153642, 4123, 169, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[153814, 4130, 506, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[154357, 4144, 169, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[154529, 4151, 509, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[155099, 4167, 83, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[155207, 4172, 93, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[155303, 4175, 6957, 130, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[162297, 4310, 97, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[162397, 4313, 3206, 58, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[165652, 4377, 84, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[165761, 4382, 90, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[165876, 4387, 299, 8, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[166178, 4397, 421, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[166648, 4411, 138, 2, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[166789, 4415, 169, 4, 70, "Text",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[166983, 4423, 128, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[167114, 4430, 592, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[167743, 4446, 162, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[167908, 4453, 1096, 21, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[169007, 4476, 453, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[169497, 4489, 154, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[169654, 4496, 1103, 22, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[170794, 4523, 148, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[170945, 4530, 1212, 24, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[172160, 4556, 264, 6, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[172461, 4567, 168, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[172632, 4574, 1089, 20, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],
Cell[173736, 4597, 103, 1, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[173876, 4603, 106, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[174007, 4608, 112, 1, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[174122, 4611, 1854, 34, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[176013, 4650, 187, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[176203, 4657, 940, 16, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[177180, 4678, 143, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[177326, 4684, 764, 14, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[178139, 4704, 107, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[178271, 4709, 171, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[178445, 4715, 3512, 57, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[181994, 4777, 198, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[182195, 4784, 712, 14, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[182910, 4800, 617, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[183530, 4814, 908, 18, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[184487, 4838, 104, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[184616, 4843, 268, 8, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[184887, 4853, 2780, 45, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[187704, 4903, 218, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[187925, 4910, 2664, 45, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[190592, 4957, 1708, 28, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[192303, 4987, 2057, 38, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[194363, 5027, 320, 6, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[194720, 5038, 268, 9, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[194991, 5049, 2095, 36, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[197089, 5087, 143, 3, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[197281, 5096, 97, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[197403, 5101, 174, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[197580, 5108, 541, 10, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[198124, 5120, 381, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[198566, 5134, 88, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[198679, 5139, 94, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[198798, 5144, 299, 8, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[199100, 5154, 409, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[199558, 5168, 114, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[199697, 5173, 132, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[199832, 5180, 815, 15, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[200684, 5200, 166, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[200853, 5207, 1142, 20, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[201998, 5229, 469, 8, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[202504, 5242, 158, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[202665, 5249, 1246, 24, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[203948, 5278, 148, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[204099, 5285, 1362, 27, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[205464, 5314, 268, 6, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[205769, 5325, 199, 7, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[205971, 5334, 1346, 24, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[207354, 5363, 163, 5, 40, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[207520, 5370, 1744, 31, 116, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[209301, 5406, 219, 7, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[209523, 5415, 1041, 19, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[210601, 5439, 177, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[210781, 5446, 841, 15, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[211671, 5467, 203, 6, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[211899, 5477, 253, 8, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[212155, 5487, 1697, 31, 86, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[213889, 5523, 228, 6, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[214120, 5531, 2906, 51, 101, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[217029, 5584, 1548, 27, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[218580, 5613, 3360, 58, 161, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[221977, 5676, 172, 4, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[222152, 5682, 267, 5, 41, "Input",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[222422, 5689, 166, 4, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[222591, 5695, 1056, 20, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[223650, 5717, 1913, 34, 206, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[225566, 5753, 315, 6, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[225884, 5761, 1730, 35, 86, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[227675, 5803, 97, 1, 35, "Subsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{
Cell[227797, 5808, 100, 1, 70, "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{
Cell[227922, 5813, 152, 5, 70, "CommentText",
  CellTags->"4.0 Code"],
Cell[228077, 5820, 925, 18, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[229005, 5840, 454, 8, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[229496, 5853, 145, 5, 70, "CommentText",
  CellTags->"4.0 Code"],
Cell[229644, 5860, 1164, 21, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[230811, 5883, 211, 5, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[231059, 5893, 153, 5, 70, "CommentText",
  CellTags->"4.0 Code"],
Cell[231215, 5900, 1252, 23, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[232470, 5925, 192, 5, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[232699, 5935, 124, 4, 70, "CommentText",
  CellTags->"4.0 Code"],
Cell[232826, 5941, 949, 19, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[233824, 5966, 182, 6, 70, "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{
Cell[234031, 5976, 255, 6, 70, "CommentText",
  CellTags->"4.0 Code"],
Cell[234289, 5984, 1833, 34, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[236171, 6024, 108, 2, 70, "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{
Cell[236304, 6030, 158, 5, 70, "CommentText",
  CellTags->"4.0 Code"],
Cell[236465, 6037, 1216, 22, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[237684, 6061, 197, 5, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[237918, 6071, 134, 4, 70, "CommentText",
  CellTags->"4.0 Code"],
Cell[238055, 6077, 427, 10, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[238531, 6093, 187, 6, 70, "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{
Cell[238743, 6103, 181, 5, 70, "CommentText",
  CellTags->"4.0 Code"],
Cell[238927, 6110, 473, 10, 70, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[239461, 6127, 82, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[239568, 6132, 89, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[239682, 6137, 299, 8, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[239984, 6147, 350, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[240383, 6160, 109, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[240517, 6165, 127, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[240647, 6172, 448, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[241132, 6185, 141, 2, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[241276, 6189, 835, 17, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[242114, 6208, 338, 6, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[242489, 6219, 201, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[242693, 6226, 248, 5, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[242944, 6233, 776, 15, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[243723, 6250, 1348, 20, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[245108, 6275, 161, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[245272, 6282, 1416, 24, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[246691, 6308, 468, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[247162, 6318, 1416, 24, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[248581, 6344, 468, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[249086, 6357, 153, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[249242, 6364, 1005, 20, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[250284, 6389, 148, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[250435, 6396, 1123, 23, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[251561, 6421, 263, 6, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[251861, 6432, 235, 6, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[252099, 6440, 1302, 25, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[253404, 6467, 229, 5, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],
Cell[253648, 6475, 103, 1, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[253788, 6481, 103, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[253916, 6486, 134, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[254053, 6492, 1799, 32, 70, "Input",
  Evaluatable->False,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[255855, 6526, 333, 7, 70, "Input",
  Evaluatable->False,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[256225, 6538, 134, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[256362, 6544, 1799, 32, 70, "Input",
  Evaluatable->False,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[258164, 6578, 333, 7, 70, "Input",
  Evaluatable->False,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[258534, 6590, 148, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[258685, 6597, 3118, 49, 70, "Input",
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[261852, 6652, 105, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[261982, 6657, 178, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[262163, 6663, 432, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[262598, 6673, 1357, 25, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[263992, 6703, 143, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[264138, 6709, 3281, 56, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[267468, 6771, 102, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[267595, 6776, 100, 1, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[267698, 6779, 1440, 24, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[269141, 6805, 334, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[269512, 6817, 99, 1, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[269614, 6820, 1441, 24, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[271058, 6846, 334, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[271429, 6858, 145, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[271577, 6865, 394, 9, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[272020, 6880, 136, 4, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[272181, 6888, 148, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[272332, 6894, 2633, 43, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[274968, 6939, 342, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[275347, 6951, 148, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[275498, 6957, 2621, 43, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[278122, 7002, 342, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[278513, 7015, 116, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[278654, 7020, 152, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[278809, 7026, 2709, 43, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[281521, 7071, 323, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[281881, 7083, 153, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[282037, 7089, 2869, 45, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[284909, 7136, 322, 7, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[285280, 7149, 122, 2, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[285427, 7155, 142, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[285572, 7161, 2425, 39, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[288000, 7202, 313, 6, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[288350, 7213, 142, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[288495, 7219, 2425, 39, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[290923, 7260, 313, 6, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[291285, 7272, 86, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[291396, 7277, 147, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[291546, 7283, 1332, 20, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[292881, 7305, 1852, 30, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[294736, 7337, 1478, 25, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[296217, 7364, 1477, 25, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[297743, 7395, 99, 1, 30, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[297867, 7400, 138, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[298008, 7406, 533, 11, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[298544, 7419, 392, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[298973, 7432, 147, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[299123, 7438, 564, 12, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[299690, 7452, 437, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[300164, 7465, 140, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[300307, 7471, 369, 8, 70, "Text",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[300679, 7481, 434, 8, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[301174, 7496, 87, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[301286, 7501, 107, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[301396, 7504, 3086, 50, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[304519, 7559, 104, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[304626, 7562, 1762, 31, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[306413, 7597, 212, 6, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[306628, 7605, 1745, 35, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[308410, 7645, 230, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[308643, 7652, 5671, 106, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[314317, 7760, 353, 6, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[314719, 7772, 107, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[314851, 7777, 426, 7, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[315280, 7786, 4065, 64, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[319382, 7855, 169, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[319554, 7862, 732, 14, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[320335, 7882, 104, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[320442, 7885, 16466, 278, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[336933, 8167, 162, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[337098, 8174, 726, 14, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[337873, 8194, 105, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[338003, 8199, 208, 6, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[338214, 8207, 2445, 41, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[340696, 8253, 137, 4, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[340836, 8259, 2165, 44, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[343062, 8310, 87, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[343174, 8315, 107, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[343306, 8320, 538, 11, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[343847, 8333, 1101, 20, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[344985, 8358, 166, 5, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[345154, 8365, 732, 14, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[345889, 8381, 535, 10, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[346473, 8397, 104, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[346580, 8400, 2290, 42, 70, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[348907, 8447, 107, 1, 70, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[349039, 8452, 426, 7, 70, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[349468, 8461, 602, 10, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[350107, 8476, 166, 5, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[350276, 8483, 732, 14, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[351057, 8503, 104, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[351164, 8506, 2759, 49, 146, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[353960, 8560, 105, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[354090, 8565, 215, 6, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[354308, 8573, 3629, 66, 131, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[357974, 8644, 137, 4, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[358114, 8650, 741, 15, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[358858, 8667, 642, 13, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[359503, 8682, 920, 19, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[360484, 8708, 98, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[360607, 8713, 77, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[360709, 8718, 334, 8, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[361046, 8728, 2067, 38, 251, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[363150, 8771, 135, 4, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[363288, 8777, 665, 15, 71, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[364002, 8798, 69, 1, 30, "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{
Cell[364096, 8803, 431, 15, 62, "CommentText",
  CellTags->"4.0 Code"],
Cell[364530, 8820, 163, 4, 26, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[364696, 8826, 4065, 77, 596, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[368798, 8908, 290, 7, 40, "CommentText",
  CellTags->"4.0 Code"],
Cell[369091, 8917, 504, 10, 41, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[369632, 8932, 261, 7, 40, "CommentText",
  CellTags->"4.0 Code"],
Cell[369896, 8941, 433, 10, 41, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[370378, 8957, 68, 1, 30, "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{
Cell[370471, 8962, 289, 7, 46, "CommentText",
  CellTags->"4.0 Code"],
Cell[370763, 8971, 482, 10, 41, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[371282, 8986, 331, 8, 40, "CommentText",
  CellTags->"4.0 Code"],
Cell[371616, 8996, 505, 10, 41, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[372158, 9011, 325, 8, 46, "CommentText",
  CellTags->"4.0 Code"],
Cell[372486, 9021, 490, 10, 41, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[373013, 9036, 267, 7, 46, "CommentText",
  CellTags->"4.0 Code"],
Cell[373283, 9045, 771, 16, 56, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[374091, 9066, 596, 12, 94, "CommentText",
  CellTags->"4.0 Code"],
Cell[374690, 9080, 767, 12, 71, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[375460, 9094, 264, 5, 26, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[375727, 9101, 565, 11, 41, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[376295, 9114, 1816, 32, 191, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[378148, 9151, 822, 20, 94, "CommentText",
  CellTags->"4.0 Code"],
Cell[378973, 9173, 513, 12, 41, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[379489, 9187, 1666, 32, 161, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[381204, 9225, 74, 1, 30, "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{
Cell[381303, 9230, 165, 5, 46, "CommentText",
  CellTags->"4.0 Code"],
Cell[381471, 9237, 1152, 20, 56, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[382626, 9259, 204, 5, 26, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[382867, 9269, 141, 4, 40, "CommentText",
  CellTags->"4.0 Code"],
Cell[383011, 9275, 857, 21, 41, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[383905, 9301, 213, 5, 40, "CommentText",
  CellTags->"4.0 Code"],
Cell[384121, 9308, 182, 4, 26, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"],
Cell[384306, 9314, 1955, 34, 206, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[386298, 9353, 316, 6, 56, "CommentText",
  CellTags->"4.0 Code"],
Cell[386617, 9361, 967, 17, 86, "Input",
  InitializationCell->True]
}, Closed]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[387645, 9385, 75, 1, 35, "Subsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[387745, 9390, 96, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[387866, 9395, 122, 2, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[387991, 9399, 190, 4, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[388184, 9405, 186, 4, 26, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[388419, 9415, 80, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[388524, 9420, 263, 7, 62, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[388790, 9429, 723, 14, 101, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[389562, 9449, 84, 1, 44, "Subsubsection",
  CellTags->"4.0 Code"],

Cell[CellGroupData[{
Cell[389671, 9454, 126, 4, 46, "CommentText",
  CellTags->"4.0 Code"],
Cell[389800, 9460, 1713, 29, 491, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]],

Cell[CellGroupData[{
Cell[391550, 9494, 307, 9, 46, "CommentText",
  CellTags->"4.0 Code"],
Cell[391860, 9505, 385, 11, 26, "Input",
  InitializationCell->True,
  CellTags->"4.0 Code"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{
Cell[392294, 9522, 78, 1, 44, "Subsubsection",
  CellTags->{"3.0 Code", "4.0 Code"}],

Cell[CellGroupData[{
Cell[392397, 9527, 73, 1, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[392473, 9530, 109, 3, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[392619, 9538, 88, 1, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[392710, 9541, 362, 7, 56, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[393075, 9550, 312, 6, 41, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]],

Cell[CellGroupData[{
Cell[393424, 9561, 77, 1, 46, "CommentText",
  CellTags->{"3.0 Code", "4.0 Code"}],
Cell[393504, 9564, 116, 3, 26, "Input",
  InitializationCell->True,
  CellTags->{"3.0 Code", "4.0 Code"}]
}, Closed]]
}, Closed]]
}, Closed]]
}, Open  ]]
}
]
*)




(***********************************************************************
End of Mathematica Notebook file.
***********************************************************************)

