LP#1646166 Hatch Windows Installer
authorKyle Huckins <khuckins@catalystdevworks.com>
Wed, 25 Jan 2017 22:09:50 +0000 (14:09 -0800)
committerBill Erickson <berickxx@gmail.com>
Thu, 16 Feb 2017 20:27:01 +0000 (15:27 -0500)
Code for building a Windows installer executable for Hatch.

The code makes no attempt to install a JRE.  It only verifies that a JRE
version 1.8 or above is present.  It also does not add the browser
extension to the browser, it only installs the files needed for the
extension to work once added to the browser.

See installer/windows/README.adoc for instructions on building the
Windows installer.

Signed-off-by: Kyle Huckins <khuckins@catalystdevworks.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
.gitignore
extension/host/org.evergreen_ils.hatch.WINDOWS.json [deleted file]
installer/windows/README.adoc [new file with mode: 0644]
installer/windows/ReplaceInFile.nsh [new file with mode: 0644]
installer/windows/StrRep.nsh [new file with mode: 0644]
installer/windows/defines.nsh [new file with mode: 0644]
installer/windows/hatch.nsi [new file with mode: 0644]
installer/windows/license.rtf [new file with mode: 0644]

index 2db1c34..04c3020 100644 (file)
@@ -1,4 +1,6 @@
-jdk*
-jetty*
 lib/
 
+*.exe
+*.zip
+*.dmg
+*.app
\ No newline at end of file
diff --git a/extension/host/org.evergreen_ils.hatch.WINDOWS.json b/extension/host/org.evergreen_ils.hatch.WINDOWS.json
deleted file mode 100644 (file)
index 8123c77..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "name": "org.evergreen_ils.hatch",
-  "description": "Hatch Native Messaging Host",
-  "path": "C:\\Path\\To\\hatch.bat",
-  "type": "stdio",
-  "allowed_origins": [
-    "chrome-extension://knldjmfmopnpolahpmmgbagdohdnhkik/"
-  ]
-}
diff --git a/installer/windows/README.adoc b/installer/windows/README.adoc
new file mode 100644 (file)
index 0000000..bca1c2e
--- /dev/null
@@ -0,0 +1,135 @@
+[[hatch---java-print-storage-etc-service]]
+Hatch - Java Print / Storage / Etc Service
+------------------------------------------
+
+[[hatch-download-sources]]
+Hatch Download sources
+^^^^^^^^^^^^^^^^^^^^^^
+
+http://git.evergreen-ils.org/?p=working/Hatch.git;a=summary
+
+[[requirements]]
+Requirements
+~~~~~~~~~~~~
+
+1.  NSIS
+3.  JDK or OpenJDK v. 1.8 or higher
+
+[[pre-installation]]
+Pre-Installation
+~~~~~~~~~~~~~~~~
+
+[[compiling-hatch]]
+Compiling Hatch
+^^^^^^^^^^^^^^^
+
+Before installing, Hatch will need to be properly compiled.
+
+Windows:
+++++++++
+
+....
+C:\> hatch.bat compile
+....
+
+Linux:
+++++++
+
+....
+$ ./hatch.sh compile
+....
+
+More detail on this process and testing it can be found in
+INSTALL.adoc.
+
+
+[[adding-contact-information]]
+Adding Contact Information
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Contact Information will be found when a user views the Add/Remove
+Programs tool in Windows in order to uninstall or view the information
+of an installed program. This information usually consists of an Email,
+a URL for updates, and a URL for a description of the program. To set
+these, you’ll have to edit defines.nsh, and edit the following fields:
+
+....
+!define HELPURL "mailto:[your@email.here]"
+!define UPDATEURL "http://..."
+!define ABOUTURL "http://..."
+....
+
+[[updating-version-number]]
+Updating Version Number
+^^^^^^^^^^^^^^^^^^^^^^^
+
+As with above, there may be times you want Hatch to install with a new
+version number. In Defines.nsh, edit the following fields:
+
+....
+!define VERSIONMAJOR 2
+!define VERSIONMINOR 0
+!define VERSIONBUILD 0
+....
+
+[[compile-installer]]
+Compile Installer
+^^^^^^^^^^^^^^^^^
+
+[[windows]]
+Windows:
+++++++++
+
+1.  Right click hatch.nsi -> Compile NSIS Script
+2.  Run the generated installer
+
+[[linux]]
+Linux:
+++++++
+
+1.  Install NSIS if not already present on your system.
++
+....
+sudo apt-get install nsis
+....
+
+2.  Navigate to the hatch repo and compile the installer
++
+....
+cd ~/Hatch
+makensis installer/windows/hatch.nsi
+....
+
+[[running-hatch]]
+Running Hatch
+~~~~~~~~~~~~~
+
+1.  Once installed, open Chrome and navigate to chrome://extensions
+2.  Ensure Developer Mode is ticked, and select ``Load Unpacked
+Extensions''
+3.  Select [Installation Directory]/extension/app/.
+4.  In Chrome, navigate to the browser staff URL
+(https://HOSTNAME/eg/staff/).
+5.  Chrome should display a browser action icon along the top right of
+the +
+browser window (just left of the settings menu) with a letter ``H''. +
+** TODO: we can apply an icon of our choosing here during the install.
+6.  Clicking the ``H'' button should produce a security prompt, click
+through +
+to allow the requested permissions.
+7.  Reload the browser client login page.
+8.  Open the Javascript console. It should show messages like:
+
+....
+Loading Hatch relay content script
+...
+sending to Hatch: {"key":"eg.workstation.all","action":"get","msgid":1}
+Hatch responded to message ID 1
+....
+
+1.  See if Hatch is able to communicate with your printer… Navigate to +
+https://HOSTNAME/eg/staff/admin/workstation/print/config
+2.  The ``Select Printer'' drop-down should show your printer(s).
+3.  The various printer attribute selectors should show values
+supported +
+by the selected printer.
\ No newline at end of file
diff --git a/installer/windows/ReplaceInFile.nsh b/installer/windows/ReplaceInFile.nsh
new file mode 100644 (file)
index 0000000..c67f4cb
--- /dev/null
@@ -0,0 +1,76 @@
+;---------------------------------------------
+;   Supplemental Function
+;   ReplaceInFile
+;   http://nsis.sourceforge.net/ReplaceInFile
+
+!macro _ReplaceInFile SOURCE_FILE SEARCH_TEXT REPLACEMENT
+  Push "${SOURCE_FILE}"
+  Push "${SEARCH_TEXT}"
+  Push "${REPLACEMENT}"
+  Call RIF
+!macroend
+
+Function RIF
+  ClearErrors
+  Exch $0      ; REPLACEMENT
+  Exch
+  Exch $1      ; SEARCH_TEXT
+  Exch 2
+  Exch $2      ; SOURCE_FILE
+  Push $R0     ; SOURCE_FILE file handle
+  Push $R1     ; temporary file handle
+  Push $R2     ; unique temporary file name
+  Push $R3     ; a line to sar/save
+  Push $R4     ; shift puffer
+  IfFileExists $2 +1 RIF_error
+  FileOpen $R0 $2 "r"
+  GetTempFileName $R2
+  FileOpen $R1 $R2 "w"
+
+  ;Loop through each line
+  RIF_loop:
+    FileRead $R0 $R3
+    IfErrors RIF_leaveloop
+
+    ;Search and Replace
+    RIF_sar:
+      Push "$R3"
+      Push "$1"
+      Push "$0"
+      Call StrRep
+      StrCpy $R4 "$R3"
+      Pop $R3
+      StrCmp "$R3" "$R4" +1 RIF_sar
+    FileWrite $R1 "$R3"
+  Goto RIF_loop
+  RIF_leaveloop:
+    FileClose $R1
+    FileClose $R0
+    ;Clean up $2
+    Delete "$2"
+    Rename "$R2" "$2"
+    ClearErrors
+    Goto RIF_out
+  RIF_error:
+    SetErrors
+  RIF_out:
+  Pop $R4
+  Pop $R3
+  Pop $R2
+  Pop $R1
+  Pop $R0
+  Pop $2
+  Pop $0
+  Pop $1
+FunctionEnd
\ No newline at end of file
diff --git a/installer/windows/StrRep.nsh b/installer/windows/StrRep.nsh
new file mode 100644 (file)
index 0000000..06612b0
--- /dev/null
@@ -0,0 +1,70 @@
+;-------------------------------------
+;   Supplemental Function
+;   StrRep - String Replace v4.0
+;   http://nsis.sourceforge.net/StrRep
+
+!define StrRep "!insertmacro StrRep"
+!macro StrRep output string old new
+    Push `${string}`
+    Push `${old}`
+    Push `${new}`
+    !ifdef __UNINSTALL__
+        Call un.StrRep
+    !else
+        Call StrRep
+    !endif
+    Pop ${output}
+!macroend
+!macro Func_StrRep un
+    Function ${un}StrRep
+        Exch $R2 ;new
+        Exch 1
+        Exch $R1 ;old
+        Exch 2
+        Exch $R0 ;string
+        Push $R3
+        Push $R4
+        Push $R5
+        Push $R6
+        Push $R7
+        Push $R8
+        Push $R9
+        StrCpy $R3 0
+        StrLen $R4 $R1
+        StrLen $R6 $R0
+        StrLen $R9 $R2
+        loop:
+            StrCpy $R5 $R0 $R4 $R3
+            StrCmp $R5 $R1 found
+            StrCmp $R3 $R6 done
+            IntOp $R3 $R3 + 1 ;move offset by 1 to check the next character
+            Goto loop
+        found:
+            StrCpy $R5 $R0 $R3
+            IntOp $R8 $R3 + $R4
+            StrCpy $R7 $R0 "" $R8
+            StrCpy $R0 $R5$R2$R7
+            StrLen $R6 $R0
+            IntOp $R3 $R3 + $R9 ;move offset by length of the replacement string
+            Goto loop
+        done:
+        Pop $R9
+        Pop $R8
+        Pop $R7
+        Pop $R6
+        Pop $R5
+        Pop $R4
+        Pop $R3
+        Push $R0
+        Push $R1
+        Pop $R0
+        Pop $R1
+        Pop $R0
+        Pop $R2
+        Exch $R1
+    FunctionEnd
+!macroend
+!insertmacro Func_StrRep ""
\ No newline at end of file
diff --git a/installer/windows/defines.nsh b/installer/windows/defines.nsh
new file mode 100644 (file)
index 0000000..3c88a5d
--- /dev/null
@@ -0,0 +1,47 @@
+;=============================
+; All defines go in here
+
+;-----------------
+; Base Info
+
+!define APPNAME "Hatch" 
+!define COMPANYNAME "Evergreen ILS"
+!define DESCRIPTION "Java based Print Service and Local Storage System"
+!define EXTENSIONID "knldjmfmopnpolahpmmgbagdohdnhkik" ;Chrome extension id
+!define EXTENSION_UPDATEURL "" ;Chrome web store link
+;-----------------------------------
+; Version info
+; Version numbers should be integers
+!define VERSIONMAJOR 2
+!define VERSIONMINOR 1
+!define VERSIONBUILD 0
+!define FULLVERSION "${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}"
+;---------------------------
+; Add Remove info
+; The following will be displayed by the "Click here for support information" link
+; in Add/Remove Programs.  You can use mailto: links here.
+!define HELPURL "mailto:[your@email.here]"
+!define UPDATEURL "http://..."
+!define ABOUTURL "http://..."
+; The size in KB of all the files we'll be installing
+!define INSTALLSIZE 332000
+
+;------------------------------
+; Java
+!define JRE_MIN_VERSION "1.8"
+
+;------------------------------
+; Page Info
+; This includes the look & feel as well as text on certain pages
+!define MUI_COMPONENTSPAGE_SMALLDESC ;No value
+!define MUI_INSTFILESPAGE_COLORS "FFFFFF 000000" ;Two colors
+!define MUI_HEADERIMAGE
+!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ; optional
+!define MUI_ABORTWARNING
+!define MUI_RIGHTIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp"
+!define MUI_PAGE_HEADER_TEXT "Hatch Installer"
+; Welcome Page Variables
+!define MUI_WELCOMEPAGE_TEXT "Welcome to the Hatch install wizard.  This application will guide you through the installation for Hatch."
+; License Page Variables
+!define MUI_LICENSEPAGE_TEXT_TOP "Read through the license carefully."
+!define MUI_LICENSEPAGE_TEXT_BOTTOM "If you accept the terms of the agreement, click I Agree to continue.  You must accept the agreement to install Hatch."
diff --git a/installer/windows/hatch.nsi b/installer/windows/hatch.nsi
new file mode 100644 (file)
index 0000000..3b676f0
--- /dev/null
@@ -0,0 +1,193 @@
+;-----------------------------------------------------------------------
+; NSIS Installation Script                                              ;
+; Kyle Huckins                                                          ;
+; khuckins@catalystdevworks.com                                         ;
+; This will be a guide to working with NSIS to create an installer.     ;
+; It is a heavily commented practice installer, basically.              ;
+;                                                                       ;
+; Comments are designated by # and ;                                    ;
+; # tends to be at the beginning of a line, while ; is                  ;
+; primarilly used as end-of-line comments.  However it's                ;
+; common to use just ; for comments as well.                            ;
+;                                                                       ;
+;------------------------------------------------------------------------
+
+;==================
+; Basic Information
+;--------
+; Includes
+!include "MUI2.nsh" ;This enables the use of ModernUI, and must go at the top
+!include "x64.nsh"
+!include "defines.nsh" ;Definitions for our variables
+!include "LogicLib.nsh" ;Sparsly documented library, but necessary for any real logic
+!include "nsDialogs.nsh" ;Need this to create custom pages
+!include StrRep.nsh
+!include ReplaceInFile.nsh
+;---------------------------------------------------------------
+; Installer's filename
+Outfile "${APPNAME} Installer.exe"
+RequestExecutionLevel admin
+
+
+;-----------------
+; Titlebar Content
+Name "${APPNAME}"
+
+;==================================
+; Page system
+!insertmacro MUI_PAGE_WELCOME
+!define MUI_PAGE_CUSTOMFUNCTION_PRE VersionChecker
+!insertmacro MUI_PAGE_LICENSE "license.rtf" ;Loads licence.rtf to show license content
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_PAGE_FINISH
+
+!insertmacro MUI_LANGUAGE "English"
+;-------------------------------------
+; Code to verify if a user is an admin
+!macro VerifyUserIsAdmin
+UserInfo::GetAccountType
+pop $0
+${If} $0 != "admin" ;Require admin rights
+    messageBox mb_iconstop "Administrator rights required!"
+    setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
+    quit
+${EndIf}
+!macroend
+
+;---------------------------------------------------------------------
+; 1. Check for Java
+; 2. Read our current version and check if it's newer, older, or the same
+; LogicLib gives S>, S<, and S== for comparing strings.
+!macro VersionCheck
+    ;JRE Check
+    ClearErrors
+    ${if} ${RunningX64}
+        SetRegView 64 ;So we can read the Registry of 64 bit devices
+    ${endif}
+    ReadRegStr $R0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"
+    ReadRegStr $R1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$R0" "JavaHome"
+    IfErrors 0  NoAbort
+        MessageBox MB_OK "Java not detected.  Setup will now exit."
+        Quit
+    NoAbort:
+        ${If} $R0 S< ${JRE_MIN_VERSION}
+            MessageBox MB_OK "You must update Java.  Setup will now exit."
+        ${EndIf}
+        ; Hatch Version Check
+        ReadRegStr $R2 HKCU "Software\${COMPANYNAME}\${APPNAME}" "Version"
+        ${If} $R2 = 0
+            Goto INSTALL ;As you were, citizen.
+        ${ElseIf} $R2 S== ${FULLVERSION} ;Same version is installed
+            MessageBox MB_OKCANCEL|MB_ICONSTOP "You already have this version of ${APPNAME} installed.  You must uninstall the currently installed version to continue." IDOK UNINSTALL IDCANCEL QUIT
+        ${ElseIf} $R2 S> ${FULLVERSION} ;Older version is installed
+            MessageBox MB_OKCANCEL|MB_ICONSTOP "You are tring to install an older version of ${APPNAME} than the one you currently have installed. You must uninstall the currently installed verion to continue." IDOK UNINSTALL IDCANCEL QUIT
+        ${ElseIf} $R2 S< ${FULLVERSION} ;Newer version is installed
+            MessageBox MB_OKCANCEL|MB_ICONSTOP "You have a previous version of ${APPNAME} installed. You must uninstall the currently installed version to continue." IDOK UNINSTALL IDCANCEL QUIT
+        ${EndIf}
+        UNINSTALL:
+            ExecWait '"$INSTDIR\Uninstall ${APPNAME}.exe"_?=$INSTDIR'
+            Goto INSTALL
+        QUIT:
+            Quit
+        INSTALL:
+
+!macroend
+
+function .onInit
+    setShellVarContext all
+    !insertmacro VerifyUserIsAdmin
+functionEnd
+;-----------------
+;Check our version
+function VersionChecker
+    !insertmacro VersionCheck
+functionEnd
+
+;--------------------------
+; Where our install files go
+InstallDir "$PROGRAMFILES\${APPNAME}" ;This is where our variables come in.
+;----------------------------------------------
+
+section "install"
+    ; Install directory files - keep these in the same directory
+    ; as the script before compiling.
+    SetOutPath $INSTDIR\ ;Sets output path to our InstallDir
+    File /r ..\..\lib
+    File /r ..\..\extension
+    File ..\..\hatch.bat
+    File ..\..\hatch.properties
+    File ..\..\logging.properties
+    
+    ; Set path variable in org.ils_evergreen.hatch.json to $INSTDIR\hatch.bat
+    ${StrRep} '$0' '$INSTDIR' '\' '\\'
+    !insertmacro _ReplaceInFile  "$INSTDIR\extension\host\org.evergreen_ils.hatch.json" "/path/to/hatch.sh" "$0\\hatch.bat"
+
+    ; Uninstaller
+    writeUninstaller "$INSTDIR\Uninstall ${APPNAME}.exe"
+
+    ; Registry info for Add/Remove Programs
+    WriteRegStr HKCU "Software\${COMPANYNAME}\${APPNAME}" "Install Path" $INSTDIR
+    WriteRegStr HKCU "Software\${COMPANYNAME}\${APPNAME}" "Version" "${FULLVERSION}"
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}"
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$\"$INSTDIR\Uninstall ${APPNAME}.exe$\""
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\Uninstall ${APPNAME}.exe$\" /S"
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\logo.ico$\""
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\""
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "HelpLink" "$\"${HELPURL}$\""
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\""
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\""
+    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\""
+    WriteRegStr HKCU "Software\Google\Chrome\NativeMessagingHosts\org.evergreen_ils.hatch" "" "$INSTDIR\extension\host\org.evergreen_ils.hatch.json"
+    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "VersionMajor" ${VERSIONMAJOR}
+    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "VersionMinor" ${VERSIONMINOR}
+    # There is no option for modifying or repairing the install
+    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoModify" 1
+    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoRepair" 1
+    # Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size
+    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "EstimatedSize" ${INSTALLSIZE}
+
+    ;Uncommend when extension is on web store
+    ;${if} ${RunningX64}
+        ;WriteRegStr HKLM "Software\Wow6432Node\Google\Chrome\Extensions\${EXTENSIONID}" "update_url" "${EXTENSION_UPDATEURL}"
+    ;${EndIf}
+    ;WriteRegStr HKLM "Software\Google\Chrome\Extensions\${EXTENSIONID}" "update_url" "${EXTENSION_UPDATEURL}"
+SectionEnd
+
+
+#############################
+# Uninstaller code
+
+function un.onInit
+    SetShellVarContext all
+    
+    # Verify uninstaller
+    MessageBox MB_OKCANCEL "Permanently remove ${APPNAME}?" IDOK next
+        Abort
+    next:
+    !insertmacro VerifyUserIsAdmin
+functionEnd
+
+section "uninstall"    
+    # Remove the actual files
+    delete $INSTDIR\*.*
+    rmDir /r $INSTDIR\extension
+    rmDir /r $INSTDIR\lib
+    # Delete uninstaller last
+    delete "$INSTDIR\Uninstall ${APPNAME}.exe"
+    
+    # Remove installation directory
+    rmDir $INSTDIR\
+    
+    # Remove uninstaller info from registry
+    DeleteRegKey HKCU "Software\${COMPANYNAME}\${APPNAME}"
+    DeleteRegKey HKCU "Software\${COMPANYNAME}"
+    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
+    DeleteRegKey HKCU "Software\Google\Chrome\NativeMessagingHosts\org.evergreen_ils.hatch"
+    DeleteRegKey HKLM "Software\Google\Chrome\Extensions\${EXTENSIONID}"
+    ${if} ${RunningX64}
+        DeleteRegKey HKLM "Software\Wow6432Node\Google\Chrome\Extensions\${EXTENSIONID}"
+    ${EndIf}
+    
+sectionEnd
diff --git a/installer/windows/license.rtf b/installer/windows/license.rtf
new file mode 100644 (file)
index 0000000..4805bac
--- /dev/null
@@ -0,0 +1,529 @@
+{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe2052\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}\r
+{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}\r
+{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}\r
+{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}\r
+{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}\r
+{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}\r
+{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}\r
+{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}\r
+{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}\r
+{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f409\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f410\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}\r
+{\f412\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f413\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f416\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f417\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}\r
+{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}\r
+{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}\r
+{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}\r
+{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}\r
+{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}\r
+{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}\r
+{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}\r
+{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}\r
+{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}\r
+{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}\r
+{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}\r
+{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}\r
+{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}\r
+{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}\r
+{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}\r
+{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}\r
+{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}\r
+{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}\r
+{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}\r
+{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}\r
+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\r
+\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1\r
+\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \r
+\fs22\lang1033\langfe2052\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*\r
+\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1\r
+\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 \snext11 \ssemihidden \sunhideused \r
+Normal Table;}}{\*\rsidtbl \rsid2376503\rsid2699842\rsid5986035\rsid14179137}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator Kyle Huckins}\r
+{\creatim\yr2016\mo1\dy26\hr10\min1}{\revtim\yr2017\mo1\dy24\hr14\min5}{\version4}{\edmins0}{\nofpages12}{\nofwords2640}{\nofchars15051}{\nofcharsws17656}{\vern57441}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\r
+\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect \r
+\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701\r
+\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot5986035 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\r
+\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\r
+\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang \r
+{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\qc \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2699842 \rtlch\fcs1 \r
+\af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang9\langfe2052\langnp9\insrsid14179137\charrsid14179137 \hich\af37\dbch\af31505\loch\f37 \r
+GNU GENERAL PUBLIC LICENSE\r
+\par \hich\af37\dbch\af31505\loch\f37 Version 2, June 1991\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,\r
+\par \hich\af37\dbch\af31505\loch\f37 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r
+\par \hich\af37\dbch\af31505\loch\f37 Everyone is permitted to copy and distribute verbatim copies\r
+\par \hich\af37\dbch\af31505\loch\f37 of this license document, but changing it is not allowed.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Preamble\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 The licenses for most software are\hich\af37\dbch\af31505\loch\f37  designed to take away your\r
+\par \hich\af37\dbch\af31505\loch\f37 freedom to share and change it.  By contrast, the GNU General Public\r
+\par \hich\af37\dbch\af31505\loch\f37 License is intended to guarantee your freedom to share and change free\r
+\par \hich\af37\dbch\af31505\loch\f37 software--to make sure the software is free for all its users.  This\r
+\par \hich\af37\dbch\af31505\loch\f37 General Public Lice\hich\af37\dbch\af31505\loch\f37 nse applies to most of the Free Software\r
+\par \hich\af37\dbch\af31505\loch\f37 Foundation's software and to any other program whose authors commit to\r
+\par \hich\af37\dbch\af31505\loch\f37 using it.  (Some other Free Software Foundation software is covered by\r
+\par \hich\af37\dbch\af31505\loch\f37 the GNU Lesser General Public License instead.)  You can apply it to\r
+\par \hich\af37\dbch\af31505\loch\f37 your\hich\af37\dbch\af31505\loch\f37  programs, too.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 When we speak of free software, we are referring to freedom, not\r
+\par \hich\af37\dbch\af31505\loch\f37 price.  Our General Public Licenses are designed to make sure that you\r
+\par \hich\af37\dbch\af31505\loch\f37 have the freedom to distribute copies of free software (and charge for\r
+\par \hich\af37\dbch\af31505\loch\f37 this service if you wish), tha\hich\af37\dbch\af31505\loch\f37 t you receive source code or can get it\r
+\par \hich\af37\dbch\af31505\loch\f37 if you want it, that you can change the software or use pieces of it\r
+\par \hich\af37\dbch\af31505\loch\f37 in new free programs; and that you know you can do these things.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 To protect your rights, we need to make restrictions that forbid\r
+\par \hich\af37\dbch\af31505\loch\f37 anyone to deny\hich\af37\dbch\af31505\loch\f37  you these rights or to ask you to surrender the rights.\r
+\par \hich\af37\dbch\af31505\loch\f37 These restrictions translate to certain responsibilities for you if you\r
+\par \hich\af37\dbch\af31505\loch\f37 distribute copies of the software, or if you modify it.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 For example, if you distribute copies of such a program, whether\r
+\par \hich\af37\dbch\af31505\loch\f37 gratis or for a fee, you must give the recipients all the rights that\r
+\par \hich\af37\dbch\af31505\loch\f37 you have.  You must make sure that they, too, receive or can get the\r
+\par \hich\af37\dbch\af31505\loch\f37 source code.  And you must show them these terms so they know their\r
+\par \hich\af37\dbch\af31505\loch\f37 rights.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 We protect your rights with two steps:\hich\af37\dbch\af31505\loch\f37  (1) copyright the software, and\r
+\par \hich\af37\dbch\af31505\loch\f37 (2) offer you this license which gives you legal permission to copy,\r
+\par \hich\af37\dbch\af31505\loch\f37 distribute and/or modify the software.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Also, for each author's protection and ours, we want to make certain\r
+\par \hich\af37\dbch\af31505\loch\f37 that everyone understands that there is no \hich\af37\dbch\af31505\loch\f37 warranty for this free\r
+\par \hich\af37\dbch\af31505\loch\f37 software.  If the software is modified by someone else and passed on, we\r
+\par \hich\af37\dbch\af31505\loch\f37 want its recipients to know that what they have is not the original, so\r
+\par \hich\af37\dbch\af31505\loch\f37 that any problems introduced by others will not reflect on the original\r
+\par \hich\af37\dbch\af31505\loch\f37 authors' reputat\hich\af37\dbch\af31505\loch\f37 ions.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Finally, any free program is threatened constantly by software\r
+\par \hich\af37\dbch\af31505\loch\f37 patents.  We wish to avoid the danger that redistributors of a free\r
+\par \hich\af37\dbch\af31505\loch\f37 program will individually obtain patent licenses, in effect making the\r
+\par \hich\af37\dbch\af31505\loch\f37 program proprietary.  To prevent this, we hav\hich\af37\dbch\af31505\loch\f37 e made it clear that any\r
+\par \hich\af37\dbch\af31505\loch\f37 patent must be licensed for everyone's free use or not licensed at all.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 The precise terms and conditions for copying, distribution and\r
+\par \hich\af37\dbch\af31505\loch\f37 modification follow.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 GNU GENERAL PUBLIC LICENSE\r
+\par \hich\af37\dbch\af31505\loch\f37 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 0. This License applies to any program or other work which contains\r
+\par \hich\af37\dbch\af31505\loch\f37 a notice placed by the copyright holder saying it may be distributed\r
+\par \hich\af37\dbch\af31505\loch\f37 under the terms of this General Public License.  \hich\af37\dbch\af31505\loch\f37 The "Program", below,\r
+\par \hich\af37\dbch\af31505\loch\f37 refers to any such program or work, and a "work based on the Program"\r
+\par \hich\af37\dbch\af31505\loch\f37 means either the Program or any derivative work under copyright law:\r
+\par \hich\af37\dbch\af31505\loch\f37 that is to say, a work containing the Program or a portion of it,\r
+\par \hich\af37\dbch\af31505\loch\f37 either verbatim or with modif\hich\af37\dbch\af31505\loch\f37 ications and/or translated into another\r
+\par \hich\af37\dbch\af31505\loch\f37 language.  (Hereinafter, translation is included without limitation in\r
+\par \hich\af37\dbch\af31505\loch\f37 the term "modification".)  Each licensee is addressed as "you".\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Activities other than copying, distribution and modification are not\r
+\par \hich\af37\dbch\af31505\loch\f37 covered by \hich\af37\dbch\af31505\loch\f37 this License; they are outside its scope.  The act of\r
+\par \hich\af37\dbch\af31505\loch\f37 running the Program is not restricted, and the output from the Program\r
+\par \hich\af37\dbch\af31505\loch\f37 is covered only if its contents constitute a work based on the\r
+\par \hich\af37\dbch\af31505\loch\f37 Program (independent of having been made by running the Program).\r
+\par \hich\af37\dbch\af31505\loch\f37 Wh\hich\af37\dbch\af31505\loch\f37 ether that is true depends on what the Program does.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 1. You may copy and distribute verbatim copies of the Program's\r
+\par \hich\af37\dbch\af31505\loch\f37 source code as you receive it, in any medium, provided that you\r
+\par \hich\af37\dbch\af31505\loch\f37 conspicuously and appropriately publish on each copy an appropriate\r
+\par \hich\af37\dbch\af31505\loch\f37 copy\hich\af37\dbch\af31505\loch\f37 right notice and disclaimer of warranty; keep intact all the\r
+\par \hich\af37\dbch\af31505\loch\f37 notices that refer to this License and to the absence of any warranty;\r
+\par \hich\af37\dbch\af31505\loch\f37 and give any other recipients of the Program a copy of this License\r
+\par \hich\af37\dbch\af31505\loch\f37 along with the Program.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 You may charge a fee for the ph\hich\af37\dbch\af31505\loch\f37 ysical act of transferring a copy, and\r
+\par \hich\af37\dbch\af31505\loch\f37 you may at your option offer warranty protection in exchange for a fee.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 2. You may modify your copy or copies of the Program or any portion\r
+\par \hich\af37\dbch\af31505\loch\f37 of it, thus forming a work based on the Program, and copy and\r
+\par \hich\af37\dbch\af31505\loch\f37 distribute such modifications or work under the terms of Section 1\r
+\par \hich\af37\dbch\af31505\loch\f37 above, provided that you also meet all of these conditions:\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 a) You must cause the modified files to carry prominent notices\r
+\par \hich\af37\dbch\af31505\loch\f37 stating that you changed the files and the date of any c\hich\af37\dbch\af31505\loch\f37 hange.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 b) You must cause any work that you distribute or publish, that in\r
+\par \hich\af37\dbch\af31505\loch\f37 whole or in part contains or is derived from the Program or any\r
+\par \hich\af37\dbch\af31505\loch\f37 part thereof, to be licensed as a whole at no charge to all third\r
+\par \hich\af37\dbch\af31505\loch\f37 parties under the terms of this Lic\hich\af37\dbch\af31505\loch\f37 ense.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 c) If the modified program normally reads commands interactively\r
+\par \hich\af37\dbch\af31505\loch\f37 when run, you must cause it, when started running for such\r
+\par \hich\af37\dbch\af31505\loch\f37 interactive use in the most ordinary way, to print or display an\r
+\par \hich\af37\dbch\af31505\loch\f37 announcement including an appropriate copyri\hich\af37\dbch\af31505\loch\f37 ght notice and a\r
+\par \hich\af37\dbch\af31505\loch\f37 notice that there is no warranty (or else, saying that you provide\r
+\par \hich\af37\dbch\af31505\loch\f37 a warranty) and that users may redistribute the program under\r
+\par \hich\af37\dbch\af31505\loch\f37 these conditions, and telling the user how to view a copy of this\r
+\par \hich\af37\dbch\af31505\loch\f37 License.  (Exception: if the\hich\af37\dbch\af31505\loch\f37  Program itself is interactive but\r
+\par \hich\af37\dbch\af31505\loch\f37 does not normally print such an announcement, your work based on\r
+\par \hich\af37\dbch\af31505\loch\f37 the Program is not required to print an announcement.)\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 These requirements apply to the modified work as a whole.  If\r
+\par \hich\af37\dbch\af31505\loch\f37 identifiable sections of that \hich\af37\dbch\af31505\loch\f37 work are not derived from the Program,\r
+\par \hich\af37\dbch\af31505\loch\f37 and can be reasonably considered independent and separate works in\r
+\par \hich\af37\dbch\af31505\loch\f37 themselves, then this License, and its terms, do not apply to those\r
+\par \hich\af37\dbch\af31505\loch\f37 sections when you distribute them as separate works.  But when you\r
+\par \hich\af37\dbch\af31505\loch\f37 distribute the same sections as part of a whole which is a work based\r
+\par \hich\af37\dbch\af31505\loch\f37 on the Program, the distribution of the whole must be on the terms of\r
+\par \hich\af37\dbch\af31505\loch\f37 this License, whose permissions for other licensees extend to the\r
+\par \hich\af37\dbch\af31505\loch\f37 entire whole, and thus to each and every part rega\hich\af37\dbch\af31505\loch\f37 rdless of who wrote it.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Thus, it is not the intent of this section to claim rights or contest\r
+\par \hich\af37\dbch\af31505\loch\f37 your rights to work written entirely by you; rather, the intent is to\r
+\par \hich\af37\dbch\af31505\loch\f37 exercise the right to control the distribution of derivative or\r
+\par \hich\af37\dbch\af31505\loch\f37 collective works based on t\hich\af37\dbch\af31505\loch\f37 he Program.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 In addition, mere aggregation of another work not based on the Program\r
+\par \hich\af37\dbch\af31505\loch\f37 with the Program (or with a work based on the Program) on a volume of\r
+\par \hich\af37\dbch\af31505\loch\f37 a storage or distribution medium does not bring the other work under\r
+\par \hich\af37\dbch\af31505\loch\f37 the scope of this License.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 3. \hich\af37\dbch\af31505\loch\f37 You may copy and distribute the Program (or a work based on it,\r
+\par \hich\af37\dbch\af31505\loch\f37 under Section 2) in object code or executable form under the terms of\r
+\par \hich\af37\dbch\af31505\loch\f37 Sections 1 and 2 above provided that you also do one of the following:\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 a) Accompany it with the complete correspondin\hich\af37\dbch\af31505\loch\f37 g machine-readable\r
+\par \hich\af37\dbch\af31505\loch\f37 source code, which must be distributed under the terms of Sections\r
+\par \hich\af37\dbch\af31505\loch\f37 1 and 2 above on a medium customarily used for software interchange; or,\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 b) Accompany it with a written offer, valid for at least three\r
+\par \hich\af37\dbch\af31505\loch\f37 years, to give an\hich\af37\dbch\af31505\loch\f37 y third party, for a charge no more than your\r
+\par \hich\af37\dbch\af31505\loch\f37 cost of physically performing source distribution, a complete\r
+\par \hich\af37\dbch\af31505\loch\f37 machine-readable copy of the corresponding source code, to be\r
+\par \hich\af37\dbch\af31505\loch\f37 distributed under the terms of Sections 1 and 2 above on a medium\r
+\par \hich\af37\dbch\af31505\loch\f37 customarily used for software interchange; or,\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 c) Accompany it with the information you received as to the offer\r
+\par \hich\af37\dbch\af31505\loch\f37 to distribute corresponding source code.  (This alternative is\r
+\par \hich\af37\dbch\af31505\loch\f37 allowed only for noncommercial distribution and only if you\r
+\par \hich\af37\dbch\af31505\loch\f37 received the program in object code or executable form with such\r
+\par \hich\af37\dbch\af31505\loch\f37 an offer, in accord with Subsection b above.)\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 The source code for a work means the preferred form of the work for\r
+\par \hich\af37\dbch\af31505\loch\f37 making modifications to it.  For an executable work, complete source\r
+\par \hich\af37\dbch\af31505\loch\f37 co\hich\af37\dbch\af31505\loch\f37 de means all the source code for all modules it contains, plus any\r
+\par \hich\af37\dbch\af31505\loch\f37 associated interface definition files, plus the scripts used to\r
+\par \hich\af37\dbch\af31505\loch\f37 control compilation and installation of the executable.  However, as a\r
+\par \hich\af37\dbch\af31505\loch\f37 special exception, the source code distributed need no\hich\af37\dbch\af31505\loch\f37 t include\r
+\par \hich\af37\dbch\af31505\loch\f37 anything that is normally distributed (in either source or binary\r
+\par \hich\af37\dbch\af31505\loch\f37 form) with the major components (compiler, kernel, and so on) of the\r
+\par \hich\af37\dbch\af31505\loch\f37 operating system on which the executable runs, unless that component\r
+\par \hich\af37\dbch\af31505\loch\f37 itself accompanies the executable.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 If dis\hich\af37\dbch\af31505\loch\f37 tribution of executable or object code is made by offering\r
+\par \hich\af37\dbch\af31505\loch\f37 access to copy from a designated place, then offering equivalent\r
+\par \hich\af37\dbch\af31505\loch\f37 access to copy the source code from the same place counts as\r
+\par \hich\af37\dbch\af31505\loch\f37 distribution of the source code, even though third parties are not\r
+\par \hich\af37\dbch\af31505\loch\f37 comp\hich\af37\dbch\af31505\loch\f37 elled to copy the source along with the object code.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 4. You may not copy, modify, sublicense, or distribute the Program\r
+\par \hich\af37\dbch\af31505\loch\f37 except as expressly provided under this License.  Any attempt\r
+\par \hich\af37\dbch\af31505\loch\f37 otherwise to copy, modify, sublicense or distribute the Program is\r
+\par \hich\af37\dbch\af31505\loch\f37 void\hich\af37\dbch\af31505\loch\f37 , and will automatically terminate your rights under this License.\r
+\par \hich\af37\dbch\af31505\loch\f37 However, parties who have received copies, or rights, from you under\r
+\par \hich\af37\dbch\af31505\loch\f37 this License will not have their licenses terminated so long as such\r
+\par \hich\af37\dbch\af31505\loch\f37 parties remain in full compliance.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 5. You are not required to accept this License, since you have not\r
+\par \hich\af37\dbch\af31505\loch\f37 signed it.  However, nothing else grants you permission to modify or\r
+\par \hich\af37\dbch\af31505\loch\f37 distribute the Program or its derivative works.  These actions are\r
+\par \hich\af37\dbch\af31505\loch\f37 prohibited by law if you do not accept this License\hich\af37\dbch\af31505\loch\f37 .  Therefore, by\r
+\par \hich\af37\dbch\af31505\loch\f37 modifying or distributing the Program (or any work based on the\r
+\par \hich\af37\dbch\af31505\loch\f37 Program), you indicate your acceptance of this License to do so, and\r
+\par \hich\af37\dbch\af31505\loch\f37 all its terms and conditions for copying, distributing or modifying\r
+\par \hich\af37\dbch\af31505\loch\f37 the Program or works based on it.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 6\hich\af37\dbch\af31505\loch\f37 . Each time you redistribute the Program (or any work based on the\r
+\par \hich\af37\dbch\af31505\loch\f37 Program), the recipient automatically receives a license from the\r
+\par \hich\af37\dbch\af31505\loch\f37 original licensor to copy, distribute or modify the Program subject to\r
+\par \hich\af37\dbch\af31505\loch\f37 these terms and conditions.  You may not impose any \hich\af37\dbch\af31505\loch\f37 further\r
+\par \hich\af37\dbch\af31505\loch\f37 restrictions on the recipients' exercise of the rights granted herein.\r
+\par \hich\af37\dbch\af31505\loch\f37 You are not responsible for enforcing compliance by third parties to\r
+\par \hich\af37\dbch\af31505\loch\f37 this License.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 7. If, as a consequence of a court judgment or allegation of patent\r
+\par \hich\af37\dbch\af31505\loch\f37 infringement or for any\hich\af37\dbch\af31505\loch\f37  other reason (not limited to patent issues),\r
+\par \hich\af37\dbch\af31505\loch\f37 conditions are imposed on you (whether by court order, agreement or\r
+\par \hich\af37\dbch\af31505\loch\f37 otherwise) that contradict the conditions of this License, they do not\r
+\par \hich\af37\dbch\af31505\loch\f37 excuse you from the conditions of this License.  If you cannot\r
+\par \hich\af37\dbch\af31505\loch\f37 distribu\hich\af37\dbch\af31505\loch\f37 te so as to satisfy simultaneously your obligations under this\r
+\par \hich\af37\dbch\af31505\loch\f37 License and any other pertinent obligations, then as a consequence you\r
+\par \hich\af37\dbch\af31505\loch\f37 may not distribute the Program at all.  For example, if a patent\r
+\par \hich\af37\dbch\af31505\loch\f37 license would not permit royalty-free redistribution of the Program by\r
+\par \hich\af37\dbch\af31505\loch\f37 all those who receive copies directly or indirectly through you, then\r
+\par \hich\af37\dbch\af31505\loch\f37 the only way you could satisfy both it and this License would be to\r
+\par \hich\af37\dbch\af31505\loch\f37 refrain entirely from distribution of the Progr\hich\af37\dbch\af31505\loch\f37 am.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 If any portion of this section is held invalid or unenforceable under\r
+\par \hich\af37\dbch\af31505\loch\f37 any particular circumstance, the balance of the section is intended to\r
+\par \hich\af37\dbch\af31505\loch\f37 apply and the section as a whole is intended to apply in other\r
+\par \hich\af37\dbch\af31505\loch\f37 circumstances.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 It is not the purpose of this s\hich\af37\dbch\af31505\loch\f37 ection to induce you to infringe any\r
+\par \hich\af37\dbch\af31505\loch\f37 patents or other property right claims or to contest validity of any\r
+\par \hich\af37\dbch\af31505\loch\f37 such claims; this section has the sole purpose of protecting the\r
+\par \hich\af37\dbch\af31505\loch\f37 integrity of the free software distribution system, which is\r
+\par \hich\af37\dbch\af31505\loch\f37 implemented by public li\hich\af37\dbch\af31505\loch\f37 cense practices.  Many people have made\r
+\par \hich\af37\dbch\af31505\loch\f37 generous contributions to the wide range of software distributed\r
+\par \hich\af37\dbch\af31505\loch\f37 through that system in reliance on consistent application of that\r
+\par \hich\af37\dbch\af31505\loch\f37 system; it is up to the author/donor to decide if he or she is willing\r
+\par \hich\af37\dbch\af31505\loch\f37 to distribute \hich\af37\dbch\af31505\loch\f37 software through any other system and a licensee cannot\r
+\par \hich\af37\dbch\af31505\loch\f37 impose that choice.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 This section is intended to make thoroughly clear what is believed to\r
+\par \hich\af37\dbch\af31505\loch\f37 be a consequence of the rest of this License.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 8. If the distribution and/or use of the Program is restrict\hich\af37\dbch\af31505\loch\f37 ed in\r
+\par \hich\af37\dbch\af31505\loch\f37 certain countries either by patents or by copyrighted interfaces, the\r
+\par \hich\af37\dbch\af31505\loch\f37 original copyright holder who places the Program under this License\r
+\par \hich\af37\dbch\af31505\loch\f37 may add an explicit geographical distribution limitation excluding\r
+\par \hich\af37\dbch\af31505\loch\f37 those countries, so that distribution is perm\hich\af37\dbch\af31505\loch\f37 itted only in or among\r
+\par \hich\af37\dbch\af31505\loch\f37 countries not thus excluded.  In such case, this License incorporates\r
+\par \hich\af37\dbch\af31505\loch\f37 the limitation as if written in the body of this License.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 9. The Free Software Foundation may publish revised and/or new versions\r
+\par \hich\af37\dbch\af31505\loch\f37 of the General Public License from time to time.  Such new versions will\r
+\par \hich\af37\dbch\af31505\loch\f37 be similar in spirit to the present version, but may differ in detail to\r
+\par \hich\af37\dbch\af31505\loch\f37 address new problems or concerns.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Each version is given a distinguishing version number.  If the Program\r
+\par \hich\af37\dbch\af31505\loch\f37 spec\hich\af37\dbch\af31505\loch\f37 ifies a version number of this License which applies to it and "any\r
+\par \hich\af37\dbch\af31505\loch\f37 later version", you have the option of following the terms and conditions\r
+\par \hich\af37\dbch\af31505\loch\f37 either of that version or of any later version published by the Free\r
+\par \hich\af37\dbch\af31505\loch\f37 Software Foundation.  If the Program does not\hich\af37\dbch\af31505\loch\f37  specify a version number of\r
+\par \hich\af37\dbch\af31505\loch\f37 this License, you may choose any version ever published by the Free Software\r
+\par \hich\af37\dbch\af31505\loch\f37 Foundation.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 10. If you wish to incorporate parts of the Program into other free\r
+\par \hich\af37\dbch\af31505\loch\f37 programs whose distribution conditions are different, write to the \hich\af37\dbch\af31505\loch\f37 author\r
+\par \hich\af37\dbch\af31505\loch\f37 to ask for permission.  For software which is copyrighted by the Free\r
+\par \hich\af37\dbch\af31505\loch\f37 Software Foundation, write to the Free Software Foundation; we sometimes\r
+\par \hich\af37\dbch\af31505\loch\f37 make exceptions for this.  Our decision will be guided by the two goals\r
+\par \hich\af37\dbch\af31505\loch\f37 of preserving the free status of a\hich\af37\dbch\af31505\loch\f37 ll derivatives of our free software and\r
+\par \hich\af37\dbch\af31505\loch\f37 of promoting the sharing and reuse of software generally.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 NO WARRANTY\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\r
+\par \hich\af37\dbch\af31505\loch\f37 FOR THE PROGRAM, TO THE EXTENT PERMITTED \hich\af37\dbch\af31505\loch\f37 BY APPLICABLE LAW.  EXCEPT WHEN\r
+\par \hich\af37\dbch\af31505\loch\f37 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\r
+\par \hich\af37\dbch\af31505\loch\f37 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\r
+\par \hich\af37\dbch\af31505\loch\f37 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+\par \hich\af37\dbch\af31505\loch\f37 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\r
+\par \hich\af37\dbch\af31505\loch\f37 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\r
+\par \hich\af37\dbch\af31505\loch\f37 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\r
+\par \hich\af37\dbch\af31505\loch\f37 REPAIR OR CORRECTION.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 12. IN NO EVE\hich\af37\dbch\af31505\loch\f37 NT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\r
+\par \hich\af37\dbch\af31505\loch\f37 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\r
+\par \hich\af37\dbch\af31505\loch\f37 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\r
+\par \hich\af37\dbch\af31505\loch\f37 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQ\hich\af37\dbch\af31505\loch\f37 UENTIAL DAMAGES ARISING\r
+\par \hich\af37\dbch\af31505\loch\f37 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\r
+\par \hich\af37\dbch\af31505\loch\f37 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\r
+\par \hich\af37\dbch\af31505\loch\f37 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\r
+\par \hich\af37\dbch\af31505\loch\f37 PROGRAMS),\hich\af37\dbch\af31505\loch\f37  EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\r
+\par \hich\af37\dbch\af31505\loch\f37 POSSIBILITY OF SUCH DAMAGES.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 END OF TERMS AND CONDITIONS\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 How to Apply These Terms to Your New Programs\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 If you develop a new program, and you want it to be of \hich\af37\dbch\af31505\loch\f37 the greatest\r
+\par \hich\af37\dbch\af31505\loch\f37 possible use to the public, the best way to achieve this is to make it\r
+\par \hich\af37\dbch\af31505\loch\f37 free software which everyone can redistribute and change under these terms.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 To do so, attach the following notices to the program.  It is safest\r
+\par \hich\af37\dbch\af31505\loch\f37 to attach them to the st\hich\af37\dbch\af31505\loch\f37 art of each source file to most effectively\r
+\par \hich\af37\dbch\af31505\loch\f37 convey the exclusion of warranty; and each file should have at least\r
+\par \hich\af37\dbch\af31505\loch\f37 the "copyright" line and a pointer to where the full notice is found.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 <one line to give the program's name and a brief idea of what it does.>\r
+\par \hich\af37\dbch\af31505\loch\f37 Copyright (C) <year>  <name of author>\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 This program is free software; you can redistribute it and/or modify\r
+\par \hich\af37\dbch\af31505\loch\f37 it under the terms of the GNU General Public License as pub\hich\af37\dbch\af31505\loch\f37 lished by\r
+\par \hich\af37\dbch\af31505\loch\f37 the Free Software Foundation; either version 2 of the License, or\r
+\par \hich\af37\dbch\af31505\loch\f37 (at your option) any later version.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 This program is distributed in the hope that it will be useful,\r
+\par \hich\af37\dbch\af31505\loch\f37 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+\par \hich\af37\dbch\af31505\loch\f37 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+\par \hich\af37\dbch\af31505\loch\f37 GNU General Public License for more details.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 You should have received a copy of the GNU General Public License along\r
+\par \hich\af37\dbch\af31505\loch\f37 with this program; if not, write to the Free Software Founda\hich\af37\dbch\af31505\loch\f37 tion, Inc.,\r
+\par \hich\af37\dbch\af31505\loch\f37 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Also add information on how to contact you by electronic and paper mail.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 If the program is interactive, make it output a short notice like this\r
+\par \hich\af37\dbch\af31505\loch\f37 when it starts in an interactive m\hich\af37\dbch\af31505\loch\f37 ode:\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Gnomovision version 69, Copyright (C) year name of author\r
+\par \hich\af37\dbch\af31505\loch\f37 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\r
+\par \hich\af37\dbch\af31505\loch\f37 This is free software, and you are welcome to redistribute it\r
+\par \hich\af37\dbch\af31505\loch\f37 under certain conditions; type `show c' \hich\af37\dbch\af31505\loch\f37 for details.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 The hypothetical commands `show w' and `show c' should show the appropriate\r
+\par \hich\af37\dbch\af31505\loch\f37 parts of the General Public License.  Of course, the commands you use may\r
+\par \hich\af37\dbch\af31505\loch\f37 be called something other than `show w' and `show c'; they could even be\r
+\par \hich\af37\dbch\af31505\loch\f37 mouse-clicks or menu items--whatever suits your program.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 You should also get your employer (if you work as a programmer) or your\r
+\par \hich\af37\dbch\af31505\loch\f37 school, if any, to sign a "copyright disclaimer" for the program, if\r
+\par \hich\af37\dbch\af31505\loch\f37 necessary.  Here is a sample; alter the names:\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 Yoyodyn\hich\af37\dbch\af31505\loch\f37 e, Inc., hereby disclaims all copyright interest in the program\r
+\par \hich\af37\dbch\af31505\loch\f37 `Gnomovision' (which makes passes at compilers) written by James Hacker.\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 <signature of Ty Coon>, 1 April 1989\r
+\par \hich\af37\dbch\af31505\loch\f37 Ty Coon, President of Vice\r
+\par \r
+\par \hich\af37\dbch\af31505\loch\f37 This General Public License does not permit inc\hich\af37\dbch\af31505\loch\f37 orporating your program into\r
+\par \hich\af37\dbch\af31505\loch\f37 proprietary programs.  If your program is a subroutine library, you may\r
+\par \hich\af37\dbch\af31505\loch\f37 consider it more useful to permit linking proprietary applications with the\r
+\par \hich\af37\dbch\af31505\loch\f37 library.  If this is what you want to do, use the GNU Lesser General\r
+\par \hich\af37\dbch\af31505\loch\f37 Public Lic\hich\af37\dbch\af31505\loch\f37 ense instead of this License.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2376503\charrsid14179137 \r
+\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a\r
+9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad\r
+5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6\r
+b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0\r
+0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6\r
+a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f\r
+c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512\r
+0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462\r
+a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865\r
+6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b\r
+4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b\r
+4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f\r
+7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb\r
+43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f\r
+f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44\r
+f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14\r
+7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7\r
+dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0\r
+2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12\r
+e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793\r
+c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99\r
+a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93\r
+9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1\r
+6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a\r
+6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c\r
+8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189\r
+4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f\r
+d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec\r
+ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09\r
+6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33\r
+bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d\r
+c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227\r
+0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059\r
+720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1\r
+080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625\r
+20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d\r
+f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb\r
+e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625\r
+572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9\r
+7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f\r
+7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be\r
+9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980\r
+ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b\r
+babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e\r
+745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f\r
+2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74\r
+68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865\r
+6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000}\r
+{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d\r
+617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169\r
+6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363\r
+656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}\r
+{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\r
+\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\r
+\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\r
+\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\r
+\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\r
+\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\r
+\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\r
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\r
+\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\r
+\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\r
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\r
+\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\r
+\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\r
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\r
+\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\r
+\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\r
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\r
+\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\r
+\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;\r
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\r
+\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;\r
+\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\r
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\r
+\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;\r
+\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;\r
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;\r
+\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;\r
+\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;\r
+\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;\r
+\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;\r
+\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;\r
+\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;\r
+\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;\r
+\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;\r
+\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;\r
+\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;\r
+\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;\r
+\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;\r
+\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;\r
+\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;\r
+\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;\r
+\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;\r
+\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;\r
+\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;\r
+\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;\r
+\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;\r
+\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;\r
+\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;\r
+\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;\r
+\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000\r
+4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000\r
+d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\r
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\r
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\r
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\r
+fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\r
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\r
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\r
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\r
+ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000908f\r
+34058e76d201feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000\r
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000\r
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000\r
+0000000000000000000000000000000000000000000000000105000000000000}}
\ No newline at end of file