https://github.com/utsa-saga/vc8proof
Raw File
Tip revision: ecc68a0c3cbeb94477243989a4c0e2300bd3b259 authored by San Antonio Geometry Algorithms on 13 July 2023, 00:09:48 UTC
Update README.md
Tip revision: ecc68a0
colored code.rtf
{\rtf1\adeflang1025\ansi\ansicpg1252\uc2\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe2052\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f44\fbidi \fmodern\fcharset0\fprq1{\*\panose 020b0609020204030204}Consolas;}
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\f509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f528\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}
{\f529\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}{\f531\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f532\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f533\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}
{\f534\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f535\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f536\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f848\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
{\f849\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f851\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f852\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f855\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
{\f856\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f878\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f879\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f881\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}
{\f882\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f883\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f884\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\f885\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
{\f886\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f948\fbidi \fmodern\fcharset238\fprq1 Consolas CE;}{\f949\fbidi \fmodern\fcharset204\fprq1 Consolas Cyr;}{\f951\fbidi \fmodern\fcharset161\fprq1 Consolas Greek;}
{\f952\fbidi \fmodern\fcharset162\fprq1 Consolas Tur;}{\f955\fbidi \fmodern\fcharset186\fprq1 Consolas Baltic;}{\f956\fbidi \fmodern\fcharset163\fprq1 Consolas (Vietnamese);}{\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;}{\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);}{\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;}{\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;}{\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;}{\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;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}
{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}
{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\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;}{\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);}{\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);}{\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;}{\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);}{\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;}{\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;}{\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;}{\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;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
{\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;}
{\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);}
{\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);}}
{\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;
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\caccentfour\ctint255\cshade255\red255\green192\blue0;\red102\green255\blue102;
\red204\green204\blue255;\red204\green255\blue204;\red255\green153\blue153;\red255\green255\blue204;\red255\green204\blue204;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1
\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 
\fs22\lang1033\langfe2052\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\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
\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 
Normal Table;}{\s15\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\tqc\tx4320\tqr\tx8640\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 \sbasedon0 \snext15 \slink16 \sunhideused \styrsid9661541 header;}{\*\cs16 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \sbasedon10 \slink15 \slocked \styrsid9661541 
Header Char;}{\s17\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\tqc\tx4320\tqr\tx8640\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 \sbasedon0 \snext17 \slink18 \sunhideused \styrsid9661541 footer;}{\*\cs18 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \sbasedon10 \slink17 \slocked \styrsid9661541 
Footer Char;}{\s19\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af2\afs20\alang1025 
\ltrch\fcs0 \fs20\lang1033\langfe2052\loch\f2\hich\af2\dbch\af31505\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext19 \slink20 \ssemihidden \sunhideused \styrsid9661541 HTML Preformatted;}{\*\cs20 \additive \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20 
\sbasedon10 \slink19 \slocked \ssemihidden \styrsid9661541 HTML Preformatted Char;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid940104\rsid2970678\rsid9661541\rsid9901417\rsid16718198}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0
\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator Zhongxiu Yang}{\creatim\yr2021\mo2\dy20\hr13\min38}{\revtim\yr2021\mo2\dy20\hr13\min44}{\version4}{\edmins6}{\nofpages9}{\nofwords3942}{\nofchars22470}
{\nofcharsws26360}{\vern17}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect 
\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701
\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale160\rsidroot9661541 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0{\*\ftnsep \ltrpar \pard\plain \ltrpar
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 
\af0 \ltrch\fcs0 \insrsid9901417 \chftnsep 
\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 
\fs22\lang1033\langfe2052\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9901417 \chftnsepc 
\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 
\fs22\lang1033\langfe2052\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9901417 \chftnsep 
\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 
\fs22\lang1033\langfe2052\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9901417 \chftnsepc 
\par }}\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta \hich .}}
{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \hich )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl7
\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}
\pard\plain \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 \rtlch\fcs1 
\af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44 
bool isNotRealizable(vector<string> *currentPoints, int caseNumber)\{
\par \hich\af44\dbch\af31505\loch\f44     ofstream output;
\par \hich\af44\dbch\af31505\loch\f44     if(caseNumber != 0)\{
\par \hich\af44\dbch\af31505\loch\f44         string fn = "output" + to_string(caseNumber) + ".txt";
\par \hich\af44\dbch\af31505\loch\f44         output.open(fn);
\par \hich\af44\dbch\af31505\loch\f44         for(int i=0; i<(*currentPoints).size(); i++)
\par \hich\af44\dbch\af31505\loch\f44             output << (*currentPoints)[i] << endl;
\par \hich\af44\dbch\af31505\loch\f44     \}
\par \hich\af44\dbch\af31505\loch\f44     
\par \hich\af44\dbch\af31505\loch\f44     vector<int> guardIndices;
\par \hich\af44\dbch\af31505\loch\f44     int n = (*currentPo\hich\af44\dbch\af31505\loch\f44 ints).size();
\par \hich\af44\dbch\af31505\loch\f44     
\par \hich\af44\dbch\af31505\loch\f44     for(int i=0; i<(*currentPoints).size(); i++)\{
\par \hich\af44\dbch\af31505\loch\f44         if((*currentPoints)[i].size() == 1)
\par \hich\af44\dbch\af31505\loch\f44             guardIndices.push_back(i);
\par \hich\af44\dbch\af31505\loch\f44     \}
\par \hich\af44\dbch\af31505\loch\f44         
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16718198 \cbpat19 {
\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     unordered_map<string,bool> cannotBlockWithTerrain;
\par \hich\af44\dbch\af31505\loch\f44     for(int i=0; i<(*currentPoints\hich\af44\dbch\af31505\loch\f44 ).size(); i++)\{
\par \hich\af44\dbch\af31505\loch\f44         int isAGuard = 1;
\par \hich\af44\dbch\af31505\loch\f44         if((*currentPoints)[i].size() != 1)
\par \hich\af44\dbch\af31505\loch\f44             isAGuard = 0;
\par \hich\af44\dbch\af31505\loch\f44         for(int j=i+1; j<(*currentPoints).size(); j++)\{
\par \hich\af44\dbch\af31505\loch\f44             string hashKey = (*currentPoints)[i] + "," + (*currentPoints)[j];
\par \hich\af44\dbch\af31505\loch\f44           \hich\af44\dbch\af31505\loch\f44   bool cannotBlock = false;
\par \hich\af44\dbch\af31505\loch\f44             int jGuard = 1;
\par \hich\af44\dbch\af31505\loch\f44             if((*currentPoints)[j].size() != 1)
\par \hich\af44\dbch\af31505\loch\f44                 jGuard = 0;
\par \hich\af44\dbch\af31505\loch\f44             if(isAGuard + jGuard == 1)\{
\par \hich\af44\dbch\af31505\loch\f44                 if(isAGuard)\{
\par \hich\af44\dbch\af31505\loch\f44                     int check = (*currentPoints)[j].find((*currentPoints)[i]);
\par \hich\af44\dbch\af31505\loch\f44                     if(check >= 0)\{
\par \hich\af44\dbch\af31505\loch\f44                         //cout << currentPoints[i] << " sees " << currentPoints[j] << endl;
\par \hich\af44\dbch\af31505\loch\f44                         cannotBlock = true;
\par \hich\af44\dbch\af31505\loch\f44      \hich\af44\dbch\af31505\loch\f44                \}
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 else\{
\par \hich\af44\dbch\af31505\loch\f44                     int check = (*currentPoints)[i].find((*currentPoints)[j]);
\par \hich\af44\dbch\af31505\loch\f44                     if(check >= 0)\{
\par \hich\af44\dbch\af31505\loch\f44                         //cout << (*currentPoints)[i] << " sees " << (*currentPoints\hich\af44\dbch\af31505\loch\f44 )[j] << endl;
\par \hich\af44\dbch\af31505\loch\f44                         cannotBlock = true;
\par \hich\af44\dbch\af31505\loch\f44                     \}
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44             cannotBlockWithTerrain[hashKey] = cannotBlock;
\par \hich\af44\dbch\af31505\loch\f44         \}
\par \hich\af44\dbch\af31505\loch\f44     \}
\par \hich\af44\dbch\af31505\loch\f44         
\par \hich\af44\dbch\af31505\loch\f44     //Do order claims.
\par \hich\af44\dbch\af31505\loch\f44     for(int dist=3; dist <(*currentPo\hich\af44\dbch\af31505\loch\f44 ints).size(); dist++)\{  
\par \hich\af44\dbch\af31505\loch\f44         for(int a=0; a<(*currentPoints).size(); a++)\{ 
\par \hich\af44\dbch\af31505\loch\f44             bool foundAnOC = false;
\par \hich\af44\dbch\af31505\loch\f44             int d = a + dist;
\par \hich\af44\dbch\af31505\loch\f44             if(d>=(*currentPoints).size())\{
\par \hich\af44\dbch\af31505\loch\f44                 continue;
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44             for(int b = a+1; b<d-1; b++)\{
\par \hich\af44\dbch\af31505\loch\f44                 for(int c = b+1; !foundAnOC && c<d; c++)\{
\par \hich\af44\dbch\af31505\loch\f44                     string acHashKey = (*currentPoints)[a] + "," + (*currentPoints)[c];
\par \hich\af44\dbch\af31505\loch\f44                     string bdHashKey = (*currentPoints)[b] + "," + (\hich\af44\dbch\af31505\loch\f44 *currentPoints)[d];
\par \hich\af44\dbch\af31505\loch\f44                     string adHashKey = (*currentPoints)[a] + "," + (*currentPoints)[d];
\par \hich\af44\dbch\af31505\loch\f44                     
\par \hich\af44\dbch\af31505\loch\f44                     if(cannotBlockWithTerrain[acHashKey] && cannotBlockWithTerrain[bdHashKey])\{
\par \hich\af44\dbch\af31505\loch\f44                         //cout \hich\af44\dbch\af31505\loch\f44 << "cannot block " <<*currentPoints[a] << " from " << (*currentPoints)[d] << " with terrain by OC." << endl;
\par \hich\af44\dbch\af31505\loch\f44                         cannotBlockWithTerrain[adHashKey] = true;
\par \hich\af44\dbch\af31505\loch\f44                         foundAnOC = true;
\par \hich\af44\dbch\af31505\loch\f44                     \}
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44         \}
\par \hich\af44\dbch\af31505\loch\f44     \}
\par \hich\af44\dbch\af31505\loch\f44     //End Order Claims.
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 {\rtlch\fcs1 
\af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     
\par \hich\af44\dbch\af31505\loch\f44     
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16718198 \cbpat20 {
\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     //For each guard, check left and right, but remember the key points. (index)
\par \hich\af44\dbch\af31505\loch\f44     vector<int> rightMostPointGuardSees, leftMostPointGuardSees, closestPointHighOutsideLeft, closestPointHigh\hich\af44\dbch\af31505\loch\f44 OutsideRight;
\par \hich\af44\dbch\af31505\loch\f44     
\par \hich\af44\dbch\af31505\loch\f44     for(int i=0; i<guardIndices.size(); i++)\{
\par \hich\af44\dbch\af31505\loch\f44         int gI = guardIndices[i]; // the index of the guard in currentPoints
\par \hich\af44\dbch\af31505\loch\f44         string gS = (*currentPoints)[gI]; // the name of guard
\par \hich\af44\dbch\af31505\loch\f44         //Check to Right.
\par \hich\af44\dbch\af31505\loch\f44         bool foundPointDontSeeWithOC = false;
\par \hich\af44\dbch\af31505\loch\f44         int rightMostPointWeSee = gI, firstRightViewpointHighOutside = (*currentPoints).size();
\par \hich\af44\dbch\af31505\loch\f44         for(int vp = gI+1; vp<(*currentPoints).size(); vp++)\{
\par \hich\af44\dbch\af31505\loch\f44             if((*currentPoints)[vp].size() == 1) // \hich\af44\dbch\af31505\loch\f44 find guard
\par \hich\af44\dbch\af31505\loch\f44                 continue;
\par \hich\af44\dbch\af31505\loch\f44             int check = (*currentPoints)[vp].find(gS);
\par 
\par \hich\af44\dbch\af31505\loch\f44             if(check >= 0)\{
\par \hich\af44\dbch\af31505\loch\f44                 if(foundPointDontSeeWithOC)\{
\par \hich\af44\dbch\af31505\loch\f44                     // x(closestPointHighOutsideRight) < x(rightMostGuardPointSees)
\par \hich\af44\dbch\af31505\loch\f44       \hich\af44\dbch\af31505\loch\f44               return true;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 rightMostPointWeSee = vp;
\par \hich\af44\dbch\af31505\loch\f44             \}
\par 
\par \hich\af44\dbch\af31505\loch\f44             else if(!foundPointDontSeeWithOC && cannotBlockWithTerrain[gS +"," + (*currentPoints)[vp]])\{ // vp does not see g and pierced
\par \hich\af44\dbch\af31505\loch\f44                 \hich\af44\dbch\af31505\loch\f44 int leftMostGuardPointSees = (*currentPoints)[vp][0] - 'A';
\par \hich\af44\dbch\af31505\loch\f44                 if(leftMostGuardPointSees < i)\{
\par \hich\af44\dbch\af31505\loch\f44                     foundPointDontSeeWithOC = true;
\par \hich\af44\dbch\af31505\loch\f44                     firstRightViewpointHighOutside = vp;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44         \}
\par \hich\af44\dbch\af31505\loch\f44         rightMostPointGuardSees.push_back(rightMostPointWeSee);
\par \hich\af44\dbch\af31505\loch\f44         closestPointHighOutsideRight.push_back(firstRightViewpointHighOutside);
\par \hich\af44\dbch\af31505\loch\f44         
\par \hich\af44\dbch\af31505\loch\f44         //Check to Left.
\par \hich\af44\dbch\af31505\loch\f44         foundPointDontSeeWithOC = false;
\par \hich\af44\dbch\af31505\loch\f44         int leftMostPointWe\hich\af44\dbch\af31505\loch\f44 See = gI, firstLeftViewpointHighOutside = -1;
\par \hich\af44\dbch\af31505\loch\f44         for(int vp = gI-1; vp>=0; vp--)\{
\par \hich\af44\dbch\af31505\loch\f44             if((*currentPoints)[vp].size() == 1)
\par \hich\af44\dbch\af31505\loch\f44                 continue;
\par \hich\af44\dbch\af31505\loch\f44             int check = (*currentPoints)[vp].find(gS);
\par 
\par \hich\af44\dbch\af31505\loch\f44             if(check >= 0)\{
\par \hich\af44\dbch\af31505\loch\f44           \hich\af44\dbch\af31505\loch\f44       if(foundPointDontSeeWithOC)\{
\par \hich\af44\dbch\af31505\loch\f44                     // x(leftMostGuardPointSees) < x(closestPointHighOutsideLeft)
\par \hich\af44\dbch\af31505\loch\f44                     return true;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 leftMostPointWeSee = vp;
\par \hich\af44\dbch\af31505\loch\f44             \}
\par 
\par \hich\af44\dbch\af31505\loch\f44             else if(!foundPointD\hich\af44\dbch\af31505\loch\f44 ontSeeWithOC && cannotBlockWithTerrain[(*currentPoints)[vp] +"," + gS])\{
\par \hich\af44\dbch\af31505\loch\f44                 int rightMostGuardPointSees = (*currentPoints)[vp][(*currentPoints)[vp].size()-1] - 'A';
\par \hich\af44\dbch\af31505\loch\f44                 if(rightMostGuardPointSees > i)\{
\par \hich\af44\dbch\af31505\loch\f44                     foundPoin\hich\af44\dbch\af31505\loch\f44 tDontSeeWithOC = true;
\par \hich\af44\dbch\af31505\loch\f44                     firstLeftViewpointHighOutside = vp;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44         \}
\par \hich\af44\dbch\af31505\loch\f44         leftMostPointGuardSees.push_back(leftMostPointWeSee);
\par \hich\af44\dbch\af31505\loch\f44         closestPointHighOutsideLeft.push_back(firstLeftViewpointHighOutside);
\par \hich\af44\dbch\af31505\loch\f44     \}
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 {\rtlch\fcs1 
\af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16718198 \cbpat21 {
\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     //Higher guard.
\par \hich\af44\dbch\af31505\loch\f44     unordered_map<string,string> higherPoint;
\par \hich\af44\dbch\af31505\loch\f44     unordered_map<string,string> tooFarAway; 
\par \hich\af44\dbch\af31505\loch\f44     
\par \hich\af44\dbch\af31505\loch\f44     for(int i=0; i<guardIndices.size(); i++)\{
\par \hich\af44\dbch\af31505\loch\f44     \hich\af44\dbch\af31505\loch\f44     int g1I = guardIndices[i];
\par \hich\af44\dbch\af31505\loch\f44         string g1S = (*currentPoints)[g1I];
\par \hich\af44\dbch\af31505\loch\f44         for(int j= i+1; j<guardIndices.size(); j++)\{
\par \hich\af44\dbch\af31505\loch\f44             int g2I = guardIndices[j];
\par \hich\af44\dbch\af31505\loch\f44             string g2S = (*currentPoints)[g2I];
\par \hich\af44\dbch\af31505\loch\f44             string highGuardKey = g1S + "\hich\af44\dbch\af31505\loch\f44 ," + g2S;
\par \hich\af44\dbch\af31505\loch\f44             higherPoint[highGuardKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44             tooFarAway[highGuardKey] = "unknown";
\par 
\par \hich\af44\dbch\af31505\loch\f44             // x(leftMostPointGuardSees(j) < x(i)) AND x(rightMostPointGuardSees[i]) > x(j)
\par \hich\af44\dbch\af31505\loch\f44             if(leftMostPointGuardSees[j] <= g1I && r\hich\af44\dbch\af31505\loch\f44 ightMostPointGuardSees[i] >= g2I)\{
\par \hich\af44\dbch\af31505\loch\f44                 tooFarAway[highGuardKey] = "no";
\par \hich\af44\dbch\af31505\loch\f44             \}
\par 
\par \hich\af44\dbch\af31505\loch\f44             // x(closestPointHighOutsideRight(j) <= x(rightMostPointGuardSees(i))
\par \hich\af44\dbch\af31505\loch\f44             if(rightMostPointGuardSees[i] >= closestPointHighOutsideRight[j])\{
\par \hich\af44\dbch\af31505\loch\f44                 higherPoint[highGuardKey] = g1S;
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44             
\par \hich\af44\dbch\af31505\loch\f44             // x(le\hich\af44\dbch\af31505\loch\f44 ftMostPointGuardSees(j)) < x(closestPointHighOutsideLeft(i))
\par \hich\af44\dbch\af31505\loch\f44             if(leftMostPointGuardSees[j] <= closestPointHighOutsideLeft[i])\{
\par \hich\af44\dbch\af31505\loch\f44                 if(higherPoint[highGuardKey] == g1S)\{
\par \hich\af44\dbch\af31505\loch\f44                     return true;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44              \hich\af44\dbch\af31505\loch\f44    higherPoint[highGuardKey] = g2S;
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44             
\par \hich\af44\dbch\af31505\loch\f44             // x(closestPointHighOutsideRight(i)) < x(j) AND (i, j) unpiercable
\par \hich\af44\dbch\af31505\loch\f44             if(closestPointHighOutsideRight[i] < g2I && cannotBlockWithTerrain[highGuardKey])\{
\par \hich\af44\dbch\af31505\loch\f44                 if\hich\af44\dbch\af31505\loch\f44 (higherPoint[highGuardKey] == g1S)\{
\par \hich\af44\dbch\af31505\loch\f44                     return true;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 tooFarAway[highGuardKey] = "yes"; // g_1 is low outside of disk g_2
\par \hich\af44\dbch\af31505\loch\f44                 higherPoint[highGuardKey] = g2S;
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44             
\par \hich\af44\dbch\af31505\loch\f44          \hich\af44\dbch\af31505\loch\f44    // x(i) < x(closestPointHighOutsideLeft(j)) AND (i, j) unpiercable
\par \hich\af44\dbch\af31505\loch\f44             if(closestPointHighOutsideLeft[j] > g1I && cannotBlockWithTerrain[highGuardKey])\{
\par \hich\af44\dbch\af31505\loch\f44                 if(higherPoint[highGuardKey] == g2S)\{
\par \hich\af44\dbch\af31505\loch\f44                     return true;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 tooFarAway[highGuardKey] = "yes"; // g_1 is high outside of disk g_2
\par \hich\af44\dbch\af31505\loch\f44                 higherPoint[highGuardKey] = g1S;
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44    \hich\af44\dbch\af31505\loch\f44      \}
\par \hich\af44\dbch\af31505\loch\f44     \}
\par \hich\af44\dbch\af31505\loch\f44     //End Higher Guard
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 {\rtlch\fcs1 
\af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16718198 \cbpat22 {
\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     //If g1 and g2 shouldn't be blocked by terrain, then no ``midguard'' between them can be higher than both of them.
\par \hich\af44\dbch\af31505\loch\f44     for(int i=0; i<guardIndices.size(); i++)\{
\par \hich\af44\dbch\af31505\loch\f44         int g1I = guardIndices[i];
\par \hich\af44\dbch\af31505\loch\f44         string g1S \hich\af44\dbch\af31505\loch\f44 = (*currentPoints)[g1I];
\par \hich\af44\dbch\af31505\loch\f44         for(int j= i+2; j<guardIndices.size(); j++)\{
\par \hich\af44\dbch\af31505\loch\f44             int g2I = guardIndices[j];
\par \hich\af44\dbch\af31505\loch\f44             string g2S = (*currentPoints)[g2I];
\par \hich\af44\dbch\af31505\loch\f44             if(!cannotBlockWithTerrain[g1S + "," + g2S])
\par \hich\af44\dbch\af31505\loch\f44                 continue;
\par \hich\af44\dbch\af31505\loch\f44         \hich\af44\dbch\af31505\loch\f44     for(int k=i+1; k<j; k++)\{
\par \hich\af44\dbch\af31505\loch\f44                 int midGuardI = guardIndices[k];
\par \hich\af44\dbch\af31505\loch\f44                 string midGuardS = (*currentPoints)[midGuardI]; // i < k(midguard) < j
\par \hich\af44\dbch\af31505\loch\f44                 if(higherPoint[g1S + "," + midGuardS] == midGuardS && higherPoint[midGuard\hich\af44\dbch\af31505\loch\f44 S + "," + g2S] == midGuardS)\{
\par \hich\af44\dbch\af31505\loch\f44                     return true;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44         \}
\par \hich\af44\dbch\af31505\loch\f44     \}
\par \hich\af44\dbch\af31505\loch\f44     //End midGuard higher than both.
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 {\rtlch\fcs1 
\af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16718198 \cbpat23 {
\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     //Simply stating that a point cannot be too far away from itself.
\par \hich\af44\dbch\af31505\loch\f44     for (int i = 0; i < (*currentPoints).size()-1; i++)
\par \hich\af44\dbch\af31505\loch\f44     \{
\par \hich\af44\dbch\af31505\loch\f44     \tab string pS = (*currentPoints)[i];
\par \hich\af44\dbch\af31505\loch\f44     \tab string hashKey = pS + "," + pS;
\par \hich\af44\dbch\af31505\loch\f44     \tab tooFarAway[hashKey] = "no";
\par \hich\af44\dbch\af31505\loch\f44     \tab higherPoint\hich\af44\dbch\af31505\loch\f44 [hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44     \}
\par 
\par \hich\af44\dbch\af31505\loch\f44     
\par \hich\af44\dbch\af31505\loch\f44     //Set tooFarAway and highePoint for guard/viewpoint pairs.
\par \hich\af44\dbch\af31505\loch\f44     for (int i = 0; i < (*currentPoints).size()-1; i++)
\par \hich\af44\dbch\af31505\loch\f44     \{
\par \hich\af44\dbch\af31505\loch\f44         for (int j = i+1; j < (*currentPoints).size(); j++) // i < j
\par \hich\af44\dbch\af31505\loch\f44         \{
\par \hich\af44\dbch\af31505\loch\f44             // [g\hich\af44\dbch\af31505\loch\f44 , vp] or [vp, g] pairs
\par \hich\af44\dbch\af31505\loch\f44             if (((*currentPoints)[i].size() == 1) && ((*currentPoints)[j].size() > 1))
\par \hich\af44\dbch\af31505\loch\f44             \{
\par \hich\af44\dbch\af31505\loch\f44                 // i is g and j is vp
\par \hich\af44\dbch\af31505\loch\f44                 string gS = (*currentPoints)[i];
\par \hich\af44\dbch\af31505\loch\f44                 string vpS = (*currentPoints)[j];
\par \hich\af44\dbch\af31505\loch\f44                 int indexWRTGuards = gS[0] - 'A';
\par 
\par \hich\af44\dbch\af31505\loch\f44                 string hashKey = gS + "," + vpS;
\par \hich\af44\dbch\af31505\loch\f44                 int leftMostGuardPointSees = vpS[0] - 'A';
\par \hich\af44\dbch\af31505\loch\f44                 int check = vpS.find(gS);
\par \hich\af44\dbch\af31505\loch\f44      \hich\af44\dbch\af31505\loch\f44            if (check >= 0) // vp sees g
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \hich\af44\dbch\af31505\loch\f44                     tooFarAway[hashKey] = "no";
\par \hich\af44\dbch\af31505\loch\f44                     higherPoint[hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 else if (rightMostPointGuardSees[indexWRTGuards] >= j && leftM\hich\af44\dbch\af31505\loch\f44 ostGuardPointSees <= indexWRTGuards) 
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \hich\af44\dbch\af31505\loch\f44                   //visibilities cross
\par \hich\af44\dbch\af31505\loch\f44                   //Note here vp and g cannot be unpiercable because we would have 
\par \hich\af44\dbch\af31505\loch\f44                   //rejected above.
\par \hich\af44\dbch\af31505\loch\f44                   tooFarAway[hashKey] = "\hich\af44\dbch\af31505\loch\f44 no";
\par \tab \tab \tab \tab \tab \hich\af44\dbch\af31505\loch\f44         higherPoint[hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 else if (cannotBlockWithTerrain[hashKey])  
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \tab \tab \tab \tab \tab \hich\af44\dbch\af31505\loch\f44         //They must be too far away.
\par \tab \tab \tab \tab \tab \hich\af44\dbch\af31505\loch\f44         tooFarAway[hashKey] = "yes";
\par \tab \tab \tab \tab \tab 
\par \hich\af44\dbch\af31505\loch\f44                   \hich\af44\dbch\af31505\loch\f44 if(leftMostGuardPointSees <= indexWRTGuards)
\par \hich\af44\dbch\af31505\loch\f44                   \{
\par \hich\af44\dbch\af31505\loch\f44                     //vp sees a guard to the left of g.
\par \hich\af44\dbch\af31505\loch\f44                     //Therefore vp is high outside g's disk.
\par \hich\af44\dbch\af31505\loch\f44                     higherPoint[hashKey] = vpS;
\par \hich\af44\dbch\af31505\loch\f44                   \}
\par \hich\af44\dbch\af31505\loch\f44                   else if(rightMostPointGuardSees[indexWRTGuards] >= j)
\par \hich\af44\dbch\af31505\loch\f44                   \{
\par \hich\af44\dbch\af31505\loch\f44                     //g sees a point to the right of vp.
\par \hich\af44\dbch\af31505\loch\f44                     //Therefore vp is low outside g's disk.
\par \hich\af44\dbch\af31505\loch\f44                     higherP\hich\af44\dbch\af31505\loch\f44 oint[hashKey] = gS;                    
\par \hich\af44\dbch\af31505\loch\f44                   \}
\par \hich\af44\dbch\af31505\loch\f44                   else
\par \hich\af44\dbch\af31505\loch\f44                   \{                    
\par \hich\af44\dbch\af31505\loch\f44                     higherPoint[hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44                   \}
\par \hich\af44\dbch\af31505\loch\f44                     
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 else
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \hich\af44\dbch\af31505\loch\f44                  tooFarAway[hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44                  higherPoint[hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44             if (((*currentPoints)[i].size() > 1) && ((*currentPoints)[j].size() == 1))
\par \hich\af44\dbch\af31505\loch\f44             \{
\par \hich\af44\dbch\af31505\loch\f44                 // i is vp and j is g
\par \hich\af44\dbch\af31505\loch\f44                 string vpS = (*currentPoints)[i];
\par \hich\af44\dbch\af31505\loch\f44                 string gS = (*currentPoints)[j];
\par \hich\af44\dbch\af31505\loch\f44                 int indexWRTGuards = gS[0] - 'A';
\par 
\par \hich\af44\dbch\af31505\loch\f44                 string hashKey = vpS + "," + gS;
\par \hich\af44\dbch\af31505\loch\f44                 int\hich\af44\dbch\af31505\loch\f44  rightMostGuardPointSees = vpS[vpS.size()-1] - 'A';
\par \hich\af44\dbch\af31505\loch\f44                 int check = vpS.find(gS);
\par \hich\af44\dbch\af31505\loch\f44                 if (check >= 0) // vp sees g
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \hich\af44\dbch\af31505\loch\f44                     tooFarAway[hashKey] = "no";
\par \hich\af44\dbch\af31505\loch\f44                     higherPoint[hashKey] = "unknown\hich\af44\dbch\af31505\loch\f44 ";
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 else if (leftMostPointGuardSees[indexWRTGuards] <= i && rightMostGuardPointSees >= indexWRTGuards) 
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \hich\af44\dbch\af31505\loch\f44                   //visibilities cross
\par \hich\af44\dbch\af31505\loch\f44                   //Note here vp and g cannot be unpiercable b\hich\af44\dbch\af31505\loch\f44 ecause we would have 
\par \hich\af44\dbch\af31505\loch\f44                   //rejected above.
\par \hich\af44\dbch\af31505\loch\f44                   tooFarAway[hashKey] = "no";
\par \tab \tab \tab \tab \tab \hich\af44\dbch\af31505\loch\f44         higherPoint[hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 else if (cannotBlockWithTerrain[hashKey])  
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \tab \tab \tab \tab \tab \hich\af44\dbch\af31505\loch\f44     \hich\af44\dbch\af31505\loch\f44     //They must be too far away.
\par \tab \tab \tab \tab \tab \hich\af44\dbch\af31505\loch\f44         tooFarAway[hashKey] = "yes";
\par \tab \tab \tab \tab \tab 
\par \hich\af44\dbch\af31505\loch\f44                   if(rightMostGuardPointSees >= indexWRTGuards)
\par \hich\af44\dbch\af31505\loch\f44                   \{
\par \hich\af44\dbch\af31505\loch\f44                     //vp sees a guard to the right of g.
\par \hich\af44\dbch\af31505\loch\f44                     //Therefore vp is high outside g's disk.
\par \hich\af44\dbch\af31505\loch\f44                     higherPoint[hashKey] = vpS;
\par \hich\af44\dbch\af31505\loch\f44                   \}
\par \hich\af44\dbch\af31505\loch\f44                   else if(leftMostPointGuardSees[indexWRTGuards] <= i)
\par \hich\af44\dbch\af31505\loch\f44                   \{
\par \hich\af44\dbch\af31505\loch\f44                     //g sees a point to the left of vp.
\par \hich\af44\dbch\af31505\loch\f44                     //Therefore vp is low outside g's disk.
\par \hich\af44\dbch\af31505\loch\f44                     higherPoint[hashKey] = gS;                    
\par \hich\af44\dbch\af31505\loch\f44                   \}
\par \hich\af44\dbch\af31505\loch\f44                   else
\par \hich\af44\dbch\af31505\loch\f44          \hich\af44\dbch\af31505\loch\f44          \{                    
\par \hich\af44\dbch\af31505\loch\f44                     higherPoint[hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44                   \}
\par \hich\af44\dbch\af31505\loch\f44                     
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 else
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \hich\af44\dbch\af31505\loch\f44                  tooFarAway[hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44                  higher\hich\af44\dbch\af31505\loch\f44 Point[hashKey] = "unknown";
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44         \}
\par \hich\af44\dbch\af31505\loch\f44     \}
\par \hich\af44\dbch\af31505\loch\f44     
\par \hich\af44\dbch\af31505\loch\f44     
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 {\rtlch\fcs1 
\af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16718198 \cbpat24 {
\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     //Check to see if there is a guard that is low outside of a disk but needs to pierce a line segment inside that disk.
\par \hich\af44\dbch\af31505\loch\f44     for(int i=0; i<guardIndices.size(); i++)\{
\par \hich\af44\dbch\af31505\loch\f44         int g1I = guardIndices[i];
\par \hich\af44\dbch\af31505\loch\f44         string g1S = (*currentPoints)[g1I];
\par \hich\af44\dbch\af31505\loch\f44         f\hich\af44\dbch\af31505\loch\f44 or(int j= i+1; j<guardIndices.size(); j++)\{
\par \hich\af44\dbch\af31505\loch\f44             int g2I = guardIndices[j];
\par \hich\af44\dbch\af31505\loch\f44             string g2S = (*currentPoints)[g2I];
\par \hich\af44\dbch\af31505\loch\f44             string hashKey = g1S + "," + g2S;
\par 
\par \hich\af44\dbch\af31505\loch\f44             //We are looking to see if g1 needs to block g2 from seeing any vi\hich\af44\dbch\af31505\loch\f44 ewpoints
\par \hich\af44\dbch\af31505\loch\f44             //to the left of g1.  If g1 and g2 can be pierced, then g1 doesn't have to be
\par \hich\af44\dbch\af31505\loch\f44             //the blocker for g2 for any such viewpoints, so skip this g2.
\par \hich\af44\dbch\af31505\loch\f44             if(!cannotBlockWithTerrain[hashKey]) 
\par \hich\af44\dbch\af31505\loch\f44                 continue;
\par 
\par \hich\af44\dbch\af31505\loch\f44      \hich\af44\dbch\af31505\loch\f44        for(int vp = g1I-1; vp>leftMostPointGuardSees[j]; vp--)\{ // x(leftMostPointGuardSees(j)) < x(vp) < x(i)
\par 
\par \hich\af44\dbch\af31505\loch\f44                 //We want to check to see if g2 does not see vp and needs a blocker to pierce
\par \hich\af44\dbch\af31505\loch\f44                 //\\overline\{vp g2\}.  Since g1 and \hich\af44\dbch\af31505\loch\f44 g2 are unpiercable, it must be that
\par \hich\af44\dbch\af31505\loch\f44                 //either g1 pierces \\overline\{vp g2\} or that some point to the left of g1 is 
\par \hich\af44\dbch\af31505\loch\f44                 //the blocker (if g1 does not pierce then nothing between g1 and g2 can pierce).
\par \hich\af44\dbch\af31505\loch\f44                 string vpS = (*currentPoints)[vp];
\par \hich\af44\dbch\af31505\loch\f44                 if(vpS.size() == 1) // must be a viewpoint, not guard
\par \hich\af44\dbch\af31505\loch\f44                     continue;
\par \hich\af44\dbch\af31505\loch\f44         \hich\af44\dbch\af31505\loch\f44         int check = vpS.find(g2S); // vp does not see g2
\par \hich\af44\dbch\af31505\loch\f44                 if(check >= 0)
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \hich\af44\dbch\af31505\loch\f44                     //If g2 sees vp, then g1 cannot be the blocker for g2 for any vp' to the left of vp, so we can stop checking.
\par \hich\af44\dbch\af31505\loch\f44                     \hich\af44\dbch\af31505\loch\f44 break;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 else\{
\par \hich\af44\dbch\af31505\loch\f44                   string vpG2HashKey = generateHashKey(vp, g2I, currentPoints);
\par \hich\af44\dbch\af31505\loch\f44                   if(tooFarAway[vpG2HashKey] != "no")
\par \hich\af44\dbch\af31505\loch\f44                   \{
\par \hich\af44\dbch\af31505\loch\f44                     //We don't know for sure if we need\hich\af44\dbch\af31505\loch\f44  a blocker for this vp, so skip it.
\par \hich\af44\dbch\af31505\loch\f44                       continue; 
\par \hich\af44\dbch\af31505\loch\f44                   \}
\par 
\par \hich\af44\dbch\af31505\loch\f44                     //If we are here, then g2 does not see vp, and vp is inside g2's disk.
\par \hich\af44\dbch\af31505\loch\f44                     //Therefore we must find a blocker in (vp, g1].
\par \hich\af44\dbch\af31505\loch\f44        \hich\af44\dbch\af31505\loch\f44              bool blockerCanBeG1, blockerCanBeNewPoint;
\par 
\par 
\par \hich\af44\dbch\af31505\loch\f44                     //Is there a guard gk such that disc(gk) contains g2 and vp but g1 must 
\par \hich\af44\dbch\af31505\loch\f44                     //be low outside?  If so, g1 cannot pierce \\overline\{g2 vp\}.
\par 
\par \hich\af44\dbch\af31505\loch\f44                     //assuming g1 can be a blocker until we determine otherwise.
\par \hich\af44\dbch\af31505\loch\f44                     blockerCanBeG1 = true;
\par \hich\af44\dbch\af31505\loch\f44                     for(int k=0; k<guardIndices.size(); k++)\{
\par \hich\af44\dbch\af31505\loch\f44                         if(k == i)
\par \hich\af44\dbch\af31505\loch\f44                             continu\hich\af44\dbch\af31505\loch\f44 e;
\par \hich\af44\dbch\af31505\loch\f44                         int gkI = guardIndices[k];
\par \hich\af44\dbch\af31505\loch\f44                         string gkS =  (*currentPoints)[gkI];
\par 
\par \hich\af44\dbch\af31505\loch\f44                         //If g1 is not low outside gk's disk, skip this gk.
\par \hich\af44\dbch\af31505\loch\f44                         string firstHash = generateHashKey(gkI, \hich\af44\dbch\af31505\loch\f44 g1I, currentPoints);              
\par \hich\af44\dbch\af31505\loch\f44                         if(tooFarAway[firstHash] != "yes" || higherPoint[firstHash] != gkS)
\par \hich\af44\dbch\af31505\loch\f44                             continue;
\par 
\par \hich\af44\dbch\af31505\loch\f44                         //If g2 is not inside gk's disk, skip this gk.
\par \hich\af44\dbch\af31505\loch\f44                    \hich\af44\dbch\af31505\loch\f44      string secondHash = generateHashKey(gkI, g2I, currentPoints);
\par \hich\af44\dbch\af31505\loch\f44                         if(tooFarAway[secondHash] != "no")
\par \hich\af44\dbch\af31505\loch\f44                             continue;
\par 
\par \hich\af44\dbch\af31505\loch\f44                         //If we are here, then g1 is low outside gk's disk, and g2 is insid\hich\af44\dbch\af31505\loch\f44 e
\par \hich\af44\dbch\af31505\loch\f44                         //gk's disk.  If vp is also inside gk's disk, then g1 cannot
\par \hich\af44\dbch\af31505\loch\f44                         //be the blocker.
\par \hich\af44\dbch\af31505\loch\f44                         string thirdHash = generateHashKey(gkI, vp, currentPoints);
\par \hich\af44\dbch\af31505\loch\f44                         if (tooFarAway[thir\hich\af44\dbch\af31505\loch\f44 dHash] == "no")
\par \hich\af44\dbch\af31505\loch\f44                         \{
\par \hich\af44\dbch\af31505\loch\f44                             blockerCanBeG1 = false;
\par \hich\af44\dbch\af31505\loch\f44                             break;
\par \hich\af44\dbch\af31505\loch\f44                         \}
\par \hich\af44\dbch\af31505\loch\f44                         else if(gkI > g2I && tooFarAway[thirdHash] == "yes" && higherPoint[thirdHash] == vpS && tooFarAway[firstHash] == "yes" && higherPoint[firstHash] == gkS && tooFarAway[secondHash] == "no")\{
\par \hich\af44\dbch\af31505\loch\f44                             //vp is high out\hich\af44\dbch\af31505\loch\f44 side gk's disk, and g1 is low outside gk's disk.
\par \hich\af44\dbch\af31505\loch\f44                             //Then g1 cannot be a blocker for \\overline\{vp g2\}.
\par \hich\af44\dbch\af31505\loch\f44                             blockerCanBeG1 = false;
\par \hich\af44\dbch\af31505\loch\f44                             break;
\par \hich\af44\dbch\af31505\loch\f44                         \}
\par \hich\af44\dbch\af31505\loch\f44               \hich\af44\dbch\af31505\loch\f44       \}
\par \hich\af44\dbch\af31505\loch\f44                     if(blockerCanBeG1)\{
\par \hich\af44\dbch\af31505\loch\f44                         //if g1 can be the blocker then we move on to the next vp.
\par \hich\af44\dbch\af31505\loch\f44                         continue;
\par \hich\af44\dbch\af31505\loch\f44                     \}
\par 
\par \hich\af44\dbch\af31505\loch\f44                     //If we are here, then g1 could not be the block\hich\af44\dbch\af31505\loch\f44 er, so the terrain will
\par \hich\af44\dbch\af31505\loch\f44                     // need to have a "new point" that is not in the point order to serve as 
\par \hich\af44\dbch\af31505\loch\f44                     //the blocker for \\overline\{vp g2\}.  There are 2 problems this could cause:
\par \hich\af44\dbch\af31505\loch\f44                     if(cannotBlockWithTerr\hich\af44\dbch\af31505\loch\f44 ain[vpS + "," + g1S])\{
\par \hich\af44\dbch\af31505\loch\f44                         //The new blocker would have to block g1 from vp as well.  So if vp and
\par \hich\af44\dbch\af31505\loch\f44                         //g1 are unpiercable, we can reject the order.
\par \hich\af44\dbch\af31505\loch\f44                         blockerCanBeNewPoint = false;
\par \hich\af44\dbch\af31505\loch\f44             \hich\af44\dbch\af31505\loch\f44         \}
\par \hich\af44\dbch\af31505\loch\f44                     else\{
\par \hich\af44\dbch\af31505\loch\f44                         //New blocker may make more things unpiercable.
\par \hich\af44\dbch\af31505\loch\f44                         // In particular, every viewpoint vp2 to the left of vp such that 
\par \hich\af44\dbch\af31505\loch\f44                         //vp2 and g1 are unpiercable, we would now have that vp2 and g2 are 
\par \hich\af44\dbch\af31505\loch\f44                         //unpiercable whereas they might have been able \hich\af44\dbch\af31505\loch\f44 to have been blocked 
\par \hich\af44\dbch\af31505\loch\f44                         //before.  If vp2 would need to be high and outside of g2's disk then 
\par \hich\af44\dbch\af31505\loch\f44                         //we may be able to reject.
\par \hich\af44\dbch\af31505\loch\f44                         blockerCanBeNewPoint = true;
\par \hich\af44\dbch\af31505\loch\f44                         for(int vp\hich\af44\dbch\af31505\loch\f44 2 = vp-1; vp2 > leftMostPointGuardSees[j]; vp2--)\{
\par \hich\af44\dbch\af31505\loch\f44                             check = (*currentPoints)[vp2].find(g1S);
\par \hich\af44\dbch\af31505\loch\f44                             if(check >=0)\{
\par \hich\af44\dbch\af31505\loch\f44                                 //g1 sees vp2.
\par \hich\af44\dbch\af31505\loch\f44                                 check = (*curr\hich\af44\dbch\af31505\loch\f44 entPoints)[vp2].find(g2S);
\par \hich\af44\dbch\af31505\loch\f44                                 if(check < 0)\{
\par \hich\af44\dbch\af31505\loch\f44                                     //g2 does not see vp2, but now it is unpiercable and it sees
\par \hich\af44\dbch\af31505\loch\f44                                     //a point to the left of vp2 (we stop checking vp\hich\af44\dbch\af31505\loch\f44 2s when we get to the last point g2 sees).
\par 
\par \hich\af44\dbch\af31505\loch\f44                                     //It could only be low outside g2's disk.  If vp2 sees a guard to the right of g2, the order is not realizable.
\par \hich\af44\dbch\af31505\loch\f44                                     int rightMostGuardPointSees \hich\af44\dbch\af31505\loch\f44 = (*currentPoints)[vp2][(*currentPoints)[vp2].size()-1] - 'A';
\par \hich\af44\dbch\af31505\loch\f44                                     if(rightMostGuardPointSees > j)\{
\par \hich\af44\dbch\af31505\loch\f44                                         blockerCanBeNewPoint = false;
\par \hich\af44\dbch\af31505\loch\f44                                         break;
\par \hich\af44\dbch\af31505\loch\f44        \hich\af44\dbch\af31505\loch\f44                              \}
\par \hich\af44\dbch\af31505\loch\f44                                 \}
\par \hich\af44\dbch\af31505\loch\f44                             \}
\par \hich\af44\dbch\af31505\loch\f44                         \}
\par \hich\af44\dbch\af31505\loch\f44                     \}
\par \hich\af44\dbch\af31505\loch\f44                     if(!blockerCanBeNewPoint)
\par \hich\af44\dbch\af31505\loch\f44                         return true;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44             
\par 
\par \hich\af44\dbch\af31505\loch\f44             //Repeat the process except now we are checking on blockers for \\overline\{g1 vp\} for
\par \hich\af44\dbch\af31505\loch\f44             //vps to the right of g2.
\par \hich\af44\dbch\af31505\loch\f44             for(int vp = g2I+1; vp<rig\hich\af44\dbch\af31505\loch\f44 htMostPointGuardSees[i]; vp++)\{
\par \hich\af44\dbch\af31505\loch\f44                 string vpS = (*currentPoints)[vp];
\par \hich\af44\dbch\af31505\loch\f44                 if(vpS.size() == 1)
\par \hich\af44\dbch\af31505\loch\f44                     continue;
\par \hich\af44\dbch\af31505\loch\f44               
\par \hich\af44\dbch\af31505\loch\f44                 int check = vpS.find(g1S);
\par \hich\af44\dbch\af31505\loch\f44                 if(check >= 0)
\par \hich\af44\dbch\af31505\loch\f44                 \{
\par \hich\af44\dbch\af31505\loch\f44                   //If vp sees g1 then g2 will not be a blocker for any point right of vp.
\par \hich\af44\dbch\af31505\loch\f44                     break;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44                 else\{
\par 
\par \hich\af44\dbch\af31505\loch\f44                   string vpG1HashKey = generateHashKey(g1I, vp, currentPoints);
\par \hich\af44\dbch\af31505\loch\f44                  \hich\af44\dbch\af31505\loch\f44  if(tooFarAway[vpG1HashKey] != "no") // vp sees a guard right of g2
\par \hich\af44\dbch\af31505\loch\f44                   \{
\par \hich\af44\dbch\af31505\loch\f44                     //We don't know for sure if we need a blocker for this vp, so skip it.
\par \hich\af44\dbch\af31505\loch\f44                       continue; // check both side
\par \hich\af44\dbch\af31505\loch\f44                   \}
\par 
\par \hich\af44\dbch\af31505\loch\f44                     bool blockerCanBeG2, blockerCanBeNewPoint;
\par \hich\af44\dbch\af31505\loch\f44                     //Is there a disc that contains g1 and vp but g2?
\par \hich\af44\dbch\af31505\loch\f44                     blockerCanBeG2 = true;
\par \hich\af44\dbch\af31505\loch\f44         \hich\af44\dbch\af31505\loch\f44             for(int k=0; k<guardIndices.size(); k++)\{
\par \hich\af44\dbch\af31505\loch\f44                         if(k == j)
\par \hich\af44\dbch\af31505\loch\f44                             continue;
\par \hich\af44\dbch\af31505\loch\f44                         int gkI = guardIndices[k];
\par \hich\af44\dbch\af31505\loch\f44                         string gkS = (*currentPoints)[gkI];
\par \hich\af44\dbch\af31505\loch\f44                   \hich\af44\dbch\af31505\loch\f44       string firstHash = generateHashKey(gkI, g1I, currentPoints);
\par \hich\af44\dbch\af31505\loch\f44                         if(tooFarAway[firstHash] != "no")
\par \hich\af44\dbch\af31505\loch\f44                             continue;
\par \hich\af44\dbch\af31505\loch\f44                         string secondHash = generateHashKey(gkI, g2I, currentPoints);
\par \hich\af44\dbch\af31505\loch\f44        \hich\af44\dbch\af31505\loch\f44                  if(tooFarAway[secondHash] != "yes" || higherPoint[secondHash] != gkS)
\par \hich\af44\dbch\af31505\loch\f44                             continue;
\par \hich\af44\dbch\af31505\loch\f44                         string thirdHash = generateHashKey(gkI, vp, currentPoints);
\par \hich\af44\dbch\af31505\loch\f44                         if(tooFarAway[thirdHash\hich\af44\dbch\af31505\loch\f44 ] == "no")
\par \hich\af44\dbch\af31505\loch\f44                         \{
\par \hich\af44\dbch\af31505\loch\f44                             blockerCanBeG2 = false;
\par \hich\af44\dbch\af31505\loch\f44                             break;
\par \hich\af44\dbch\af31505\loch\f44                         \}
\par \hich\af44\dbch\af31505\loch\f44                         else if(gkI < g1I && tooFarAway[thirdHash] == "yes" && higherPoint[thirdHash] == v\hich\af44\dbch\af31505\loch\f44 
pS && tooFarAway[secondHash] == "yes" && higherPoint[secondHash] == gkS && tooFarAway[firstHash] == "no")\{
\par \hich\af44\dbch\af31505\loch\f44                             blockerCanBeG2 = false;
\par \hich\af44\dbch\af31505\loch\f44                             break;
\par \hich\af44\dbch\af31505\loch\f44                         \}
\par \hich\af44\dbch\af31505\loch\f44                     \}
\par \hich\af44\dbch\af31505\loch\f44                     if(blockerCanBeG2)
\par \hich\af44\dbch\af31505\loch\f44                         continue;
\par \hich\af44\dbch\af31505\loch\f44                     if(cannotBlockWithTerrain[g2S + "," + (*currentPoints)[vp]])\{
\par \hich\af44\dbch\af31505\loch\f44                         blockerCanBeNewPoint = false;
\par \hich\af44\dbch\af31505\loch\f44                     \}
\par \hich\af44\dbch\af31505\loch\f44    \hich\af44\dbch\af31505\loch\f44                  else\{
\par \hich\af44\dbch\af31505\loch\f44                         //New blocker may make more things unpiercable
\par \hich\af44\dbch\af31505\loch\f44                         blockerCanBeNewPoint = true;
\par \hich\af44\dbch\af31505\loch\f44                         for(int vp2 = vp+1; vp2 < rightMostPointGuardSees[i]; vp2++)\{
\par \hich\af44\dbch\af31505\loch\f44                        \hich\af44\dbch\af31505\loch\f44      check = (*currentPoints)[vp2].find(g2S);
\par \hich\af44\dbch\af31505\loch\f44                             if(check >=0)\{
\par \hich\af44\dbch\af31505\loch\f44                                 check = (*currentPoints)[vp2].find(g1S);
\par \hich\af44\dbch\af31505\loch\f44                                 if(check < 0)\{
\par \hich\af44\dbch\af31505\loch\f44                                     int leftMos\hich\af44\dbch\af31505\loch\f44 tGuardPointSees = (*currentPoints)[vp2][0] - 'A';
\par \hich\af44\dbch\af31505\loch\f44                                     if(leftMostGuardPointSees < i)\{
\par \hich\af44\dbch\af31505\loch\f44                                         blockerCanBeNewPoint = false;
\par \hich\af44\dbch\af31505\loch\f44                                         break;
\par \hich\af44\dbch\af31505\loch\f44                      \hich\af44\dbch\af31505\loch\f44                \}
\par \hich\af44\dbch\af31505\loch\f44                                 \}
\par \hich\af44\dbch\af31505\loch\f44                             \}
\par \hich\af44\dbch\af31505\loch\f44                         \}
\par \hich\af44\dbch\af31505\loch\f44                     \}
\par \hich\af44\dbch\af31505\loch\f44                     if(!blockerCanBeNewPoint)
\par \hich\af44\dbch\af31505\loch\f44                         return true;
\par \hich\af44\dbch\af31505\loch\f44                 \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44         \}
\par \hich\af44\dbch\af31505\loch\f44     \}
\par \hich\af44\dbch\af31505\loch\f44     
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 {\rtlch\fcs1 
\af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 
\par 
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16718198 \cbpat25 {
\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     //We now check for violations of Lemma 5 where the "outer" points of the lemma are guards g1 and g2 and the "inner" points are viewpoints.

\par \hich\af44\dbch\af31505\loch\f44     for(int i=0; i<guardIndices.size(); i++)\{
\par \hich\af44\dbch\af31505\loch\f44         int g1I = guardIndices[i];
\par \hich\af44\dbch\af31505\loch\f44         s\hich\af44\dbch\af31505\loch\f44 tring g1S = (*currentPoints)[g1I];
\par \hich\af44\dbch\af31505\loch\f44         for(int j= i+1; j<guardIndices.size(); j++)\{
\par \hich\af44\dbch\af31505\loch\f44             int g2I = guardIndices[j];
\par \hich\af44\dbch\af31505\loch\f44             string g2S = (*currentPoints)[g2I];
\par 
\par \hich\af44\dbch\af31505\loch\f44             //We now look for a point vp2 that sees g2 but is low outside of g1'\hich\af44\dbch\af31505\loch\f44 s disk.
\par \hich\af44\dbch\af31505\loch\f44             for(int vp2 = g1I + 1; vp2 < g2I; vp2++)\{
\par 
\par \hich\af44\dbch\af31505\loch\f44                string vp2S = (*currentPoints)[vp2];
\par 
\par \hich\af44\dbch\af31505\loch\f44                int check = vp2S.find(g1S);
\par \hich\af44\dbch\af31505\loch\f44                if(check >= 0) // Skip if vp2 sees g1.
\par \hich\af44\dbch\af31505\loch\f44                     continue;
\par 
\par \hich\af44\dbch\af31505\loch\f44                check = vp2S.find(g2S);
\par \hich\af44\dbch\af31505\loch\f44                if(check < 0) // Skip if vp2 doesn't see g2.
\par \hich\af44\dbch\af31505\loch\f44                     continue;
\par 
\par \hich\af44\dbch\af31505\loch\f44                string hashKey2 = g1S + "," + vp2S;
\par 
\par \hich\af44\dbch\af31505\loch\f44                if(tooFarAway[hashKey2] != "yes" || higherPoint[hashKey2] !\hich\af44\dbch\af31505\loch\f44 = g1S) 
\par \hich\af44\dbch\af31505\loch\f44                     continue;
\par \hich\af44\dbch\af31505\loch\f44                
\par 
\par \hich\af44\dbch\af31505\loch\f44                //So now we have that vp2 is low outside of g1.
\par \hich\af44\dbch\af31505\loch\f44                //If there is a vp1 between vp2 and g2 that sees g1, but has to be low 
\par \hich\af44\dbch\af31505\loch\f44                //outside g2's disk, the order is un\hich\af44\dbch\af31505\loch\f44 realizable.
\par \hich\af44\dbch\af31505\loch\f44                for(int vp1 = vp2 +1; vp1 < g2I; vp1++) \{
\par 
\par \hich\af44\dbch\af31505\loch\f44                     string vp1S = (*currentPoints)[vp1];
\par 
\par \hich\af44\dbch\af31505\loch\f44                     check = vp1S.find(g1S);
\par \hich\af44\dbch\af31505\loch\f44                     if(check < 0) // Skip if vp1 doesn't see g1.
\par \hich\af44\dbch\af31505\loch\f44                    \hich\af44\dbch\af31505\loch\f44      continue;
\par 
\par \hich\af44\dbch\af31505\loch\f44                     check = vp1S.find(g2S);
\par \hich\af44\dbch\af31505\loch\f44                     if(check >= 0) // Skip if vp1 sees g2.
\par \hich\af44\dbch\af31505\loch\f44                         continue;
\par 
\par \hich\af44\dbch\af31505\loch\f44                     string hashKey1 = vp1S + "," + g2S;
\par \hich\af44\dbch\af31505\loch\f44                     if(tooFarAway[hashKey1] != "yes" || higherPoint[hashKey1] != g2S) 
\par \hich\af44\dbch\af31505\loch\f44                         continue;
\par \hich\af44\dbch\af31505\loch\f44                    
\par \hich\af44\dbch\af31505\loch\f44                     //If we make it here then g1, vp2, vp1,\hich\af44\dbch\af31505\loch\f44  g2 violate Lemma 5.
\par \hich\af44\dbch\af31505\loch\f44                     return true;
\par \hich\af44\dbch\af31505\loch\f44                \}
\par \hich\af44\dbch\af31505\loch\f44             \}
\par \hich\af44\dbch\af31505\loch\f44         \}
\par \hich\af44\dbch\af31505\loch\f44     \}
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9661541 {\rtlch\fcs1 
\af2\afs16 \ltrch\fcs0 \f44\fs16\cf1\insrsid9661541\charrsid9661541 \hich\af44\dbch\af31505\loch\f44     output.close();
\par 
\par \hich\af44\dbch\af31505\loch\f44     //If we make it here, we could not determine that the order is unrealizable.
\par \hich\af44\dbch\af31505\loch\f44     return false;
\par \}
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f44\fs16\insrsid940104\charrsid9661541 
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100b6f4679893070000c9200000160000007468656d652f7468656d652f
7468656d65312e786d6cec59cd8b1bc915bf07f23f347d97f5d5ad8fc1f2a24fcfda33b6b164873dd648a5eef2547789aad28cc56208de532e81c026e49085bd
ed21842cecc22eb9e48f31d8249b3f22afaa5bdd5552c99e191c3061463074977eefd5afde7bf5de53d5ddcf5e26d4bbc05c1096f6fcfa9d9aefe174ce16248d
7afeb3d9a4d2f13d2151ba4094a5b8e76fb0f03fbbf7eb5fdd454732c609f6403e1547a8e7c752ae8eaa5531876124eeb0154ee1bb25e30992f0caa3ea82a34b
d09bd06aa3566b55134452df4b51026a1f2f97648ebd9952e9dfdb2a1f53784da5500373caa74a35b6243476715e5708b11143cabd0b447b3eccb3609733fc52
fa1e4542c2173dbfa6fffceabdbb5574940b517940d6909be8bf5c2e17589c37f49c3c3a2b260d823068f50bfd1a40e53e6edc1eb7c6ad429f06a0f91c569a71
b175b61bc320c71aa0ecd1a17bd41e35eb16ded0dfdce3dc0fd5c7c26b50a63fd8c34f2643b0a285d7a00c1feee1c3417730b2f56b50866fede1dbb5fe28685b
fa3528a6243ddf43d7c25673b85d6d0159327aec8477c360d26ee4ca4b144443115d6a8a254be5a1584bd00bc6270050408a24493db959e1259a43140f112567
9c7827248a21f056286502866b8ddaa4d684ffea13e827ed5174849121ad780113b137a4f87862cec94af6fc07a0d537206f7ffef9cdeb1fdfbcfee9cd575fbd
79fdf77c6eadca923b466964cafdf2dd1ffef3cd6fbd7ffff0ed2f5fff319b7a172f4cfcbbbffdeedd3ffef93ef5b0e2d2146ffff4fdbb1fbf7ffbe7dfffebaf
5f3bb4f7393a33e1339260e13dc297de5396c0021dfcf119bf9ec42c46c494e8a791402952b338f48f656ca11f6d10450edc00db767cce21d5b880f7d72f2cc2
d398af2571687c182716f094313a60dc6985876a2ec3ccb3751ab927e76b13f714a10bd7dc43945a5e1eaf579063894be530c616cd2714a5124538c5d253dfb1
738c1dabfb8210cbaea764ce99604be97d41bc01224e93ccc899154da5d03149c02f1b1741f0b7659bd3e7de8051d7aa47f8c246c2de40d4417e86a965c6fb68
2d51e252394309350d7e8264ec2239ddf0b9891b0b099e8e3065de78818570c93ce6b05ec3e90f21cdb8dd7e4a37898de4929cbb749e20c64ce4889d0f6394ac
5cd829496313fbb938871045de13265df05366ef10f50e7e40e941773f27d872f787b3c133c8b026a53240d4376beef0e57dccacf89d6ee8126157aae9f3c44a
b17d4e9cd131584756689f604cd1255a60ec3dfbdcc160c05696cd4bd20f62c82ac7d815580f901dabea3dc5027a25d5dcece7c91322ac909de2881de073bad9
493c1b9426881fd2fc08bc6eda7c0ca52e7105c0633a3f37818f08f480102f4ea33c16a0c308ee835a9fc4c82a60ea5db8e375c32dff5d658fc1be7c61d1b8c2
be04197c6d1948eca6cc7b6d3343d49aa00c9819822ec3956e41c4727f29a28aab165b3be596f6a62ddd00dd91d5f42424fd6007b4d3fb84ffbbde073a8cb77f
f9c6b10f3e4ebfe3566c25ab6b763a8792c9f14e7f7308b7dbd50c195f904fbfa919a175fa04431dd9cf58b73dcd6d4fe3ffdff73487f6f36d2773a8dfb8ed64
7ce8306e3b99fc70e5e3743265f3027d8d3af0c80e7af4b14f72f0d46749289dca0dc527421ffc08f83db398c0a092d3279eb838055cc5f0a8ca1c4c60e1228e
b48cc799fc0d91f134462b381daafb4a492472d591f0564cc0a1911e76ea5678ba4e4ed9223becacd7d5c16656590592e5782d2cc6e1a04a66e856bb3cc02bd4
6bb6913e68dd1250b2d721614c6693683a48b4b783ca48fa58178ce620a157f65158741d2c3a4afdd6557b2c805ae115f8c1edc1cff49e1f06200242701e07cd
f942f92973f5d6bbda991fd3d3878c69450034d8db08283ddd555c0f2e4fad2e0bb52b78da2261849b4d425b46377822869fc17974aad1abd0b8aeafbba54b2d
7aca147a3e08ad9246bbf33e1637f535c8ede6069a9a9982a6de65cf6f35430899395af5fc251c1ac363b282d811ea3717a211dcbccc25cf36fc4d32cb8a0b39
4222ce0cae934e960d122231f728497abe5a7ee1069aea1ca2b9d51b90103e59725d482b9f1a3970baed64bc5ce2b934dd6e8c284b67af90e1b35ce1fc568bdf
1cac24d91adc3d8d1797de195df3a708422c6cd795011744c0dd413db3e682c0655891c8caf8db294c79da356fa3740c65e388ae62945714339967709dca0b3a
faadb081f196af190c6a98242f8467912ab0a651ad6a5a548d8cc3c1aafb6121653923699635d3ca2aaa6abab39835c3b60cecd8f26645de60b53531e434b3c2
67a97b37e576b7b96ea74f28aa0418bcb09fa3ea5ea12018d4cac92c6a8af17e1a56393b1fb56bc776811fa07695226164fdd656ed8edd8a1ae19c0e066f54f9
416e376a6168b9ed2bb5a5f5adb979b1cdce5e40f2184197bba6526857c2c92e47d0104d754f92a50dd8222f65be35e0c95b73d2f3bfac85fd60d80887955a27
1c57826650ab74c27eb3d20fc3667d1cd66ba341e31514161927f530bbb19fc00506dde4f7f67a7cefee3ed9ded1dc99b3a4caf4dd7c5513d777f7f5c6e1bb7b
8f40d2f9b2d598749bdd41abd26df627956034e854bac3d6a0326a0ddba3c9681876ba9357be77a1c141bf390c5ae34ea5551f0e2b41aba6e877ba9576d068f4
8376bf330efaaff23606569ea58fdc16605ecdebde7f010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d65
2f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d36
3f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e
3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d985
0528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000000000
0000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000
000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019020000
7468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100b6f4679893070000c92000001600000000000000
000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000
000000000000000000009d0a00007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000980b00000000}
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;
\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;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;
\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;
\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;
\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;
\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;
\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\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;
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000
02000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000c00a
59dbc007d701feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}
back to top